首页 文章

通过API将视频上传到Vimeo时出现超时错误

提问于
浏览
0

我有一个Python脚本,利用最新的Vimeo API(https://developer.vimeo.com/api/)将一些视频上传到我的Vimeo帐户 .

以下是一种略微简化的形式,脚本基本上是这样的:

from vimeo import VimeoClient
vimeo = VimeoClient('my_token_here')
uid = vimeo.upload('/path/to/file.mov')

file.mov 为3MB或更少时,一切正常,文件已成功上传 . 但是,对于较大的文件,我收到超时错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 79, in __call__
    return do_upload()
  File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 70, in do_upload
    self.upload_segment(upload_uri, _range, video_data, filetype or 'mp4')
  File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 135, in upload_segment
    body=data, headers=request_headers)
  File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/httpclient.py", line 85, in fetch
    self._async_client.fetch, request, **kwargs))
  File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/ioloop.py", line 389, in run_sync
    return future_cell[0].result()
  File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 131, in result
    return super(TracebackFuture, self).result(timeout=timeout)
  File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 65, in result
    raise self._exception
HTTPError: HTTP 599: Timeout

这是我正在使用的vimeo库:https://github.com/vimeo/vimeo.py .

我的虚拟环境中的Tornado库已更新为3.2.1版本 .

有什么提示吗?

1 回答

  • 0

    Tornado source开始, vimeo 正在使用的 HTTPClient 的默认请求超时为20秒 . 它看起来像Vimeo library attempts to upload as much of the video as possible,然后查询服务器以查看成功上传了多少 . 上传视频的时间可能超过20秒,因此超时 . 我不相信他们正确处理这个问题,因为你从Tornado收到超时错误,但似乎他们想要支持整个文件不立即上传 .

    您可以尝试修改我上面链接的 vimeo 库代码,通过将本地副本中的链接行更改为以下内容来实现更长的超时:

    r = HTTPClient().fetch(upload_uri, method="PUT",
                               body=data, headers=request_headers, 
                               request_timeout=9999.0)
    

    如果这不起作用,您可以尝试在他们的 github 问题跟踪器上提出问题,并且实际从事该项目的人可能能够进一步帮助您 .

相关问题