高效下载:you-get的简易教程
前言
为何要用You-get
- 你欢喜于 Internet 上的富媒体内容,只想下载它们以供自己取悦
- 你喜悦观看的视频,然而不得保存;对个人设备无从控制,此乃违背开放互联网之行为
- 你寻求解脱于闭源软件或 JavaScript 代码,并禁止在您的计算机上运行 Flash 之类的东西
- 你是黑客文化和自由软件的拥护者。
项目地址:soimort/you-get: ⏬ Dumb downloader that scrapes the web (github.com)
you-get的简单介绍
You-Get 是一款轻量级的命令行实用下载程序,它可以从很多 Web 上下载音频、视频及图片等多媒体内容并将其保存在本地。you-get 源于 Python,由个人开发者Mort Yao(姚家人)在 Github 上发布,并得到了很多社区贡献者的支持和改进。目前you-get已经支持了100多个网站,包括知名的 YouTube、bilibili等。
you-get的用户接口简单易用,只需在命令行中输入“you-get”后跟随需要下载的URL地址即可开始下载任务。此外,you-get还支持许多选项和参数,例如选择下载格式、重命名文件、指定下载目录等等,以满足用户的个性化需求。you-get还支持批量下载,方便用户一次性下载多个链接。与此同时,you-get提供了多语言API接口,让开发者可以将you-get下载功能集成到他们的项目中。
you-get
之功用:
- 从YouTube,优酷,Niconico等更多流行网站下载视频/音频/图片。(请参阅受支持站点的完整列表)
- 于您心仪的媒体播放器中观看在线视频,脱离浏览器与广告
- 下载任何非HTML内容,例如二进制文件
you-get的下载与安装
安装前提条件
以下乃必要依赖,需要单独安装,除非于Windows下使用预包装包:
python的下载与安装
首先在python官网下载最新的python版本
下载好之后双击运行python安装包启动安装。记得一定要勾选添加添加环境变量。
之后打开 cmd
,输入python
,回车,如果能进入到python交互环境,说明安装成功,然后输入exit()
,回车,退出python
配置FFmpeg
工具
在 Windows 下安装完 you-get 之后,虽然可以正常地进行下载,但是下载完的视频和音频常常是分开的,为了解决这个问题,我们需要安装 FFmpeg工具。
FFmpeg 是一个免费开源的跨平台音频和视频处理工具,它能够执行多种多媒体转换、处理和流媒体操作。它包含了一系列的库和工具,能够处理音频、视频和多媒体流。
项目地址:BtbN/FFmpeg-Builds
如果进到FFmpeg 官网的下载页面,有两个供我们进行下载的地址,上面一个是gyan.dev提供的镜像,下面一个是 Github下载地址,用上面一个链接下载可能会快一些。
将下载完成的压缩包解压到任意位置,将 FFmpeg 的可执行文件所在的文件夹路径(bin 文件夹的路径)添加到环境变量中,这样 you-get
才能正常使用。
接着进入 Windows 的设置,依此点击 系统 找到 高级系统设置,在弹出的选项卡中点击 高级,然后点击 环境变量,在 Path 中加上刚刚复制的那一条。
重新开一个命令行,输入 ffmpeg -version
,如果输出了一堆类似下图的信息,那么说明已经设置成功了。
这时候,我们再用 you-get 下载视频时,在下载完成后会有一个类似 Merging video parts... Merged into xxx
的提示,这时候再看下载下来的文件就已经合并成一个了。
安装you-get
选项 1: 通过pip安装
安装you-get的方式有多种,其中最方便的通过 pip 包管理器从 PyPI 镜像轻松安装。
请注意,你必须使用 Python 3 版本的 pip 来安装 you-get
打开cmd
窗口,输入如下代码安装you-get
pip3 install you-get
注意,如果使用pip过程中遇到安装不成功或者速度超慢,我们可以使用国内源进行下载,可以指定pip源提高下载速度,
例如:在python版本3下,使用清华源下载(推荐)
#豆瓣
pip3 install -i http://pypi.douban.com/simple/ you-get
#清华
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ you-get
安装完在终端输入you-get
下面的样子表示安装成功。
选项 2: 从 GitHub 下载
您可以下载稳定版(与 PyPI 上的最新版本相同)或开发(更多修补程序、不稳定功能)分支。解压缩它到方便的目录,将包含 you-get 脚本的目录添加到你的系统环境变量中,这样系统就能够识别并执行 you-get。
打开命令行界面(Cmd 或 Shell),执行以下命令
python3 setup.py install
或者使用以下命令将 you-get 安装到用户主目录下(无需管理员权限):
python3 setup.py install --user
Tip:如果你遇到权限问题,可以在命令前加上 sudo
(Linux/macOS)或者以管理员身份运行命令提示符(Windows)来获取管理员权限
选项 3: 下载集成打包版
exe
(单独文件) 或 7z
(包括所有依赖)
参见项目:gudu12306/GUI-for-you-get
升级程序
pip3 install --upgrade you-get
Tip:其他的系统安装方式具体参考soimort/you-get: ⏬ Dumb downloader that scrapes the web (github.com)
you-get使用方式
支持的网站
当然,这些网站的视频也并非都能解析的,比如说会员视频或付费视频。
使用说明
下载视频
其中最简单的使用命令就是you-get + 完整的视频URL
,例如
you-get https://v.youku.com/v_show/id_XMzk4NDE2Njc4OA==.html?firsttime=0
you-get 'https://v.youku.com/v_show/id_XMzk4NDE2Njc4OA==.html?firsttime=0'
然后静静等它下载完成即可;
那这样又会有其他问题,比如说下载格式是什么?清晰度怎么选择?下载到哪个文件夹了…后面我们需要进一步了解一下you-get常用命令。
下载其他内容
如你有 URL,可以直接使用:
$ you-get https://stallman.org/rms.jpg
Site: stallman.org
Title: rms
Type: JPEG Image (image/jpeg)
Size: 0.06 MiB (66482 Bytes)
Downloading rms.jpg ...
100.0% ( 0.1/0.1 MB) ├████████████████████████████████████████┤[1/1] 127 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 (536583 Bytes)
Site: Tumblr.com
Title: tumblr_mxhg13jx4n1sftq6do1_1280
Type: Portable Network Graphics (image/png)
Size: 0.51 MiB (536583 Bytes)
Downloading tumblr_mxhg13jx4n1sftq6do1_1280.png ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[1/1] 22 MB/s
常用命令选项以及参数列表
选项 | 说明 |
---|---|
--info /-i |
显示资源信息,比如说格式、清晰度、大小等 |
--output-dir /-o |
设置输出文件夹,即保存路径,若不指定,则保存在当前工作目录 |
--output-filename /-O |
设置文件名,可采用默认文件名 |
--playlist /-l |
优先下载整个列表 |
--url /-u |
指定下载或查看的url,有时候可以省略-u直接加上url |
--force /-f |
强制覆盖已存在的文件 |
--cookies /-c |
目前支持两种cookie格式:Mozilla cookies.sqlite 和 Netscape cookies.txt . |
---player /-p |
将视频喂进播放器 |
--http-proxy /-x |
为you-get 设置HTTP代理 |
也可在终端输入gou-get
,按下enter
,展示gou-get
的所有命令以及作用。
- 用
--info/-i
参数得到解析出该地址下的视频信息,标有DEFAULT
为默认画质。如认同,可下载:
发现它有4种画质,它默认是给我们下载最高画质的视频,本例选择下载最高画质,代码如下:
#格式:you-get --format="container path" url
you-get --format=flv https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c
Tips:没有选定特定格式之前,默认选项为最高画质,如不希望you-get
合并视频,使用--no-merge
/-n
.
- 设置输出文件名或路径
- 用
--output-dir
/-o
参数指定下载该视频的地址; - 用
--output-filename
/-O
设定输出文件名.
- 用
#格式:you-get -o 要保存的地址 包含视频的网页url==you-get --output-dir 要保存的地址 包含视频的网页url
#格式:you-get -O 要保存的文件名 包含视频的网页url
you-get -o D:\test -O 兰州兰州MV https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c
- 用
-u
参数解析视频真实的地址(url),代码如下:
#格式为you-get 包含视频的网页url
you-get -u https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c
- 用``--playlist
/
-l`批量下载一个视频列表例如:
#格式为you-get --playlist 包含视频的网页url
you-get https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c --playlist
- 选择播放器观看视频
使用 --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'
- 暂停与恢复下载
下载过程中可以使用 Ctrl+C 暂停下载
用--force
/-f
强行重下载. (注意: 将覆盖同名文件或临时文件!)
- 加载cookie
并非所有视频可供任何人观看。如果需要登录以观看 (例如, 私密视频), 可能必须将浏览器cookie通过--cookies
/-c
加载入 you-get
.
- 代理设置(进阶设置)
使用 --http-proxy
/-x
为you-get
设置HTTP代理:
$ you-get -x 127.0.0.1:8087 '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 项目).
结合使用
you-get --format=flv -o D:\test -O 兰州兰州MV https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c
#
you-get -o D:\test -O 兰州兰州MV https://www.bilibili.com/video/BV1pW411E72s/?spm_id_from=333.337.search-card.all.click&vd_source=7bff20db0211932c8f96b4f2babd670c --format=flv
总结:you-get
的命令选项在用的时候不分前后顺序
当然you-get支持的参数还有更多,大家可以去github查看。或者,要是感兴趣的话可以把源码下载下来自己研究学习一下
you-get库在python中的几种用法
you-get 这个简单的python小程序,很适合离线下载大多数网站的视频,如果你想在python中使用 you-get可以使用以下几种命令实现视频离线下载功能,特此整理分享,大家可收藏使用。
- 第一种
import sys
from you_get import common as you_get
# sys.argv=['you-get','-h']
sys.argv = ['you-get', '你要下载的视频地址', '-i']
you_get.main()
- 第二种
import os
os.system('you-get -o d:/vedio/ 你要下载的视频地址')
解释:d:/vedio/
就是保存知的路径,d盘的vedio文件夹,其实和道cmd命令行差不多,不过是多导入一个os库,内然后os.system('')
,引号里填入的就是可以在cmd命令行中执行的
- 第三种
import os
os.system('you-get http://www.bilibili.com/video/av9581328/')