从torrent集合中的单个文件生成torrent / magnet链接

时间:2013-05-02 08:05:31

标签: metadata bittorrent magnet-uri

我想知道是否有可能,拥有一个torrent集合(IE包含多个文件的torrent)来提取单个文件,生成一个几乎全新的torrent /磁力链接,只下载该单个文件但使用相同的源(宣布等,而不是下载整个洪流,然后选择下载或不下载。

感谢您提供任何暗示。

1 个答案:

答案 0 :(得分:6)

2019更新:是的,你现在可以! 2017年发布了一份BEP草案,涵盖了磁体URI的问题行为!这很棒,因为它创建了一个标准,在指向多文件torrent的磁体URI和指向该多文件torrent中的单个文件的磁体URI之间保持一致的info_hash。他们将共享一个群,这意味着你可以,因为问题是“[生成]一个几乎全新的洪流/磁铁链接,只下载该单个文件,但使用相同的来源”。

BEP草案: http://www.bittorrent.org/beps/bep_0053.html BEP 53:“磁铁URI扩展 - 选择要下载的特定文件索引”

请求文件0,2,4和包含范围6到8的示例URI:

magnet:?xt=urn:btih:HASH&dn=NAME&tr=TRACKER&so=0,2,4,6-8

BEP草案正在进入bittorrent图书馆:


2013-MAY-03原始答案: 有时是,但不经常,并且由此产生的群体没有同伴。

首先,您需要原始的.torrent文件,因此如果您只有磁铁URI,则需要使用DHT将其解析为.torrent。任何支持磁体URI的bittorrent库都有该任务的代码。

一旦你拥有.torrent,你就需要得到与你感兴趣的文件有关的哈希值.torrent文件包含一个很长的字符串,每个字节代表一个字符串中每个部分的哈希值。片段长度固定为torrent,通常在256KB到1MB之间。如果文件以一个片段偏移量开始,并且大小等于片段大小的倍数或者是torrent中的最后一个文件,那么您可以重用这些哈希值。然后,您可以使用该信息创建新的.torrent文件,并从torrent文件生成新的磁体URI,重新使用通知或使用新的。

Torrent信息结构:https://wiki.theory.org/BitTorrentSpecification#Metainfo_File_Structure

很幸运能够获得这种偏移是不可能的,片长通常在256KB和256之间变化。 1MB,你有1/262144到1/268435456获得该偏移的机会(假设一个文件可以从任何地方开始),所以情况不太可能。如果你不能重复使用哈希,你需要生成新的哈希值,这意味着你不能重新使用.torrent,并且需要下载文件来生成新的哈希值。

杀手是最终创建的torrent有一个不同的info_hash。 info_hash是描述torrent的信息的哈希值,这是对许多文件的描述,现在在你的新哈希中是单个文件的描述,因此是一个新的torrent,所以没有人可以从中获取。 Peers基于info_hash收集到群组中,如果您根据多文件torrent中的一个文件创建新的torrent,则多文件torrent中的对等体不知道它并且无法从中获取。

即使你足够幸运能获得正确的偏移,你也可以创建一个没有人共享该文件的torrent。

那么,您是否可以重新使用磁体URI并在torrent中指定文件名?不,描述Bittorrent如何使用磁体URI的BEP并未涵盖此行为。 http://www.bittorrent.org/beps/bep_0009.html