【发布时间】:2014-01-28 21:21:00
【问题描述】:
我正在使用 Python 中的 OpenSubtitle API 创建一个用于下载电影字幕的软件。
API 实现 XML-RPC 协议。根据API documentation,从站点数据库下载字幕,使用以下方法:
array DownloadSubtitles( $token, array($IDSubtitleFile, $IDSubtitleFile,...) )
它的输出是:
[data] => Array
(
[0] => Array
(
[idsubtitlefile] => 10
[data] => MQ0KMDA6MDA6MzgsMzAwIC0tPiAwMDowMDo0MSwwMDA...
)
[1] => Array
(
[idsubtitlefile] => 20
[data] => MQ0KMDA6MDA6MjYsMjgzIC0tPiAwMD...
)
其中 [idsubtitlefile] 是 subtitle_id,[data] 是 base64 和 gzip 格式的字幕字节。
我面临的问题是,每当我下载字幕时:
idsubtitlefile='513de0ea27d63b9d631d769a492d72dc'
token='a1t49trievitmjda4ija7dif44'
xmlrpclib.DownloadSubtitles(token,[(idsubtitlefile)] )
我得到这样的结果:
[{'data': 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=',\
'idsubtitlefile':'513de0ea27d63b9d631d769a492d72dc'}]
这里data的值应该是base64编码的二进制字幕数据,但是这么少的数据怎么可能是字幕呢。
我认为数据必须以某种方式从服务器分块下载,或者我可能遗漏了一些东西。
【问题讨论】:
-
您收到的响应本质上是一个压缩的空文件。我不希望有更多的块,无论是您收到的响应还是 API 文档。
标签: python python-3.x xml-rpc xmlrpcclient