2014-01-10 2 views
3

Я создаю программное обеспечение для загрузки субтитров фильмов с использованием OpenSubtitle API в Python.Python: Как получить данные из кусков файла по xml-rpc

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 и [данные] являются байтами субтитров в base64 и gzip.

Проблемы я облицовкой, когда я скачать субтитры:

idsubtitlefile='513de0ea27d63b9d631d769a492d72dc' 
token='a1t49trievitmjda4ija7dif44' 
xmlrpclib.DownloadSubtitles(token,[(idsubtitlefile)]) 

Я получаю результат:

[{'data': 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=',\  
    'idsubtitlefile':'513de0ea27d63b9d631d769a492d72dc'}] 

Здесь значение data должен быть в кодировке base64 двоичных данные субтитров, но как может так мало данных быть субтитрами.

Мне кажется, что данные должны быть загружены с сервера в куски, или, может быть, я чего-то не хватает.

+1

Ответ вы получили по существу сжатый пустой файл. Я бы не ожидал, что там будет больше кусков, как от полученного вами ответа, так и от документации API. –

ответ

3

Просто, чтобы усилить @ комментарий Мартейн немного - ответ действительно пустой файл, который можно проверить, используя такой код:

>>> raw = 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=' 
>>> import base64 
>>> decoded = base64.b64decode(raw) 
>>> import zlib 
>>> decompressed_data=zlib.decompress(decoded, 16+zlib.MAX_WBITS) 
>>> print decompressed_data 

>>> len(decompressed_data) 
0 

Там нет ничего, чтобы предложить больше ничего от вас требуется на основе API doc. Можете ли вы повторить попытку с примером, который, как известно, имеет подзаголовок? Вы проверяете ошибки? http://trac.opensubtitles.org/projects/opensubtitles/wiki/XmlRpcStatusCode

EDIT: Есть несколько пользователей с открытым исходным кодом Python API, перечисленные здесь, в случае, если они полезны: http://trac.opensubtitles.org/projects/opensubtitles/wiki/ProgramsUsingAPI

 Смежные вопросы

  • Нет связанных вопросов^_^