2019-04-11 | UNLOCK

花式下载视频

这里总结了数个常用下载视频的方式。

在开始之前

本篇文章可能涉及对小部分人来说相对复杂的操作。

本篇文章有较多的链接打开以后都是英文。如果看不懂请善用 https://translate.google.cn

请注意本页面提到的所有下载方式都不要钱,请勿上当受骗。

命令行程序

这些程序因为都是免费开源的,有开源社区持续维护,故此通常都能够成功下载。

系统要求

仅以 Windows 系统举例。macOS 或者其他的系统请自行参考搜索引擎。

  • Windows 7 以上(推荐 Windows 10)

环境要求

  • Python

  • 推荐安装 Chocolatey。Chocolatey 可以很方便地安装其他命令行软件(例如 Python)。

  • 安装环境要求:

    • Windows 7+ / Windows Server 2003+
    • PowerShell v2+
    • .NET Framework 4+(如果你没有安装 .NET 4.0,安装程序会尝试安装它)
  • 以管理员权限运行 cmd.exe(开始菜单搜索 ‘cmd’ 然后右键 - 以管理员权限打开),然后进行以下操作:

    1
    2
    3
    4
    5
    6
    # Install Chocolatey
    # Installation speed varies depending on the Internet environment
    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

    # After the installation process
    choco install python

可以安装的命令行程序

youtube-dl

这个程序是专门来下载 YouTube 视频的,默认就已经是最高清晰度,甚至可以支持播放列表下载。

项目地址:https://github.com/ytdl-org/youtube-dl

当然,由于众所周知的原因,下载 YouTube 视频的时候必须要有某种特殊的网络连接。

如何安装

(在安装了 Python 以后,在命令提示符 cmd 里面)

1
pip install --upgrade youtube-dl

安装过程大概是这样的:

1
2
3
4
5
6
C:\Users\imhx>pip install --upgrade youtube-dl
Collecting youtube-dl
Downloading https://files.pythonhosted.org/packages/43/d5/f3f7ff7fc4d05ba2b6d5904f21b43a625c3681e02fb620bcf789316d6664/youtube_dl-2019.4.7-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 4.9MB/s
Installing collected packages: youtube-dl
Successfully installed youtube-dl-2019.4.7

就装好了。

如何使用

(在安装了 youtube-dl 以后,在命令提示符 cmd 里面)

1
youtube-dl https://www.youtube.com/watch?v=v76gf3_Cqqc

效果如下:

1
2
3
4
5
6
C:\Users\imhx>
[youtube] v76gf3_Cqqc: Downloading webpage
[youtube] v76gf3_Cqqc: Downloading video info webpage
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Destination: ONLY NEED 14 BULLETS - New AWM is INSANE - PUBG-v76gf3_Cqqc.f137.mp4
[download] 5.4% of 556.63MiB at 699.28KiB/s ETA 12:51

播放列表是一样的。其他操作请参考官方文档:https://github.com/ytdl-org/youtube-dl#options

you-get

这也是一个非常著名的视频下载程序。支持非常多的网站,但是它们当中的一部分失效了(所以仅仅推荐作为备用)。完整的支持列表看这里:https://github.com/soimort/you-get#supported-sites

如何安装

(在安装了 Python 以后,在命令提示符 cmd 里面)

1
2
3
4
5
pip3 install --upgrade you-get

# 如果不行可以尝试下面的命令 但是总体来说要求 Python3

pip install --upgrade you-get

安装过程:

1
2
3
4
5
6
7
8
9
[[email protected] ~] pip3 install --upgrade you-get
Collecting you-get
Downloading https://files.pythonhosted.org/packages/e6/3d/5da4f2271a8022da8ac41c5f520bbea3a08a9bee65938bae722a89b0f09d/you_get-0.4.1270-py3-none-any.whl (206kB)
100% |████████████████████████████████| 215kB 14.7MB/s
Installing collected packages: you-get
Found existing installation: you-get 0.4.1148
Uninstalling you-get-0.4.1148:
Successfully uninstalled you-get-0.4.1148
Successfully installed you-get-0.4.1270

如何使用

you-get 现在也是默认最高清晰度了。

1
you-get https://www.youtube.com/watch?v=JGwWNGJdvx8

效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[[email protected] ~] you-get https://www.youtube.com/watch?v=JGwWNGJdvx8
site: YouTube
title: Ed Sheeran - Shape of You [Official Video]
stream:
- itag: 313
container: webm
quality: 3840x2160 (2160p)
size: 296.8 MiB (311239788 bytes)
download-with: you-get --itag=313 [URL]

Downloading Ed Sheeran - Shape of You [Official Video].webm ...
100% (296.8/296.8MB) ├████████████████████████████████████████████████████████████████████████████████┤[2/2] 23 MB/s
Merging video parts... Merged into Ed Sheeran - Shape of You [Official Video].webm

