使用youtube-dl的postprocessor-args下载YouTube指定片段时命令不生效
问题原因
- 你使用的
--postprocessor-args参数仅对后处理环节生效,但当前命令未触发任何需要ffmpeg介入的后处理操作,youtube-dl下载完完整原始视频后直接结束流程,裁剪参数没有被执行。 - 即使添加后处理触发条件,将裁剪参数放在后处理阶段也会先下载完整视频再裁剪,浪费带宽和时间。
解决方案
方案1:边下边裁(推荐,无需下载完整视频)
使用--download-sections参数直接指定需要下载的时间片段,命令如下:
youtube-dl --download-sections "*00:01:00-00:02:00" "https://www.youtube.com/watch?v=dc7I-i7sPrg"
注意:参数值开头的*不可省略,时间范围用-连接,不要使用-to参数。
方案2:先下全量再裁剪(适合需要同时保留完整视频的场景)
主动触发ffmpeg后处理流程,同时传递裁剪参数,命令如下:
youtube-dl --postprocessor-args "ffmpeg_i:-ss 00:01:00 -to 00:02:00" --recode-video mp4 "https://www.youtube.com/watch?v=dc7I-i7sPrg"
说明:--recode-video mp4会触发ffmpeg转码后处理流程,ffmpeg_i:前缀表示将后续参数作为ffmpeg的输入参数传递,裁剪执行效率更高。
注意事项
如果执行命令时报--download-sections参数不存在的错误,说明你的youtube-dl版本过旧,建议更新到最新版本,或切换到活跃度更高的yt-dlp分支使用,上述命令逻辑完全兼容。
内容的提问来源于stack exchange,提问作者Umakanth Pendyala
相关产品推荐
相关产品推荐

