前言

为何要用You-get

  • 你欢喜于 Internet 上的富媒体内容,只想下载它们以供自己取悦
  • 你喜悦观看的视频,然而不得保存;对个人设备无从控制,此乃违背开放互联网之行为
  • 你寻求解脱于闭源软件或 JavaScript 代码,并禁止在您的计算机上运行 Flash 之类的东西
  • 你是黑客文化和自由软件的拥护者。

项目地址soimort/you-get: :arrow_double_down: Dumb downloader that scrapes the web (github.com)

[github repo="soimort/you-get"]

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版本

image-20240317171232338

下载好之后双击运行python安装包启动安装。记得一定要勾选添加添加环境变量

之后打开 cmd,输入python,回车,如果能进入到python交互环境,说明安装成功,然后输入exit(),回车,退出python

配置FFmpeg工具

在 Windows 下安装完 you-get 之后,虽然可以正常地进行下载,但是下载完的视频和音频常常是分开的,为了解决这个问题,我们需要安装 FFmpeg工具。

FFmpeg 是一个免费开源的跨平台音频和视频处理工具,它能够执行多种多媒体转换、处理和流媒体操作。它包含了一系列的库和工具,能够处理音频、视频和多媒体流。

项目地址BtbN/FFmpeg-Builds

[github repo="BtbN/FFmpeg-Builds"]

如果进到FFmpeg 官网的下载页面,有两个供我们进行下载的地址,上面一个是gyan.dev提供的镜像,下面一个是 Github下载地址,用上面一个链接下载可能会快一些。

image-20230417152030932

将下载完成的压缩包解压到任意位置,将 FFmpeg 的可执行文件所在的文件夹路径(bin 文件夹的路径)添加到环境变量中,这样 you-get 才能正常使用。

接着进入 Windows 的设置,依此点击 系统 找到 高级系统设置,在弹出的选项卡中点击 高级,然后点击 环境变量,在 Path 中加上刚刚复制的那一条。

重新开一个命令行,输入 ffmpeg -version,如果输出了一堆类似下图的信息,那么说明已经设置成功了。

image-20240317205352803

这时候,我们再用 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下面的样子表示安装成功。

image-20240317201029554

选项 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: :arrow_double_down: Dumb downloader that scrapes the web (github.com)

you-get使用方式

支持的网站

网站 URL 视频? 图像? 音频?
😍YouTube https://www.youtube.com/
Twitter https://twitter.com/
VK http://vk.com/
Vine https://vine.co/
Vimeo https://vimeo.com/
Vidto http://vidto.me/
Veoh http://www.veoh.com/
Tumblr https://www.tumblr.com/
TED http://www.ted.com/
SoundCloud https://soundcloud.com/
Pinterest https://www.pinterest.com/
MusicPlayOn http://en.musicplayon.com/
MTV81 http://www.mtv81.com/
Mixcloud https://www.mixcloud.com/
Metacafe http://www.metacafe.com/
Magisto http://www.magisto.com/
Khan Academy https://www.khanacademy.org/
JPopsuki TV http://www.jpopsuki.tv/
Internet Archive https://archive.org/
Instagram https://instagram.com/
Heavy Music Archive http://www.heavy-music.ru/
Google+ https://plus.google.com/
Freesound http://www.freesound.org/
Flickr https://www.flickr.com/
Facebook https://www.facebook.com/
eHow http://www.ehow.com/
Dailymotion http://www.dailymotion.com/
CBS http://www.cbs.com/
Bandcamp http://bandcamp.com/
AliveThai http://alive.in.th/
interest.me http://ch.interest.me/tvn
755 ナナゴーゴー http://7gogo.jp/
niconico ニコニコ動画 http://www.nicovideo.jp/
163 网易视频 网易云音乐 http://v.163.com/ http://music.163.com/
56网 http://www.56.com/
AcFun http://www.acfun.tv/
Baidu 百度贴吧 http://tieba.baidu.com/
爆米花网 http://www.baomihua.com/
bilibili 哔哩哔哩 http://www.bilibili.com/
Dilidili http://www.dilidili.com/
豆瓣 http://www.douban.com/
斗鱼 http://www.douyutv.com/
凤凰视频 http://v.ifeng.com/
风行网 http://www.fun.tv/
iQIYI 爱奇艺 http://www.iqiyi.com/
激动网 http://www.joy.cn/
酷6网 http://www.ku6.com/
酷狗音乐 http://www.kugou.com/
酷我音乐 http://www.kuwo.cn/
乐视网 http://www.letv.com/
荔枝FM http://www.lizhi.fm/
秒拍 http://www.miaopai.com/
MioMio弹幕网 http://www.miomio.tv/
痞客邦 https://www.pixnet.net/
PPTV聚力 http://www.pptv.com/
齐鲁网 http://v.iqilu.com/
QQ 腾讯视频 http://v.qq.com/
阡陌视频 http://qianmo.com/
Sina 新浪视频 微博秒拍视频 http://video.sina.com.cn/ http://video.weibo.com/
Sohu 搜狐视频 http://tv.sohu.com/
天天动听 http://www.dongting.com/
Tudou 土豆 http://www.tudou.com/
虾米 http://www.xiami.com/
阳光卫视 http://www.isuntv.com/
音悦Tai http://www.yinyuetai.com/
Youku 优酷 http://www.youku.com/
战旗TV http://www.zhanqi.tv/lives
央视网 http://www.cntv.cn/

当然,这些网站的视频也并非都能解析的,比如说会员视频或付费视频。

使用说明

下载视频

其中最简单的使用命令就是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'

然后静静等它下载完成即可;

image-20230417093418146

那这样又会有其他问题,比如说下载格式是什么?清晰度怎么选择?下载到哪个文件夹了…后面我们需要进一步了解一下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的所有命令以及作用。

  1. --info/-i参数得到解析出该地址下的视频信息,标有DEFAULT 为默认画质。如认同,可下载:

image-20230417094701178

发现它有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.

  1. 设置输出文件名或路径
    • --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

image-20230417134608807

  1. -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

image-20230417123525379

  1. 用``--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
  1. 选择播放器观看视频

使用 --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'
  1. 暂停与恢复下载

下载过程中可以使用 Ctrl+C 暂停下载

--force/-f强行重下载. (注意: 将覆盖同名文件或临时文件!)

  1. 加载cookie

并非所有视频可供任何人观看。如果需要登录以观看 (例如, 私密视频), 可能必须将浏览器cookie通过--cookies/-c 加载入 you-get.

  1. 代理设置(进阶设置)

使用 --http-proxy/-xyou-get设置HTTP代理:

$ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

然而系统代理 (即系统变量http_proxy) 自动使用. 使用--no-proxy强行关闭.

提示:
- 如果经常使用代理 (网络封锁了部分网站), 考虑将you-getproxychains 一同使用,并设置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/')

参考博客

[1]:使用 you-get 下载视频 - Eric (ericclose.github.io)

[2]:开源项目you-get的下载和使用、使用Cookie、配置ffmpeg