更多操作请参考官方文档:https://github.com/soimort/you-get#getting-started

ykdl

ykdl 是 you-get 的一个分支,主要为国内视频网站提供支持,由国人开发者维护。可以从这里看到支持的站点:https://github.com/zhangn1985/ykdl/wiki/sites-status

如何安装

(在安装了 Python 以后,在命令提示符 cmd 里面)

1
pip install --upgrade ykdl

安装过程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Users\imhx>pip install --upgrade ykdl
Collecting ykdl
Using cached https://files.pythonhosted.org/packages/dc/84/94436ac340f840d21c0b26f4437717324a11b8fc2a2c614f7bb74bb23d48/ykdl-1.6.2.tar.gz
Collecting m3u8 (from ykdl)
Downloading https://files.pythonhosted.org/packages/47/cd/5295ed413e29c7776a1c5c278139e536544d1ff0019b120dc64ed81e2850/m3u8-0.3.8-py3-none-any.whl
Collecting pycryptodome (from ykdl)
Downloading https://files.pythonhosted.org/packages/30/13/9baa64203f5e87acfcb8575aae8256be973b286928374d0ce65f934ccb69/pycryptodome-3.8.1-cp37-cp37m-win_amd64.whl (10.0MB)
100% |████████████████████████████████| 10.0MB 1.5MB/s
Collecting urllib3 (from ykdl)
Downloading https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl (118kB)
100% |████████████████████████████████| 122kB 6.0MB/s
Collecting iso8601 (from m3u8->ykdl)
Using cached https://files.pythonhosted.org/packages/ef/57/7162609dab394d38bbc7077b7ba0a6f10fb09d8b7701ea56fa1edc0c4345/iso8601-0.1.12-py2.py3-none-any.whl
Installing collected packages: iso8601, m3u8, pycryptodome, urllib3, ykdl
Running setup.py install for ykdl ... done
Successfully installed iso8601-0.1.12 m3u8-0.3.8 pycryptodome-3.8.1 urllib3-1.24.1 ykdl-1.6.2

另外需要装个 ffmpeg - 在已经按照上文的方式安装了 Chocolatey 以后(设置 PATH 什么的太麻烦了) 进入 管理员模式 cmd -

1
choco install ffmpeg

完事。

如何使用

ykdl 默认下载最高清晰度。甚至支持 4K。

1
ykdl https://www.iqiyi.com/v_19rr9ofttc.html

效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\Users\imhx>ykdl https://www.iqiyi.com/v_19rr9ofttc.html
site: 爱奇艺 (Iqiyi)
title: 反贪风暴2
artist: None
streams:
- format: 4k
container: flv
video-profile: 4k
# download-with: ykdl --format=4k [URL]
Download: 反贪风暴2_4k part 0
Download: 反贪风暴2_4k part 1
Download: 反贪风暴2_4k part 2
Download: 反贪风暴2_4k part 3
Download: 反贪风暴2_4k part 4
Download: 反贪风暴2_4k part 5
Download: 反贪风暴2_4k part 6
Download: 反贪风暴2_4k part 7
2%

更多操作请参考:https://github.com/zhangn1985/ykdl/wiki

其实说实话以上三个程序已经涵盖了所有的大型视频网站了。另外还有一个基于 Go 语言的 Annie,因为个人不常用就不介绍了,可以自己去了解。

图形界面程序

Google Chrome + Developer Tools + FFmpeg

其实这个说到底还是需要命令行。

这个组合可以方便地下载部分小型网站的视频,或者某些采用了 m3u8 视频流技术并且没有用严格的鉴权方式的视频网站。

软件要求

首先下载 Google Chrome:https://www.google.cn/chrome/,测试过国内可以正常打开下载安装;如果实在不行自己百度啥的也可以。

然后 FFmpeg 用上面提到的 Chocolatey 安装:

1
choco install ffmpeg

完事。

如何使用

下载小型网站上的视频(直链类型)

这边一时半会不知道有啥小型视频网站,所以这里用微信公众号为例:

地址:https://mp.weixin.qq.com/s/dikZui63P7Assel7FX3fng

首先打开 Chrome,在页面任意空白处右键,选择最下面的那一行(检查),我这里是英文版:

选择 Network 标签:

地址栏输入视频网址,回车,然后点击视频让视频加载。

这时候我们注意到微信公众号加载了电脑端的播放器,我们按这个手机的按钮切换到手机端,刷新页面,就可以获取到 H5 播放器;一般来说正常的小型网站不需要这一步操作。

再次点击视频播放,选择按照大小 从大到小 排序(因为视频基本上是页面上最大的资源),在三个广告以后(一般网站也没有)就可以在页面顶部看到开始加载的视频正片:

我们在最大的那个资源上右键 - Open in new tab:

查看时长是 8 分多钟,没毛病,在右下角三点点击,选择下载(Download),就可以把视频下载到本地了。

