2015-07-27 1 views
2

Ceci est l'un de mes premiers projets en Python et je rencontre ce problème. Le code:Python: Méthode DownloadSubtitle from opensubtitles api retournant des données vierges

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 

Les « données » variable doit être codé en base64 et des données gzippés mais il sorties « H4sIAAAAAAAAAwMAAAAAAAAAAAA = » (200 code d'état OK) qui est essentiellement une donnée en blanc. Essayé de vérifier la fonction de hachage avec l'échantillon de l'API et il n'a aucun problème. Je n'arrive pas à comprendre ce qui se passe, toute aide serait appréciée. Vous pouvez vérifier l'API here.

Répondre

0

À quoi attribuez-vous la valeur sub_id? Il semble que ce soit un hachage, cependant, il doit s'agir d'un entier représentant un ID de fichier de sous-titre (voir le documentation).

Un exemple ID de fichier sous-titre est 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 
+0

ID de fichier sous-titre est donc pas le hachage? Où puis-je obtenir l'identifiant du fichier de sous-titres? –

+0

Non, c'est l'ID utilisé par OSDb. Vous pouvez effectuer une recherche en utilisant [SearchSubtitles] (http://trac.opensubtitles.org/projects/opensubtitles/wiki/XmlRpcSearchSubtitles) avec le hachage d'un fichier vidéo ou un ID IMDB. Cela devrait vous donner un ID de sous-titre si OSDb le connaît. – mhawke

+0

NEVERMIND JE L'AI! Le IDSubtitleFile est obtenu grâce à la fonction SearchSubtitle, merci beaucoup. Quoi qu'il en soit, pouvez-vous expliquer la variable sous-texte? J'apprends toujours comment gzip et unzgzip. –