使用Vimeo Python SDK上传字幕(文本轨道)报错的解决求助
解决Vimeo Python SDK上传字幕时的TexttrackCreationFailure错误
以下是针对该错误的排查和解决步骤:
修正视频ID格式:官方示例中的
'/videos/12345'可能存在歧义,尝试直接传入纯数字视频ID,而非带路径前缀的字符串。将代码改为:v.upload_texttrack('12345', 'captions', 'en-US', 'your-texttrack.vtt')部分SDK版本仅接受纯数字ID作为视频标识。
验证语言代码合规性:确保使用的是Vimeo支持的BCP 47标准语言代码,注意格式为
语言代码-地区代码(连字符分隔,而非下划线)。例如en-US是合法的,en_us则会触发参数错误。可通过Vimeo后台手动上传字幕的语言选项,确认目标语言的正确代码。检查字幕文件有效性:
- 确保文件是标准VTT格式,时间戳需符合
HH:MM:SS.mmm格式,无语法错误(如未闭合的标签、无效字符)。 - 确认文件路径正确,优先使用绝对路径避免SDK找不到文件;同时文件需为UTF-8编码,Vimeo不支持其他编码格式的字幕文件。
- 确保文件是标准VTT格式,时间戳需符合
确认API权限范围:检查你的Vimeo应用是否拥有
video_files的编辑权限。在Vimeo开发者平台的应用设置中,确保权限列表包含「编辑视频内容」相关权限,权限不足会返回模糊的参数错误提示。直接调用API调试获取详细错误:若SDK报错仍不明确,可绕过SDK直接用HTTP请求调用Vimeo API,获取具体错误信息:
import requests headers = {'Authorization': 'Bearer 你的访问令牌'} with open('your-texttrack.vtt', 'rb') as f: payload = {'type': 'captions', 'language': 'en-US'} files = {'file': f} resp = requests.post('https://api.vimeo.com/videos/12345/texttracks', headers=headers, data=payload, files=files) print(resp.json())返回的JSON响应会明确指出错误原因(如文件格式问题、语言代码无效等)。
升级SDK版本:旧版本Vimeo Python SDK可能存在已知bug,执行
pip install --upgrade vimeo升级至最新版本后重试。
内容的提问来源于stack exchange,提问作者ginjaemocoes
相关产品推荐
相关产品推荐

