作者otosaka (学生会长我老婆啦)
看板Vtuber
标题[闲聊] 用yt-dlp下载影片的小心得&入门教学
时间Wed Apr 26 19:35:48 2023
前言:
2021年可可会长毕业的时候,为了保存会限曾在板上爬过文,先谢谢当初发
#1WtIiBFG (Vtuber),
#1XJnGX2A (C_Chat),
#1UVBfuky (EZsoft)的大大,
以及巴哈的mashumeow大。(其实还有一大堆,但是过太久记不得了XD)
发这篇文的目的,主要是这些参考文章离现在有点久了,也刚好最近有空,
就写个简易入门的教学兼心得。
注:我没在用twitch,因此这篇是针对youtube平台写的。
懒人包:
1.下载yt-dlp
2.下载ffmpeg
(2.5)下载别人做好的batch file并修改参数/档案路径
3.执行yt-dlp.exe,影片网址就能安心下载
详细步骤:
1.先建立一个资料夹X,用来放yt-dlp、ffmpeg、做好的.bat档。
2.到github的yt-dlp页面下载最新版本的exe档案
https://github.com/yt-dlp/yt-dlp/releases
随便介绍几个我有用到的参数:
-F 列出所有格式。
-f或
--format 指定格式,范例 -f 137+140, -f "wv*+wa/w",没改就是预设("bv*+ba/b"
)
所以除非改了config,不然-f best是不会用到,甚至不用输入-f。
-o或
--output 设定输出模板,能设定输出路径+档名样式,预设没调整的话,档名是
%(title)s [%(id)s].%(ext)s,输出路径是放yt-dlp.exe的资料夹,我自己是用
-o "档案路径\%(upload_date)s_%(title)s [%(id)s].%(ext)s",
这样会在最前方加上时间比较好排序。
-i 无视下载过程出现的错误。
--ignore-config 不取用config,巴哈那篇有提config.txt设置,设置config的优点是下
次执行.exe能少输些指令,但其实没必要,建好batch file後连手动输cmd跟指令都不用
,贴上网址就行了,还能依不同用途设多个bat档,比全域config更加灵活。
PS.就算没建config.txt还是会有预设config,所以要打这指令。
--cookies-from-browser 抓浏览器cookies,直接用指令抓,不用像旧文还要找浏览器扩
充套件,省略载cookies.txt的步骤。使用时机:会限or播放列表。
--embed-metadata 下载metadata到档案中,常见的metadata就标题、参与演出者、注解
、年份等等。
--embed-thumbnail 载入封面图到档案。
上面两个embed的参数,都不建议输出mkv
metadata在mkv格式会有些东西跑掉,ex:
https://imgur.com/jYmYCXI
thumbnail部份,我试的时候发现,输出要是mp4格式才会成功,
webm+webm/webm+m4a/mp4+webm会是mkv,封面图会载入失败,这时候就会用到下个参数。
--merge-output-format 指定输出格式。用法:参数後+空格+格式(mp4/mkv等)
参数真的很多,我只懂一点点而已,想了解更详细请到github上面去看,像-o跟-f这种常
用的参数有范例,应该能更好理解。
https://github.com/yt-dlp/yt-dlp
3.下载最新版本的ffmpeg
进入ffmpeg的网站
https://ffmpeg.org/download.html
https://imgur.com/VZfMh3C
底下有两个连结,我自己是用上面打勾的这个,会连到该作者架设的网站,然後到下方
release
https://imgur.com/yjMURis
下载essential_build就可以,这用途应该不需要full多的东西。
另一个会连到github页面,但东西有点乱我不知道该下载的档案藏在哪,就不多加赘述,
想了解的可以自己点进去试。
下载完後解压缩,应该会叫做ffmpeg-版本-essentials_builds,再打开里面的bin资料
夹,把ffmpeg抓来丢到X里面,其他的ffprobe和ffplay不会用到。
1~3步骤做完就能用了,到X上方的路径框打cmd後,键入yt-dlp+指令码+网址即可
范例
yt-dlp -F
https://youtu.be/0-AZJj1ODbY
https://imgur.com/mHI94sa
(查看能下载的格式)
yt-dlp --embed-metadata -embed-thumbnail --merge-output-format mp4
-o "档案路径\%(upload_date)s_%(title)s [%(id)s].%(ext)s"
https://youtu.be/0-AZJj1ODbY
这样就把影片+metadata+封面图载下来了,很简单吧。
要下载会限,加个--cookies-from-browser chrome就行了,chrome的位置可以换成你喜
欢的浏览器。
如果想省略每次开cmd/PowerShell再打一长串指令的动作,那就到第4步
4.利用batch file省略繁杂步骤
爬到的文章是用cmd或是PowerShell来执行yt-dlp.exe,之前在备份可可会限时也是用上
述
方式(那时候用的还是youtube-dl…被yt降速载超久= =)
後来换电脑刚好想到有batch file的方式可以用,我是不会写啦,但我有查到别人写好的
https://github.com/edinsuta/yt-dlp-batch
像yt-dlp_Update.bat这档案,实际执行到.exe档的只有yt-dlp -U一行指令而已,但滑鼠
点两下就会直接执行,不用再输入任何东西,很方便吧;
yt-dlp_Basic.bat则是先把你输入的网址设成URL这个变数,到底下yt-dlp … "%URL%"的
时候会自己跑前面的参数,同时调用URL,实际要做的只有点开贴上网址而已。
yt-dlp_Advanced.bat 这个有空建议好好欣赏。*但要小心网址输入播放列表会把所有影
片
都抓成同一种格式(按个137+140每一部都是137+140了) *
制作方式
打开电脑的notepad,把人家写好的字全部复制贴上,修改前方参数(参照步骤3范例,记
得
改在yt-dlp那行就好,然後原本的%要变成%%),把档案存成.txt(要跟yt-dlp等程式一起
存
在资料夹X内),关掉notepad再用重新命名的方式把.txt改成.bat,要修改参数时对着档
案
点右键编辑就行了。
做完後在桌面建立捷径
(不是把档案剪下贴上到桌面),如果不想用捷径就在最上面
SET /P的前或後加一行cd /d 档案路径就行了。之後要用就点开即可
我自己在用的是这样(只撷参数部分)
yt-dlp -i --ignore-config --embed-thumbnail
--parse-metadata "description:(?s)(?P<meta_comment>.+)"
--parse-metadata "release_year:(?s)(?P<meta_date>.+)" --embed-metadata
--merge-output-format mp4
-o "档案路径\%%(upload_date)s_%%(title)s [%%(id)s].%%(ext)s" "%URL%"
大部分参数前面都介绍过,多了个--parse-metadata,这参数是加入特定的metadata,
操作方式比较复杂,我自己都不太懂就不细讲,但我可以解释为甚麽用
"description:(?s)(?P<meta_comment>.+)"跟"release_year:(?s)(?P<meta_date>.+)",
如果只是--embed-metadata,档案内容的注解栏会是影片网址,年份还跑出43829,19235之
类的怪数字(如下图),但-o後方的%%(ext)s已经把影片网址记录下来了,
所以用"description:…"改成影片的概要栏、"release_year:…"把怪数字弄掉。
https://imgur.com/Ikc9pYS
没输入的会是这样,有加的话会变成概要栏/空白。
这部份真的很复杂,我已经把这两个部分试好了(以前抓的影片这两块都没抓到QQ),
建议直接抄,其他部分别乱动,想知道更多的可以到github看,
底下还有提供范例(有范例还是很难懂就是了)。
https://github.com/yt-dlp/yt-dlp#modifying-metadata
我自己是分4个batch file(Basic,Basic+get cookies,Advanced,Update),
平常单纯载影片+封面图点个basic就好,要载一串or会限就+get cookies的版本,
Advanced是想抓特定档案格式才会用到,几乎不会用到。
分好几个batch file的好处是,可以依情况调整参数,不用每次都执行所有的参数,
能加快执行速度。当然也可以把指令都写在一起,
每次执行就把-U, --get-cookies等等都跑一次,这就看个人习惯了。
这只是我个人对yt-dlp的小小心得,再更难的部份我也不懂了QQ
若有问题或内容写错的部分,请推文告诉我,感谢收看。
PS.没意外的话,最近会有下篇写类似yt-dlp的纪录yt直播软体(yt-dlp遇到直播好像容易
出错?)。还有就是聊天室部分,也能透过指令备份,但档案会蛮大的,而且载下来的会是
.json格式,没办法直接开启,所以我个人不太建议,而且同时播放影片+聊天室的软体也
不好找,我目前是有看到一个网页啦,如果很多推文想知道,我会考虑放在下篇一起写。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.25.53.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Vtuber/M.1682508953.A.E5E.html
1F:推 okbown: 推yt-dl,简单好用的软体 04/26 20:27
记得用dlp不要用到youtube-dl哦,後者会被yt降速,而且从2021开始就没再更新了
2F:推 okakaisgood: 感谢推 找时间试试看04/26 20:41
※ 编辑: otosaka (114.25.53.117 台湾), 04/27/2023 03:42:25
3F:推 labbat: 你的ffmpeg太旧了,新版可以将webm影印装在mp4档案内04/27 10:09
我是用2023/2/27出的6.0版本,应该算最新的吧…?
※ 编辑: otosaka (114.25.53.117 台湾), 04/27/2023 10:38:47
4F:→ labbat: --merge-output-format mp4 04/27 20:50
欸不是吧,这参数我之前试好几次常常没载入成功欸,结果现在试都没问题...
可能是之前资料夹内太多同名档案才出错..?
感谢告知,内文已修正。
※ 编辑: otosaka (114.25.53.117 台湾), 04/28/2023 16:17:10
5F:推 SSutan: 好文推,另外yt-dlp我录直播录两年了没碰过错误耶,你dow 04/29 01:28
6F:→ SSutan: nloader是选ffmpeg吗? 04/29 01:28
7F:推 attitudium: 感谢分享 05/01 08:53
8F:推 jh30137: 感谢分享 另外想请问TVer的影片下载直接默认不输入best 02/04 21:34
9F:→ jh30137: 最高画质跟音质 本身它就是默认最高吗?谢谢 02/04 21:34