0

我正在尝试构建一个小 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

这是要点中的所有代码 https://gist.github.com/anonymous/7285498

二进制数据是否加载不正确?

谢谢,

4

1 回答 1

0

有几种方法可以解决块错误。

首先,您应该确保 Vimeo 对您的视频没有任何问题,尝试在现场手动上传示例。如果在网站上上传有效,那么 API 应该可以工作。如果它不起作用,请告诉 Vimeo。我没有遇到任何视频在上传过程中被拒绝的情况,所以我怀疑这是问题所在。

其次,您应该询问 vimeo 您的上传成功了多少。上传流程的验证步骤 ( https://developer.vimeo.com/apis/advanced/upload#streaming-step4 ) 允许您问这个问题。如果您没有按顺序上传视频,或者字节被丢弃,您可能会看到块错误。

于 2013-11-04T15:42:38.577 回答