title.jpg

当我准备扒一些youtube的视频的时候,发现已然各种限速和Throttle了,目前状况大致如下:

YoutubeDownloader这种工具频繁Throttle 403forbidden,要持续下完一个list的视频,需要数天时间并且看脸
Youtube-dl 已无法下载>720p视频,并且限速<80KB/s
Mech 这是89z大佬写给自己用的小工具,目前应该仅仅只有单视频下载功能,需要手动指定对应音视频参数下载,需要手动使用ffmpeg合并封装
以下依次介绍下工具的下载安装使用:

一、YoutubeDownloader下载使用

下载地址:YoutubeDownloader

UI.png
界面是最友好的UI交互框架,右上角齿轮修改下设置,顶部粘贴list/video的url点击→箭头即可开始下载
个人建议开启跳过已下载完毕的视频以及修改下命名规则,增添一个$num编号方便观看整理
如果是4k视频选择了最高画质你就看脸吧,下载过程中随机出现长时间连接超时失败,重头再来,如果反复重试还是fail,就关闭后打开或者换ip试试看,基本上没啥用了,就是使用方便而已,适合远程windows挂机.

二、 Youtube-dl下载安装

youtube-dl和youtube-dlP系列是github上最热门的选择,它默认的支持最高画质(4k)和完善强大的自选功能,以及组合搭配第三方下载器组合下载/合并视频等功能,让人上手后爱不释手,同样的也注定被youtube官方打击,2021.10.28后开始,在80KB/s限速高压政策下,进一步限制成只能下载720p视频后,现在基本上也是半死不活了,不过说不定以后会有转机,我这里把基本的安装步骤和常用功能介绍下,方便大家热身备用:

访问github发布页下载最新版本,目前是2021.06.06的,这里选择windows为例:
youtube-dl.exe

windows版本需要配套组件 Microsoft Visual C++ 2010 ,以免运行提示缺少MSVCR100.dll;
建议搭配下载ffmpeg方便自动封装组合音视频;
下载 Aria2 作为external外部下载器辅助多线程加速;
安装python环境以便Aria2正确运行;
ffmpeg , aria2 , youtube-dl这些直接解压放一个目录下就行,方便管理和设置系统环境变量路径(Path);
安装python环境时记得勾选为python3创建PATH,忘记的话手动去
查看我的电脑 右键 属性 >>>系统高级设置>>>高级菜单>>>环境变量选项>>>系统变量>>>选择Path (路径)。
Path.png
为了方便使用ffmpeg ,aria2 ,youtube-dl,请将这些工具的路径也加入进系统环境变量path,能放一块的就丢一起省点事,添加一个个路径就行了。或者手动加入注册表bat批处理文件,自行修改路径,方便重复部署时一键导入:

setx /m Path "%PATH%;C:\Program Files\Python310\Scripts\;C:\Program Files\Python310\;C:\Software\rclone-v1.56.2-windows-amd64;C:\Software\ffmpeg-2021-10-28-git-e84c83ef98-essentials_build\bin;C:\Software\youtube-dl;C:\Software\aria2-1.36.0-win-64bit-build1;"

cmd.exe打开,依次输入:

youtube-dl --version 
aria2c --version 
ffmpeg

可以查看是否安装完毕。

  • 1.Youtube-dl基本使用
youtube-dl -f 248/137/399/mp4/bestvideo+251/140/m4a/bestaudio  --write-thumbnail -o "C:/Downloads/English songs/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" https://www.youtube.com/playlist?list=PLdkj6XH8GYPR9Uq-0qOsGcapLWLFyGSKr

一个常用的指令演示,解释下, -f 选择视频格式参数,后面的数字是用-F, --list-formats 参数先行获取的;
--write thumbnail 拉取视频封面缩略图,不需要就去掉;
248/137/399/mp4/bestvideo+251/140/m4a/bestaudio这个组合是选择视频参数+音频参数用的,+号的使用必须搭配安装ffmpeg,否则无效,逻辑是视频参数依次选择248,137,399,mp4格式,前项未查询匹配则匹配/后一项,直到选择系统自动判断的最好画质,音频参数选择逻辑类似,从251、140直到bestaudio;
-o , Output template输出模板,选择自己需要的路径即可,匹配当前文件所在列表名%(playlist)s,以及列表中的编号索引位%(playlist_index)s,以及标题+文件后缀%(title)s.%(ext)s,更多指令和参数参考github说明:
output-template
默认匿名下载限额非常小,容易403forbidden,建议安装cookie插件下载你当前youtube账号的cookies:
get cookies
格式一定是# Netscape HTTP Cookie File开头的,
指令里添加 --cookies "C:/Downloads/English songs/youtube.com_cookies.txt" 项即可。
搭配外置下载器aira2 ,添加:--external-downloader aria2c --external-downloader-args "-x 16 -k 1M"
aria2的下载参数含义为16线程, 1M文件块。其实实际这些都没什么用了,目前只能720p,线程实际就3-5线程起效,50-80KB/s单线程,也就是堪堪300KB/s左右速度,随时还可能给你一记403滚蛋,记得youtube-dl --rm-cache-dir清除缓存 后重头再来。
最后完整指令参考如下:

