最近研究了一下磁力链magnet和BT种子torrent文件之间的相互转换。其实通过torrent文件获得磁力链实现起来比较简单,但反过来并非是一个可逆的过程,磁力链转BT种子理论上来说是不可能实现的。
一个可以提供下载的磁力链,比如:magnet:?xt=urn:btih:51df6808c739174c8f264701ba94460c5238d6ce,只包含了一个有效信息,那就是种子的hash值,其它可选部分省略了。这里没有种子内部包含的文件列表,磁力链没有BT种子构成的所有基本需要。
那应该怎么转换成BT种子呢?
实际上通过一些下载工具下载这些种子的时候,下载工具会到内部服务器的种子库里去查找,通过hash值,可以搜索出位于该服务器上的BT种子位置,然后下载这个种子。也就是说,用某一个下载工具通过磁力链magnet下载torrent文件,并不是每次都一定能下载成功。
既然原理清楚了,我们大可以自己编写一个磁力链到BT种子的转换工具,但需要一些公开的BT种子库的接口?
目前我所知道的可用接口:
磁力链:
magnet:?xt=urn:btih:51df6808c739174c8f264701ba94460c5238d6ce
btbox:
http://bt.box.n0808.com/F8/F2/F8181597B51C157FB470E5EE236E364C6FBC2AF2.torrent
构造方法:取磁力链的hash部分,全部转换大写,
格式化如下http://bt.box.n0808.com/hash最前面两位/hash最后面两位/hash.torrent,注意大写!
BitComet:
http://torrent-cache.bitcomet.org:36869/get_torrent?info_hash=F8181597B51C157FB470E5EE236E364C6FBC2AF2&size=226920869&key=BC2DAAD2A0F79E0A4EEB831CBA5BD7DADB38D146
构造方法:info_hash字段是已经知道的,但是key字段的计算方法暂时还不知道,有一个人分析了算法,并封装了一个COM,感兴趣的可以看看去。http://www.cnblogs.com/UMU618/articles/2568579.html
Torrentkittycn:
http://d1.torrentkittycn.com/?infohash=F8181597B51C157FB470E5EE236E364C6FBC2AF2
构造方法:infohash=hash串大写。
btspread:
http://www.btspread.com/torrent/detail/hash/F8181597B51C157FB470E5EE236E364C6FBC2AF2
注:该链接并不能直接下载torrent文件,可在获得的网页源代码中找到真实的下载地址。
迅雷云:
http://dynamic.cloud.vip.xunlei.com/interface/get_torrent?userid=95847549&infoid=F8181597B51C157FB470E5EE236E364C6FBC2AF2
构造方法:infoid=后直接跟hash串大写。
冷资源:
http://d1.lengziyuan.com/?infohash=F8181597B51C157FB470E5EE236E364C6FBC2AF2
构造方法:infohash=hash串大写。可能和Torrentkittycn同一服务器!
PS:如果有人发现新的公开的BT种子库,请通知我一声!
根据以上提供的BT库,我编写了一个magnet转torrent文件的工具,集成了以上提到的接口。经过我个人测试,能解析成功的magnet链接还算支持比较全面,有需要的可以下载。
下载地址: http://url.cn/IubYCa
常用磁力链搜索:http://dianying.fm
http://bt.shousibaocai.com
http://h31bt.com
http://torrentkittycn.com
http://www.btspread.com
http://www.torrentba.com
http://www.torrentkitty.com
http://btdigg.org
http://www.xunlei4.us