用 pytube 爬取 youtube 视频
2016-07-06 01:56
786 查看
这个方法比直接用浏览器插件逼格高点
1. 简介
需要用到 pytube 这个第三方库:https://github.com/nficano/pytube 这里只是把这个页面捡重要部分翻译了一下。
pytube 有如下特色:
1. 它是 python 的一个轻量级库,不需要依赖第三方库,因此十分可靠
2. 允许程序员选择下载视频的分辨率
3. pipelining easy, 你可以为不同的下载事件指定不同的回调函数
4. 包含命令行工具,可以直接从终端下载视频
2. 安装
pip install pytube
3. 库的使用
4. 命令行工具的使用
传入参数 -e (或者 --extension=)来设置下载的文件类型
$ pytube -e mp4 https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -r 设定清晰度
$ pytube -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -p 设置保存路径
$ pytube -r 720p -p ~/Downloads/ https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -f 设置保存名称
$ pytube -e mp4 -f liangjian https://www.youtube.com/watch?v=hMPBSwexqG8
同时设置下载的类型和清晰度
$ pytube -e mp4 -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8
1. 简介
需要用到 pytube 这个第三方库:https://github.com/nficano/pytube 这里只是把这个页面捡重要部分翻译了一下。
pytube 有如下特色:
1. 它是 python 的一个轻量级库,不需要依赖第三方库,因此十分可靠
2. 允许程序员选择下载视频的分辨率
3. pipelining easy, 你可以为不同的下载事件指定不同的回调函数
4. 包含命令行工具,可以直接从终端下载视频
2. 安装
pip install pytube
3. 库的使用
from pytube import YouTube # pprint-pretty print 不必要,仅仅为了让输出更好看,每个视频文件占一行 from pprint import pprint yt = YouTube("http://www.youtube.com/watch?v=Ik-RsDGPI5Y") # 显示所有可以下载的视频文件 pprint(yt.get_videos()) # 显示视频文件名 print(yt.filename) # 设置视频文件名 yt.set_filename('myFirstVideo') # 根据文件类型过滤视频文件 pprint(yt.filter('flv')) # 由于排序是按清晰度从低到高,所以可以用 -1 索引到最高清版本 print(yt.filter('.mp4')[-1]) # 根据清晰度过滤文件 pprint(yt.filter(resolution='480p')) # 通过文件类型和清晰度指定下载的视频 video = yt.get('mp4','720p') # 如果有多个相同类型,或者相同清晰度的文件,则不能仅指定一种格式来下载视频,例如下面一行可能会报错: video = yt.get('mp4') # 其实,上面的 video 完全可以用过滤+索引的方式获得,不一定非得用 get 方法 video = yt.filter('.mp4')[-1] # 下载到指定路径 video.download('/home/Desktop')
4. 命令行工具的使用
传入参数 -e (或者 --extension=)来设置下载的文件类型
$ pytube -e mp4 https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -r 设定清晰度
$ pytube -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -p 设置保存路径
$ pytube -r 720p -p ~/Downloads/ https://www.youtube.com/watch?v=hMPBSwexqG8
传入 -f 设置保存名称
$ pytube -e mp4 -f liangjian https://www.youtube.com/watch?v=hMPBSwexqG8
同时设置下载的类型和清晰度
$ pytube -e mp4 -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8
相关文章推荐
- Android 中自动同步的机制的简单的demo,例如订单同步,商品同步,会员同步,操作同步
- 20160706
- CMake 入门介绍和实例
- 292. Nim Game--LeetCode Record
- JAVA程序员一定知道的优秀第三方库(2016版)
- CentOS 7.0系统安装配置图解教程
- 最小生成树
- Struts2拦截器原理简介
- OSChina 周三乱弹 ——一个PPT引发的灾难
- Linux上查找和放置系统文件
- 傲慢与偏见。你所不知道的select()——The C10M Problem
- ejs判断变量是否为空并输出
- JavaEE学习笔记之SSH—Hibernate(4)
- Git设置全局忽略文件
- 【Leetcode】303 Range Sum Query - Immutable - 【动态规划】
- collections
- HDU 1043 Eight(经典八数码问题)对比POJ 1077
- copy|mutablecopy 小述
- hash_map/unordered_map原理和使用整理
- Codeforces Round #360 (Div. 2) -- E. The Values You Can Make (DP)