youtube-dl -f bestvideo+bestaudio   --write-thumbnail -o "G:/Downloads/English songs/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" --cookies "G:/Downloads/English songs/youtube.com_cookies.txt"  --external-downloader aria2c --external-downloader-args "-x 16 -k 1M" https://www.youtube.com/playlist?list=PLdkj6XH8GYPQOAwPQ34FRa7_Oa49MbRcZ
  • 2.youtube-dlp的下载使用

官方地址:youtube-dlp
使用方法大部分和youtube-dl类似,通过7月份的更新使用Android客户端设备模拟跳过n字段的解析问题,目前来说还算正常可以用。
示例:

yt-dlp -f "bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4] / bv*+ba/b"  -o "G:/Downloads/English songs/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" --cookies "G:/Downloads/English songs/youtube.com_cookies.txt"  --external-downloader aria2c --external-downloader-args "-x 16 -k 1M" https://www.youtube.com/playlist?list=PLdkj6XH8GYPT4aCbwnN0TWIv2ZjdO31Dj

查询后缀mp4最佳质量视频和m4a后缀最佳质量音频并融合成最佳品质单个文件,如果没有则查询最佳品质视频和最佳品质音频并融合成最佳品质单个文件,如果仅有音频文件则融合音频文件为单个音视频文件。

  • 3.Mech的编译和配置使用

官方地址:Mech
为了解决youtube-dl的制裁,作为youtube-dlp的备用方案,目前可以选择小型冷门项目工具使用,mech就是这么一个简单而且能苟活的工具,原理是go语言编写的,通过授权伪装成Android设备,直接post拉取视频请求,欺骗官方以为是安卓TV正常观看的客户端,从而获得不限速的下载拉取效果;
因为是个人小众作品,功能非常简单,只能单个视频下载,只能手动操作,所以,选择你最需要的视频,或者肝起来,要么自己做个脚本循环跑吧!
首先需要编译下自己系统的版本,这里以windows系统为例,先下载Go环境:
go1.17.2.windows-amd64.msi
安装完毕,cmd打开输入go version看看是否成功,
进入你的mech解压后的路径下的cmd的youtube文件夹内(mech-1.36.6\cmd\youtube),再从地址栏输入cmd打开cmd.exe,输入go build进行编译windows版本,获得youtube.exe文件,复制到aria2那堆玩意丟一起,省的再加path。
输入 youtube -h即可查看帮助。
基本使用方法:
youtube -x 先更新下自己的cookies,按着操作提示,手动复制:

1. Go to
https://www.google.com/device
打开浏览器登录你的账号访问此页面
2. Enter this code
xxxxxxx
输入设备识别码

网页输入完毕后,再回到cmd窗口按enter确认下一步,就ok了,接下来使用 -i ID参数获取对应视频分辨率,音频参数信息和对应数字编号,这个和youtube-dl的编号是一样的,youtube返回的值。
最后使用 -a xxx -v xxx就可以下载对应音视频文件到 youtube.exe所在位置了。
-1则代表不下载,演示:youtube -a -1 -v 137 GKIiZwUg00g,ID就是网址里watch?v=那个东西:

https://www.youtube.com/watch?v=GKIiZwUg00g

如果需要合并音视频,就手动使用ffmpeg合并吧:

ffmpeg -i "E:\software\youtube-dl\Dave and Ava - Nursery Rhymes and Baby Songs-Halloween Songs  Halloween Song Collection  Nursery Rhymes and Halloween Songs from Dave and Ava.m4v" -i "E:\software\youtube-dl\Dave and Ava - Nursery Rhymes and Baby Songs-Halloween Songs  Halloween Song Collection  Nursery Rhymes and Halloween Songs from Dave and Ava.m4a" -vcodec copy -acodec copy  "Dave and Ava".mp4

结构为ffmpeg -i 文件A -i 文件B -vcodec copy -acodec copy 无损封装输出 文件.mp4,文件名可以直接输入ffmpeg -i 后拖入文件到cmd窗口直接获得,不用手动复制粘贴,如果直接在文件所在目录下打开cmd.exe则可以省掉路径。
抽空制作了一个xls表格,自行在橙色栏填入播放List内各个视频地址,则可以在前两个个绿色栏分别得到查询视频参数、下载指定参数音视频,下载后填入本地的视频文件名(无后缀),则可以拿到最后一个绿色栏的ffmpeg封装指令,手动ffmpeg合并封装执行即可。
Workflow.jpg
表格点此下载:
List.xlsx
好了,youtube视频下载工具简单介绍到这里,如果各位大佬有更好的选择,欢迎交流!

Last modification:January 13, 2022
If you think my article is useful to you, please feel free to appreciate