如何用yt-dlp Python脚本获取字幕?脚本失效该如何修复?
使用yt-dlp获取YouTube字幕(Bash命令与Python脚本修复方案)
1. 安装yt-dlp
首先通过pip安装yt-dlp:
pip install yt-dlp
2. Bash命令获取字幕
直接用Bash命令下载指定视频的英文自动字幕,跳过视频下载:
url="https://www.youtube.com/watch?v=ZrQJaLemaoE" yt-dlp --write-auto-sub --sub-lang en --skip-download $url --output /tmp/sub.txt
3. Python脚本问题修复
你提供的Python脚本无法下载字幕,核心问题是API参数名与命令行参数不匹配,以及download方法的传参格式错误,修复后的脚本如下:
import yt_dlp url = "https://www.youtube.com/watch?v=ZrQJaLemaoE" ydl_opts = { "writesubtitles": True, "writeautomaticsub": True, # 开启自动生成字幕的下载 "subtitleslangs": "en", # 对应命令行的--sub-lang "skip_download": True, "outtmpl": "/tmp/sub.%(ext)s", # API中用outtmpl替代命令行的--output } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([url]) # download方法必须传入URL列表
关键修复点说明:
- 命令行的
--write-auto-sub对应API的writeautomaticsub: True,同时需要搭配writesubtitles: True才会触发字幕下载 - 命令行的
--sub-lang对应API的subtitleslangs参数 - 命令行的
--output对应API的outtmpl参数,保留%(ext)s占位符可让yt-dlp自动匹配字幕格式(如.vtt) ydl.download()方法要求传入URL列表,而非单个字符串
内容的提问来源于stack exchange,提问作者showkey
相关产品推荐
相关产品推荐

