首页 > 解决方案 > 为什么不能用纯python下载字幕?

问题描述

使用 youtube-dl 命令下载字幕:

url="https://www.youtube.com/watch?v=Ix8xPfKDxNg"
youtube-dl --write-auto-sub --skip-download --sub-lang en  $url
[info] Writing video subtitles to: Speak English Confidently & Clearly with Ellen-Ix8xPfKDxNg.en.vtt

现在我想用纯 python 代码做同样的任务。

from __future__ import unicode_literals
import youtube_dl
url="https://www.youtube.com/watch?v=Ix8xPfKDxNg"
options = {
        'writeautomaticsub': True,
        'subtitleslangs': ['en'],
        'skip_download': True,
        'subtitleslangs': 'en'
}
with youtube_dl.YoutubeDL(options) as ydl:
    ydl.download([url])

错误信息:

WARNING: e subtitles not available for Ix8xPfKDxNg
WARNING: n subtitles not available for Ix8xPfKDxNg

为什么不能替换bash命令

youtube-dl --write-auto-sub --skip-download --sub-lang en  $url

用纯python代码?

标签: python-3.xyoutubesubtitle

解决方案


删除以下内容应该可以为您解决问题,'subtitleslangs': 'en'. 正如您已经将其包含在'subtitleslangs': ['en']

options = {
        'writeautomaticsub': True,
        'subtitleslangs': ['en'],
        'skip_download': True
}

subtitleslangs 需要包含在[].

我还发现添加选项以列出所有可用选项'listsubtitles': True,然后添加subtitleslangsafter 帮助。


推荐阅读