Python/Libtorrent:在不下载文件的情况下从magnet链接检索元数据

2024-05-01 21:55:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想得到torrent的名称或文件列表,而不是实际下载它们。在

这是我当前的代码,它是功能性的,但速度很慢,因为它下载了torrent的内容。在

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(),但这并没有返回我要查找的内容,或者大部分真正超过信息哈希的内容。在


Tags: importlttrue内容timemodestorageuri
1条回答
网友
1楼 · 发布于 2024-05-01 21:55:21

我最后通过使用'file_priorities'属性来解决我的问题

params中。但是,在检索到元数据之前,仍然会下载这些文件,所以我只是将它们保存到一个临时目录中。在

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())

相关问题 更多 >