1

実際にダウンロードすることなく、トレント名またはトレント内のファイルのリストを取得しようとしています。Python/Libtorrent:ファイルをダウンロードせずにマグネットリンクからメタデータを取得

これは私の現在のコードですが、トレントのコンテンツをダウンロードするので機能的ですが遅いです。

import libtorrent as lt 
import time 

ses = lt.session() 
params = { 
    'save_path': 'media/', 
    'storage_mode': lt.storage_mode_t(2), 
    'paused': False, 
    'auto_managed': True, 
    'duplicate_is_error': True 
} 
handle = lt.add_magnet_uri(ses, "magnet:?xt=urn:btih:9fea16aff4ece16e04f98321668a265f0fd22b7e&dn=archlinux-2017.08.01-x86_64.iso&tr=udp://tracker.archlinux.org:6969&tr=http://tracker.archlinux.org:6969/announce", params) 
while(not handle.has_metadata()): 
    time.sleep(1) 

print(handle.get_torrent_info().name()) 

私もlt.parse_magnet_uri()を使用して試してみたが、これは私が探しています何を返すか、本当に情報のハッシュ過去何の多くはありません。

答えて

0

私はparams'file_priorities'プロパティ

を利用して私の問題を解決することになりました。ただし、メタデータが取得されるまでファイルがダウンロードされるため、一時ディレクトリに保存しただけです。

import libtorrent as lt 
import time 
import tempfile 

ses = lt.session() 
params = { 
    'save_path': tempfile.mkdtemp(), 
    'storage_mode': lt.storage_mode_t(2), 
    'auto_managed': True, 
    'file_priorities': [0]*5 
} 

handle = lt.add_magnet_uri(ses, "magnet:?xt=urn:btih:9fea16aff4ece16e04f98321668a265f0fd22b7e&dn=archlinux-2017.08.01-x86_64.iso&tr=udp://tracker.archlinux.org:6969&tr=http://tracker.archlinux.org:6969/announce", params) 
while(not handle.has_metadata()): 
    time.sleep(1) 

print(handle.get_torrent_info().name()) 
関連する問題