下载有分片的视频(m3u8)

这里以香港无线电台 六点半新闻 为例:http://news.tvb.com/programmes/newsat630/5ca35606e603833936de9803

确保 Network 标签已经打开(见上文),打开网址,filter 内输入 m3u8 然后选择其中一条链接右键 - Copy - Copy link address

进入 cmd,确保 ffmpeg 已经安装(见上文),输入命令:

1
ffmpeg -i m3u8地址 文件名.mp4

在这个情况下是:

1
ffmpeg -i http://edge27-1.edgeware.hk4.tvb.com/session/ba037f92-5c39-11e9-80b1-005056903a13/2tqrkw/newsvod/_definst_/mp4:news/content1/export/20190402/archive_26_443552_cht_1024_576_500k.mp4/playlist.m3u8?token=21e02850553ea31327af94b487a94721_1555060260_1555060260 新闻.mp4

耐心等待下载和转码即可。

下载过程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
C:\Users\imhx>ffmpeg -i http://edge27-1.edgeware.hk4.tvb.com/session/ba037f92-5c39-11e9-80b1-005056903a13/2tqrkw/newsvod/_definst_/mp4:news/content1/export/20190402/archive_26_443552_cht_1024_576_500k.mp4/playlist.m3u8?token=21e02850553ea31327af94b487a94721_1555060260_1555060260 新闻.mp4
ffmpeg version N-87871-g7480f232d2 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
libavutil 55. 79.100 / 55. 79.100
libavcodec 57.108.100 / 57.108.100
libavformat 57. 84.100 / 57. 84.100
libavdevice 57. 11.100 / 57. 11.100
libavfilter 6.108.100 / 6.108.100
libswscale 4. 9.100 / 4. 9.100
libswresample 2. 10.100 / 2. 10.100
libpostproc 54. 8.100 / 54. 8.100
[hls,applehttp @ 0000015a2c682280] Opening 'http://edge27-1.edgeware.hk4.tvb.com/session/ba037f92-5c39-11e9-80b1-005056903a13/2tqrkw/newsvod/_definst_/mp4:news/content1/export/20190402/archive_26_443552_cht_1024_576_500k.mp4/chunklist.m3u8' for reading
[hls,applehttp @ 0000015a2c682280] Opening 'http://edge27-1.edgeware.hk4.tvb.com/session/ba037f92-5c39-11e9-80b1-005056903a13/2tqrkw/newsvod/_definst_/mp4:news/content1/export/20190402/archive_26_443552_cht_1024_576_500k.mp4/media_0.ts' for reading
Input #0, hls,applehttp, from 'http://edge27-1.edgeware.hk4.tvb.com/session/ba037f92-5c39-11e9-80b1-005056903a13/2tqrkw/newsvod/_definst_/mp4:news/content1/export/20190402/archive_26_443552_cht_1024_576_500k.mp4/playlist.m3u8?token=21e02850553ea31327af94b487a94721_1555060260_1555060260':
Duration: 00:21:58.89, start: 0.000000, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 1046229
Stream #0:0: Data: timed_id3 (ID3 / 0x20334449)
Metadata:
variant_bitrate : 1046229
Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1024x576 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 1046229
Stream #0:2: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 1046229
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:2 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0000015a2c6949e0] using SAR=1/1
[libx264 @ 0000015a2c6949e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000015a2c6949e0] profile High, level 3.1
[libx264 @ 0000015a2c6949e0] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '鏂伴椈.mp4':
Metadata:
encoder : Lavf57.84.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1024x576 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
variant_bitrate : 1046229
encoder : Lavc57.108.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
Metadata:
variant_bitrate : 1046229
encoder : Lavc57.108.100 aac
frame= 66 fps= 22 q=28.0 size= 0kB time=00:00:02.92 bitrate= 0.1kbits/s dup=2 drop=0 speed=0.996x

维棠

没啥好说的,老牌良心视频下载软件。

目前 3.0.1.0 版本不稳定,几乎无法下载任何视频。建议下载使用 2.1.4.1 版本。

下载链接:

维棠可以使用插件。教程见 https://plugin.qrcdn.com

大概就没了。还能用 IDM 啥的下载,因为个人也不常用,所以不写了,可以自己研究。

注意

本文内的命令提示符(cmd)的操作,默认目录在 C:\Users\你的用户名。如果想下载视频到别的目录,或者某个特定的文件夹,可以使用 cd(change directory,更改目录)命令:

1
cd /path/to/your/location

例如:

1
cd C:\Users\imhx\Documents\archive

如果想要切换到 C 盘以外的盘,需要先输入盘符,如 D:,再进行 cd 操作:

1
2
3
4
5
C:\Users\imhx>D:

D:\>cd D:\Videos

D:\Videos>

在任意文件夹上方地址栏点击空白处即可查看当前文件夹的路径:

应该说完了。

请针对 Disqus 开启代理