视频抓取利器you-get
本文链接:https://github.com/soimort/you-get/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E
You-Get 乃一小小哒命令行程序,提供便利的方式来下载网络上的媒体信息。
利用you-get下载这个网页的视频:
$ you-get http://www.fsf.org/blogs/rms/20140407-geneva-tedx-talk-free-software-free-society
Site: fsf.org
Title: TEDxGE2014_Stallman05_LQ
Type: WebM video (video/webm)
Size: 27.12 MiB ( Bytes) Downloading TEDxGE2014_Stallman05_LQ.webm ...
100.0% ( 27.1/27.1 MB) ├████████████████████████████████████████┤[/] MB/s
为什么你要好好的用You-get:
- 你欢喜于互联网上的富媒体内容,并为个人寻欢而储存
- 你喜悦观看的视频,然而不得保存;对个人设备无从控制,此乃违背开放互联网之行为
- 你寻求解脱于闭源软件或JavaScript代码,并禁止Flash运行
- 你为黑客精神与自由软件而欣喜
you-get之功用:
- 下载流行网站之音视频,例如YouTube, Youku, Niconico,以及更多. (查看完整支持列表)
- 于您心仪的媒体播放器中观看在线视频,脱离浏览器与广告
- 下载您喜欢的网页上的图片
- 下载任何非HTML内容,例如二进制文件
使用Python编程?敬请查看 源代码 并fork!

