你知道如何使用 Python 下载网站上的视频吗?

youtube-dl

从名字上也能看出来,是专门用来下载 YouTube 的视频,但是除了 YouTube 之外还可以下载很多其它网站的视频,我们后续就以 bilibili 为例。

首先 pip install youtube-dl,或者 pip install --upgrade youtube-dl,下载的时候自动更新。

我们现在来下载一个视频,url是 https://www.bilibili.com/video/av26815518/?spm_id_from=333.334.bili_douga.8 ,页面如下:

在终端中输入 youtube-dl -F url,会得到视频的信息,也可以输入 youtube-dl --list-formats url。

对应的有编号,也就是 formatcode,加上编号就可以下载了,比如:youtube-dl -f 2 url

可以看到正在下载中,我的网速不是很好,有点慢。但是注意:有的时候,比如 youtube 1080p 的视频,一般是音画分离。所以音和画都会有一个formatcode,假设为 1 和 2,那么下载的时候就变成了 youtube-dl -F 1+2 url,把两个 formatcode 相加即可。然后使用格式工厂进行结合,如果下载了 FFmpeg,并设置了环境变量,那么 FFmpeg 会自动帮你组合。

还有字幕的问题,如果下载的时候没有下载到字幕,那么可以单独下载字幕。

  • youtube-dl --write-sub --skip-download url # 只下载字幕不下载视频
  • youtube-dl --write-sub --all-subs url # 下载所有语言的字幕
  • youtube-dl --write-auto-sub url # 下载自动生成的字幕

下载的文件的位置,则是默认是 C 盘 user(用户)下的 Administrator(你自己设置的名字)文件夹下。

我们来播放一下。

可以看到是可以播放的。

you-get

还是先 pip install you-get,下载完毕之后即可在终端使用 you-get 命令。通过 you-get -i url,查看视频的信息:

可以看到出现了好几种格式,很明显 size 越大越清晰,至于你想下载哪一种则通过上面的 format 指定。比如:

you-get --format=hdflv https://www.bilibili.com/video/av26277683/?spm_id_from=333.334.bili_douga.5

如果我想指定路径,并且重新设置文件名呢?

  • -o: 文件路径
  • -O: 文件名

you-get -o 路径 -O 文件名 --format=格式 url,然后我们下载到桌面:

you-get -o C:\Users\Administrator\Desktop --format=hdflv https://www.bilibili.com/video/av26277683/?spm_id_from=333.334.bili_douga.5

可以看到,下载的内容出现在了桌面上,我们打开下面的文件。

可以看到,视频可以正常播放,但是视频上方还有一个文件,那么这个文件是啥?上面其实是一个 xml 文件,我们打开看看里面装了什么内容:

看到这里,bilibili 的老司机可能已经发现了。

居然特么把弹幕也下载下来了。

小结

以上就是下载视频的两种方式,如果下载 youtube 上的视频建议使用 youtube-dl,毕竟名字摆在那了。

如果下载国内视频,墙裂建议 you-get,毕竟速度快,还特么能下载弹幕。

posted @ 2018-07-23 19:37  古明地盆  阅读(2888)  评论(0编辑  收藏  举报