You-Get 安装使用与介绍
前言
You-Get 是一个基于 Python3 的下载工具,可以很轻松地下载到网络上的视频、图片及音乐资源,默认支持 YouTube、哔哩哔哩、优酷、爱奇艺、腾讯视频等视频网站的下载。下面将介绍在 Linux 系统下如何使用 You-Get,此教程适用于 Centos/Debian/Ubuntu 等 Linux 发行版。
依赖说明
以下是必要的依赖,需要提前单独安装,除非是在 Windows 系统下使用预安装包:
通过 PIP 安装
You-Get 的官方版本通过 PyPI 分发,可从 PyPI 镜像中通过 pip
包管理器安装,务必使用 Python3 的 pip
。
1 | $ pip3 install you-get |
软件版本升级
1 | $ pip3 install --upgrade you-get |
下载视频
当观赏到感兴趣的视频,可以使用 --info/-i
参数来查看视频的所有可用画质与格式:
1 | $ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw' |
标有 DEFAULT
的为默认画质,一般情况下可直接下载,如 YouTube 视频带有字幕,那边字幕将被一同下载,以 SubRip
格式保存:
1 | $ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw' |
- 注意:
- 批量下载可以使用参数
--playlist
- 目前,视频格式选择没有大规模铺开,默认选项为最高画质
- ffmpeg 为必要依赖,用于下载流式视频以及合并分块视频 (例如 Youku),以及 YouTube 的 1080p 或更高分辨率的视频
- 如果不希望 You-Get 合并视频,可以使用
--no-merge/-n
下载其他内容
直接使用 URL 下载图片,此功能为测试性,远未完成;对于类似 Tumblr 和 Blogger 的大图有效,但是没有办法为所有网站建立通用格式。
1 | $ you-get https://stallman.org/rms.jpg |
暂停与恢复下载
可以使用 Ctrl+C
暂停下载,临时的 .download
文件将保存于输出目录。下次使用 You-Get 传入相同参数时,下载将从上次继续开始。如果下载已经完成,临时的 .download
扩展名文件将会被删除,此时 You-Get 将忽略下载。可以用 --force/-f
强行重新下载,会覆盖同名文件或临时文件!
设置输出路径或文件名
使用 --output-dir/-o
设置路径,--output-filename/-O
设置输出文件名:
1 | $ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw' |
- 提示:
- 此参数可以帮助使用脚本批量下载于指定目录和文件名
- 如果原视频标题包含有与系统不兼容的字符,此参数十分有效
代理设置
使用 --http-proxy/-x
为 You-Get 设置 HTTP 代理,同时系统代理 (即系统变量 http_proxy
) 会自动生效,使用 --no-proxy
则可以强行关闭代理:
1 | $ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw' |
- 提示:
- 如果经常使用代理 (网络封锁了部分网站),考虑将 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,而不是下载视频:
1 | $ you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw' |
或者想在浏览器中观看而不希望看广告或评论区:
1 | $ 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
和 Netscape cookies.txt
。
复用解析数据
使用 --url/-u
获得页面所有可下载 URL 列表,使用 --json
参数则可以获得 JSON 格式的数据,目前此功能未定型,JSON 格式未来有可能变化。
哔哩哔哩批量下载脚本
针对哔哩哔哩的视频,若批量下载参数 --playlist
不适用,可以使用以下 Shell 脚本实现批量下载,传入的参数包括:URL、开始集数、结束集数。如果希望同时执行多个下载任务,那么可以使用不同的参数来多次执行脚本,此操作由于频繁访问哔哩哔哩的视频网站,存在 IP 被封的风险(Http 请求返回 403 错误码)。
1 |
|
或者控制每次执行下载任务之前都等待 N 秒(建议 40 <= N <= 60),防止连续多次下载失败时,频繁访问服务器导致 IP 被封:
1 |
|
Shell 脚本使用示例:
1 | sh bilibil.sh https://www.bilibili.com/video/av33087749/?p= 1 3 |
参考资料