安装
绪论
以下乃必要依赖,需要单独安装,除非于Windows下使用预包装包:
选项 1: 通过pip安装
you-get之官方版本通过PyPI分发, 可从PyPI镜像中通过pip 包管理器安装. 须知您务必使用版本3的 pip:
$ pip3 install you-get
选项 2: 使用预装包(仅供Windows)
exe (单独文件) 或 7z (包括所有依赖) 可从https://github.com/soimort/you-get/releases/latest 下载.
选项 3: 于GitHub下载
您可选择稳定版 (与PyPI最新版等同) 或 开发版 (更多的热补丁与不稳定功能)的you-get. 解压并将含有you-get的目录加入PATH.
或者, 运行
$ make install
以安装you-get 于永久路径.
选项 4: Git clone
即使您不常使用Python,作为开发者,也请使用此方法。
$ git clone git://github.com/soimort/you-get.git
将目录加入 PATH, 或运行 make install 以安装you-get 于永久路径.
升级
考虑到 you-get 安装方法之差异, 请使用:
$ pip3 install --upgrade you-get
或下载最新更新:
$ you-get https://github.com/soimort/you-get/archive/master.zip
开始
下载视频
当观赏感兴趣之视频,您可以使用 --info/-i 以查看所有可用画质与格式、s:
$ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site: YouTube
title: Me at the zoo
streams: # Available quality and codecs
[ DEFAULT ] _________________________________
- itag:
container: webm
quality: medium
size: 0.5 MiB ( bytes)
# download-with: you-get --itag= [URL] - itag:
container: mp4
quality: medium
# download-with: you-get --itag= [URL] - itag:
container: flv
quality: small
# download-with: you-get --itag= [URL] - itag:
container: 3gp
quality: small
# download-with: you-get --itag= [URL] - itag:
container: 3gp
quality: small
# download-with: you-get --itag= [URL]
标有DEFAULT 为默认画质。如认同,可下载: $ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site: YouTube
title: Me at the zoo
stream:
- itag:
container: webm
quality: medium
size: 0.5 MiB ( bytes)
# download-with: you-get --itag= [URL] Downloading zoo.webm ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[/] MB/s Saving Me at the zoo.en.srt ...Done.
(如YouTube视频带有字幕,将被一同下载,以SubRip格式保存.)
或,如您希望其他格式(mp4),请使用其他提示选项:
$ you-get --itag= 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
注意:
- 目前,格式选择没有大规模铺开;默认选项为最高画质.
ffmpeg为必要依赖,以下载流式视频以及合并分块视频(例如,类似Youku), 以及YouTube的1080p或更高分辨率.- 如不希望
you-get合并视频,使用--no-merge/-n.
下载其他内容
如你有URL,可以直接使用:
$ you-get https://stallman.org/rms.jpg
Site: stallman.org
Title: rms
Type: JPEG Image (image/jpeg)
Size: 0.06 MiB ( Bytes) Downloading rms.jpg ...
100.0% ( 0.1/0.1 MB) ├████████████████████████████████████████┤[/] kB/s
或者, you-get将自动检查网页,下载一切有可能感兴趣的内容:
$ you-get http://kopasas.tumblr.com/post/69361932517
Site: Tumblr.com
Title: kopasas
Type: Unknown type (None)
Size: 0.51 MiB ( Bytes) Site: Tumblr.com
Title: tumblr_mxhg13jx4n1sftq6do1_1280
Type: Portable Network Graphics (image/png)
Size: 0.51 MiB ( Bytes) Downloading tumblr_mxhg13jx4n1sftq6do1_1280.png ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[/] MB/s
注意:
- 此功能为测试性,远未完成。对于类似Tumblr和Blogger的大图有效,但是没有办法为所有网站建立通用格式.
在Google Videos搜索并下载
you-get可以吃任何东西. 如果不是合法的URL, you-get将在Google查找并下载最相关视频. (可能不是最心仪的,但是很有可能)
$ you-get "Richard Stallman eats"
暂停与恢复下载
可以使用Ctrl+C 暂停下载.
临时的.download文件将保存于输出目录。下次使用you-get传入相同参数时,下载将从上次继续开始. 如果下载已经完成 (临时的.download 扩展名消失), you-get将忽略下载.
用--force/-f强行重下载. (注意: 将覆盖同名文件或临时文件!)
设置输出文件名或路径
使用--output-dir/-o 设定路径, --output-filename/-O 设定输出文件名:
$ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
提示:
- 如果原视频标题含有与系统不兼容字符,十分有效.
- 也可以帮助使用脚本批量下载于指定目录和文件名.
代理设置
使用 --http-proxy/-x为you-get设置HTTP代理:
$ you-get -x 127.0.0.1: 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
然而系统代理 (即系统变量http_proxy) 自动使用. 使用--no-proxy强行关闭.
提示:
- 如果经常使用代理 (网络封锁了部分网站), 考虑将
you-get和 proxychains 一同使用,并设置alias you-get="proxychains -q you-get"(于命令行). - 对于某些网站(例如Youku), 如果你需要下载仅供中国大陆观看的视频, 可以使用
--extractor-proxy/-y单独为解析器设置代理. 可以使用-y proxy.uku.im:8888(鸣谢: Unblock Youku 项目).
观看视频
使用 --player/-p 将视频喂进播放器, 例如 mplayer 或者 vlc,而不是下载:
$ you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
或者你想在浏览器中观看而不希望看广告或评论区:
$ you-get -p chromium 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
提示:
- 可以使用
-p开启下载工具,例如you-get -p uget-gtk 'https://www.youtube.com/watch?v=jNQXAC9IVRw', 虽然有可能不灵.
加载cookie
并非所有视频可供任何人观看。如果需要登录以观看 (例如, 私密视频), 可能必须将浏览器cookie通过--cookies/-c 加载入 you-get.
注意:
- 目前我们支持两种cookie格式:Mozilla
cookies.sqlite和 Netscapecookies.txt.
复用解析数据
使用 --url/-u 获得页面所有可下载URL列表. 使用 --json以获得JSON格式.
警告:
- 目前此功能未定型,JSON格式未来有可能变化.
支持网站
对于不在列表的网站,通用解析器将寻找并下载感兴趣之内容.
视频抓取利器you-get的更多相关文章
- 作为Coder的利器记载
工作近三年,使用PC快六年,拥抱Mac整一年,投具器石榴裙三年.14年第一次被同事推荐Everything,开启了JeffJade对工具的折腾之旅,并乐此不疲.时去两年,这必然是消耗了一些时间,但对效 ...
- 使用nvm利器,管理node版本
node.js越来越热,应用的场景也越来越多. 但也因为是开源软件,所以具备大多数开源软件都存在的“版本问题”,版本发展很快,版本前后差异性大,老系统用新版本node跑不过,全局安装的第三方组件和no ...
- CssStats – 分析和优化网站 CSS 代码的利器
CssStats 是一个在线的 CSS 代码分析工具,你只需要输入网址或者直接 CSS 地址即可进行 CSS 代码的全方位分析,是前端开发人员和网页设计师分析网站 CSS 代码的利器,可以统计出 CS ...
- 移动Web利器transformjs入门
简介 在过去的两年,越来越多的同事.朋友和其他不认识的童鞋进行移动web开发的时候,都使用了transformjs,所有必要介绍一下,让更多的人受益,提高编程效率,并享受编程乐趣.(当然transfo ...
- 多视图学习利器----CCA(典型相关分析)及MATLAB实现
Hello,我是你们人见人爱花见花开的小花.又和大家见面了,今天我们来聊一聊多视图学习利器------CCA. 一 典型相关分析的基本思想 当我们研究两个变量x和y之间的相关关系的时候,相关系数(相关 ...
- 日常办公工具利器 notepad++
日常办公工具利器 notepad++ 文本内容比较 Notepad++ https://notepad-plus-plus.org/ http://jingyan.baidu.com/article/ ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
随机推荐
- spring cloud alibaba 简介
### Spring Cloud Alibaba [官方github地址](https://github.com/alibaba/spring-cloud-alibaba) Spring Cloud ...
- 8.Linux用户管理(上)
1.什么是用户? 能正常登陆系统的都算用户 windows系统和linux系统的用户有什么区别? 本质上没有区别, linux支持多个用户同一时刻登陆系统, 互相之间不影响 而windows只允许同一 ...
- 学习了解Shiro框架
有关Shiro安全框架 实现权限的几种方式 1)通过表来实现 2)shiro框架 3)Spring Security框架 shiro有哪些主要功能 1.授权 访问控制的过程,即确定谁有权访问 2.身份 ...
- 你真的了解java序列化吗
问:可是我这个实体类,没有实现序列化那个接口,也能存到数据库,这是为什么呢? 想不通!我是用的注解和hibernate框架弄的! 难道说不实现序列化接口也能保存数据?不应该啊. @Entity pub ...
- Linux生产下安装db2V10.1
Db210.1版本安装手册 装新的suse系统后需要做以下几步才能完整安装10.1版本的db2 1.要挂载2个iso文件 首先在跟目录下建目录test1和test2 2.把iso文件挂载到目录下 ...
- Java匹马行天下之一顿操作猛如虎,框架作用知多少?
流行框架: 框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了.所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发.理 ...
- 深入理解Kafka必知必会(上)
Kafka的用途有哪些?使用场景如何? 消息系统: Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦.冗余存储.流量削峰.缓冲.异步通信.扩展性.可恢复性等功能.与此同时,Kafka 还 ...
- Web for pentester_writeup之XSS篇
Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...
- ASP_MVC项目设计技巧规则
对于上述这种类型的前台页面,属于典型的List型的页面,那么,对于model的设计,要考虑前台人员的负担,尽量简洁: model: Name : 对应产品名称,如FMOS_WPF.FMOS_Tun.. ...
- 【 格式化时间(SimpleDateFormat)用法】
将特定字符串转换成Date格式 可以通过 new 一个 SimpleDateFormat 对象,通过对象调用parse方法实现 示例代码: String time = "2019-11-09 ...