Python: 来自 opensubtitles api 的 DownloadSubtitle 方法返回空白数据

Python: DownloadSubtitle method from opensubtitles api returning blank data

这是我在 Python 中的第一个项目,我遇到了这个问题。代码:

def get_sub(path):
        server = xmlrpclib.Server(url)
        token = server.LogIn('', '', 'en', 'OSTestUserAgent')['token']
        print server.LogIn('', '', 'en', 'OSTestUserAgent')
        sub_id = get_hash(path)
        print sub_id
        resp = server.DownloadSubtitles(token, [sub_id])
        print resp
        data = resp['data'][0]['data']
        print data

变量 'data' 应该是 base64 编码和 gzip 压缩的数据,但它输出 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=' (200 OK 状态代码),这基本上是一个空白数据。尝试用 API 中的样本检查散列函数,没有问题。我无法理解这个,任何帮助将不胜感激。您可以查看 API here.

您要将 sub_id 设置为什么?它看起来像是一个散列,然而,它应该是一个表示字幕文件 ID 的整数(参见 documentation)。

示例字幕文件 ID 为 1951894257。

import xmlrpclib, io, gzip

url = 'https://api.opensubtitles.org/xml-rpc'
server = xmlrpclib.Server(url)
token = server.LogIn('', '', 'en', 'OSTestUserAgent')['token']
sub_id = 1951894257
resp = server.DownloadSubtitles(token, [1951894257])
if resp['status'] == '200 OK':
    compressed_data = resp['data'][0]['data'].decode('base64')
    sub_text = gzip.GzipFile(fileobj=io.BytesIO(compressed_data)).read()
    print sub_text