为啥不能用纯python下载字幕?

Posted

技术标签:

【中文标题】为啥不能用纯python下载字幕?【英文标题】:Why can't download subtitle with pure python?为什么不能用纯python下载字幕? 【发布时间】:2019-05-29 13:24:30 【问题描述】:

使用 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代码?

【问题讨论】:

【参考方案1】:

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

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

subtitleslangs 需要包含在 [] 中。

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

【讨论】:

以上是关于为啥不能用纯python下载字幕?的主要内容,如果未能解决你的问题,请参考以下文章

通过 YouTube 数据 API [Python] 下载非自有视频的隐藏式字幕

为啥下载字幕返回需要登录?

如何自动下载种子的字幕

下载好anconda后输入python3却看不见有安装,重新设置坏境变量后还是不行是为啥?

为啥我的python GUI不能用?

在官方网站下不了迅雷并显示加载DLL失败 程序退出 为啥?