【发布时间】:2012-12-03 17:23:00
【问题描述】:
我正在使用 Jeff's demo code 来使用 YouTube API 和 Python 与我的视频的字幕进行交互。而且我的英语视频效果很好。不幸的是,当我尝试将它与具有西班牙语自动转录的视频一起使用时,其中包含 á¡ 等字符,我收到编码错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 25: ordinal not in range(128)
我的 Python 脚本顶部有 # -*- coding: utf-8 -*-,我已将 CAPTIONS_LANGUAGE_CODE 更改为 'es',但似乎该脚本仍在将其下载的 .srt 文件解释为 ascii 而不是 @987654330 @。它下载 .srt 文件的行是:
if response_headers["status"] == "200":
self.srt_captions = SubRipFile.from_string(body)
如何让 Python 将 srt 文件视为utf-8,这样它就不会引发编码错误?
谢谢!
【问题讨论】:
-
您是否有失败的示例视频网址?我认为它可以很好地读取 UTF 文件,但是在所有字符串连接的某个地方都失败了。 Python 2 在不告诉你的情况下将字符串来回转换为 ascii。 (顺便说一句,这是关于这个主题的精彩演讲:youtube.com/watch?v=sgHbC6udIqc)
-
哪个 Python 语句引发了 UnicodeDecodeError?您能否将您的 .srt 文件的副本放在某个地方,以便我们可以下载它以尝试重现问题?
标签: python youtube-api