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字段的解析问题,目前来说还算正常可以用。
示例:

youtube-dlp -f bestvideo+bestaudio  -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
  • 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:November 29th, 2021 at 06:29 pm
If you think my article is useful to you, please feel free to appreciate