如何在Python脚本中通过yt-dlp正确下载视频指定片段?
解决yt-dlp指定片段下载无效的问题
问题根源
- 缺少FFmpeg依赖:yt-dlp的视频片段切割功能完全依赖FFmpeg实现,从你的日志中可以看到
[debug] exe版本:无,说明系统未安装FFmpeg。这种情况下yt-dlp会自动跳过切割流程,直接下载完整视频。 - 配置格式适配问题:你使用的是2022.08.19版本的yt-dlp,该版本对
download_sections的格式要求较严格,你写的嵌套字典结构不被旧版本识别。
解决步骤
1. 安装FFmpeg
前往FFmpeg官方渠道下载对应系统的安装包,解压后将ffmpeg.exe所在路径添加到系统环境变量中,确保在命令行输入ffmpeg能正常执行。
2. 修正配置写法
针对你的yt-dlp版本,以下两种写法均有效:
写法一:直接使用时间字符串(最简洁)
import yt_dlp yt_opts = { 'verbose': True, 'download_sections': '00:00:02-00:00:07', 'force_keyframes_at_cuts': True # 避免切割后的视频开头出现卡顿 } ydl = yt_dlp.YoutubeDL(yt_opts) ydl.download("https://www.youtube.com/watch?v=BxUS1K7xu30")
写法二:简化字典格式
如果偏好使用字典配置时间,无需嵌套多层结构:
import yt_dlp yt_opts = { 'verbose': True, 'download_sections': [{'start_time': 2, 'end_time': 7}], 'force_keyframes_at_cuts': True } ydl = yt_dlp.YoutubeDL(yt_opts) ydl.download("https://www.youtube.com/watch?v=BxUS1K7xu30")
额外建议
如果上述操作后仍无效,建议升级yt-dlp到最新版本,新版本对片段下载的兼容性和稳定性更好:
pip install --upgrade yt-dlp
内容的提问来源于stack exchange,提问作者zack fisher
相关产品推荐
相关产品推荐

