欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

视频下载神器youtube-dl

流媒体 迷途小书童 3年前 (2021-06-07) 4709次浏览 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)

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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.