You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用yt-dlp命令行搜索并下载带有人工字幕/隐藏字幕的视频

如何使用yt-dlp命令行搜索并下载带有人工字幕/隐藏字幕的视频

我来帮你搞定这个问题!你已经在网页端发现通过添加&sp=EgIoAQ参数能精准筛选出带有人工字幕的视频,这个逻辑完全可以平移到yt-dlp的命令行操作里——核心就是让筛选在搜索阶段就生效,而不是等搜索结果出来后再过滤。

先解释下你之前遇到的问题:--match-filter=requested_subtitles之所以没用,是因为这个过滤是在yt-dlp拿到所有搜索结果之后才执行的。如果搜索结果里排在第一位的视频没有字幕,它还是会下载那个不符合要求的视频,根本达不到你想要的“只搜带人工字幕内容”的目的。

而正确的做法是直接把网页端的筛选参数整合到yt-dlp的搜索规则里,具体命令如下:

yt-dlp --embed-subs --default-search="ytsearch1:sp=EgIoAQ" '"A year ago last Thursday"'

我拆解下这个命令的关键部分:

  • ytsearch1: 表示让yt-dlp用YouTube原生搜索,并且只取搜索结果里的第一个视频(你可以把数字1改成其他数字,比如5来获取前5个结果)
  • sp=EgIoAQ 就是你在网页里用到的筛选参数,它对应YouTube搜索页“字幕”选项下的人工字幕(正好符合你不需要机器生成字幕的要求)
  • --embed-subs 保持你原来的需求,把字幕嵌入到下载的视频里

这样操作后,yt-dlp在搜索阶段就只会返回带有人工字幕的视频,直接下载第一个符合要求的结果,完美解决你之前下载到无字幕视频的问题。

备注:内容来源于stack exchange,提问作者hackerb9

火山引擎 最新活动