我正在尝试构建一个小的python脚本来编译和上传视频到vimeo。真的大约9/10的方式。 它的授权,检查上传配额,获取上传票据,通过流媒体上传,检查块大小。所有这些都很好。但是当我尝试调用上传完成时,它会返回
('complete upload response', '{"generated_in":"2.4796","stat":"fail","err":
{"code":"708","expl":"The file could not be saved. Try again.","msg":"File error"}}\n')
这是将视频文件加载到二进制文本中的代码。这是在上传时加载到html标题中的内容:
def load_video_to_bytes(self, file_name):
with open(file_name, 'rb') as f:
byte = f.read()
return byte
上传电话
def call_upload_file(self, session, ticket_info, file, file_size):
session.headers['Content-Type'] = 'video/mp4'
session.headers['Content-Length'] = file_size
response = session.put(ticket_info['endpoint_secure'], data=file)
return response
其中session是rauth会话 然后调用完成上传
def call_upload_complete(self, session, ticket_id, filename):
params = {'method': 'vimeo.videos.upload.complete',
'oauth_token': session.access_token,
'ticket_id': ticket_id,
'filename': filename}
response = self.execute_method(session, params)
return response
这里是gist中的所有代码 https://gist.github.com/anonymous/7285498
二进制数据加载不对吗?
感谢,
答案 0 :(得分:0)
有两种方法可以解决块错误。
首先,您应确保Vimeo对您的视频没有任何问题,请尝试在网站上手动上传示例。如果在网站上传工作,API应该工作。如果它不起作用让Vimeo知道。我没有遇到过在上传过程中视频遭到拒绝的情况,所以我怀疑这是问题所在。
其次你应该问vimeo你的上传成功了多少。上传流程的验证步骤(https://developer.vimeo.com/apis/advanced/upload#streaming-step4)允许您问这个问题。如果您没有按顺序上传视频,或者删除了字节,则可能会看到块错误。