Python で OpenSubtitle API を使用して映画の字幕をダウンロードするためのソフトウェアを作成しています。
API は XML-RPC プロトコルを実装しています。API ドキュメントによると、サイト データベースから字幕をダウンロードするには、次のメソッドが使用されます。
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でエンコードされたバイナリ字幕データであると想定されていますが、どうしてこんなに小さなデータが字幕になるのでしょうか。
どういうわけか、データをサーバーからチャンクでダウンロードする必要があるか、何か不足していると思います。