欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

视频下载神器youtube-dl

流媒体 迷途小书童 4年前 (2021-06-07) 6240次浏览 0个评论

环境

  • windows 10 64bit
  • youtube-dl

简介

youtube-dl 是一个命令行工具,专门用来下载 youtube 视频,同时也支持其它一些主流网站,如 tiktok.comted.comnba.com 等等,大家可以到链接 https://github.com/ytdl-org/youtube-dl/tree/master/youtube_dl/extractor 去看看具体支持的站点,每个文件对应一个站点支持,文件名即是站点名。

youtube-dl 的运行需要 python 的环境,在 windowslinuxmacos 上都可以运行,代码开源。

youtube-dl 官网地址: https://youtube-dl.org/

youtbue-dl 源码托管地址: https://github.com/ytdl-org/youtube-dl

安装youtube-dl

如果是 windows 系统的话,直接下载 exe 文件,地址是: https://yt-dl.org/latest/youtube-dl.exe,可以保存在相应目录(除了 C:\Windows\System32 ),然后将此目录设置到系统环境变量 PATH

youtube-dl

如果是 linux 或者 macos 系统

# 使用curl下载
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

# 使用wget
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

如果你的系统中已有 python 的开发环境,那可以这样安装,适用于所有平台

pip install --upgrade youtube-dl

youtube-dl基本使用

这里以下载本人 youtube 频道上的一个视频为例,地址是: https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg, 最简单也是最基础的下载命令是

youtube-dl "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"

这里需要注意,要在下载链接加上双引号,下载 url 中经常会包含各种特殊字符,这样做是为了解析时不会出错。下载完成后,本地文件名与站点上的文件名一致

youtube-dl

使用 ffmpeg 工具查看视频信息

youtube-dl

可以发现,视频分辨率是1920×1080,也就是之前上传的分辨率,封装格式刷 mkv,编码格式已经是 youtube 转码后的格式了

youtube-dl进阶

下载后重命名

使用参数 -o

youtube-dl "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg" -o output

这里没办法指定封装格式。如果是 -o output.mp4,最后下载的文件就是 output.mp4.mkv

批量下载

如果下载链接是一个播放列表,那整个播放列表里的视频都会被下载,如果只想下载播放列表中的几个连续视频,可以指定开始和结束的序列号

youtube-dl.exe --playlist-start 31 --playlist-end 36 "https://www.youtube.com/watch?v=Ye018rCVvOo&list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J"

如果是独立的下载链接,可以按照如下方法进行。

创建一个 txt 文本文件( file.txt ),将视频的地址按照一行一个的方式保存起来,如下

youtube-dl

然后执行命令

youtube-dl -a file.txt

下载指定分辨率

首先通过命令查看视频的信息,只查看,不下载

youtube-dl -F "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"

youtube-dl

可以看到最左边的一列是一个数字,代表着不同格式,而且,注意看,youtube 将音频和视频进行了分离。所以,

youtube-dl -f 134 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"

下载后的视频只有视频,而没有音频

youtube-dl

如果想下载完整的话,就需要这样,这里需要用到 ffmpeg 的工具,有了它,youtube-dl 就会自动将音视频进行合并

(base) PS C:\Users\xugaoxiang\Desktop> youtube-dl -f 134+139 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"
[youtube] e6MbVG8GO6s: Downloading webpage
[youtube] e6MbVG8GO6s: Downloading MPD manifest
 Destination: 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f134.mp4
 100% of 7.78MiB in 00:06
[dashsegments] Total fragments: 118
 Destination: 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f139.m4a
 100% of 6.74MiB in 03:09
[ffmpeg] Merging formats into "在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.mp4"
Deleting original file 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f134.mp4 (pass -k to keep)
Deleting original file 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f139.m4a (pass -k to keep)

-f 除了可以使用 id,还可以使用如下参数,含义很清楚,就不用解释了

-f best
-f worst
-f bestvideo
-f worstvideo
-f bestaudio
-f worstaudio

使用代理

如果你的网络不是全局的话,那就需要使用代理了,命令如下

youtube-dl --proxy 127.0.0.1:1089 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"

参考资料

喜欢 (1)

您必须 登录 才能发表评论!