如何从磁力链接或 infohash 创建种子文件

     2023-02-23     22

关键词:

【中文标题】如何从磁力链接或 infohash 创建种子文件【英文标题】:How to create torrent files from magnet link or infohash 【发布时间】:2018-10-18 11:53:17 【问题描述】:

我正在尝试创建一个种子搜索引擎。但是我找到了一种从DHT 网络收集种子信息哈希的方法。我的问题是如何从中提取 .torrent 文件? 我有一个 MongoDB 集合包含 1M-1.5M(Growing Very Quickly) 洪流信息哈希。

【问题讨论】:

不可能从 infohash 中提取 .torrent 文件。见:***.com/questions/48873300/… 我通过 webtorrent npm 包解决了。 我正在从同行下载种子文件。它解决了这个问题! 【参考方案1】:

我自己解决了这个问题。 我使用了 webtorrent npm 包,还创建了一个算法来循环整个数据库,并在下载任务中添加了磁力链接。客户端获取元数据后,我将其保存到 torrent 文件并取消下载。

好吧,代码还没有完全准备好生产。之后我会在这里发布代码片段。谢谢!

更新:我正在使用此类从磁铁下载 Torrent 文件

const Discovery = require('torrent-discovery');
const Protocol = require('bittorrent-protocol');
const ut_metadata = require('ut_metadata');
const addrToIPPort = require('addr-to-ip-port');
const net = require('net');

class TorrentDownloader 
  constructor(port, trackers, timeout) 
    this.SELF_HASH = '4290a5ff50130a90f1de64b1d9cc7822799affd5';
    this.port = port | 6881;
    this.trackers = trackers;
    this.timeout = timeout | 80000;
  

  downloadTorrent(infoHash) 
    let self = this;
    return new Promise((resolve, reject) => 
      let dis = new Discovery(infoHash: infoHash, peerId: this.SELF_HASH, port: this.port, dht: true, announce: this.trackers)
          .on('peer', function (peer) 
            const peerAddress = address: addrToIPPort(peer)[0], port: addrToIPPort(peer)[1];
            // console.log(`download metadata from peer $peerAddress.address:$peerAddress.port`);
            self.getMetadata(peerAddress, infoHash, resolve);
          );
      setTimeout(() => 
        dis.destroy();
        reject(new Error("Torrent Timeout"))
      , this.timeout)
    )
  

  getMetadata(peerAddress, infoHash, resolve) 
    const socket = new net.Socket();
    socket.setTimeout(this.timeout);
    socket.connect(peerAddress.port, peerAddress.address, () => 
      const wire = new Protocol();

      socket.pipe(wire).pipe(socket);
      wire.use(ut_metadata());
      wire.handshake(infoHash, this.SELF_HASH, dht: true);
      wire.on('handshake', function (infoHash, peerId) 
        wire.ut_metadata.fetch();
      );
      wire.ut_metadata.on('metadata', function (rawMetadata) 
        resolve(rawMetadata);
        wire.destroy();
        socket.destroy()
      )
    );
    socket.on('error', err => 
      socket.destroy();
    );
  


module.exports = TorrentDownloader;

【讨论】:

【参考方案2】:

仅给出一个信息哈希,例如:

463e408429535139a0bbb5dd676db10d5963bf05

你可以使用:

BEP: 9 - Extension for Peers to Send Metadata Files

此扩展的目的是允许客户端加入群并完成下载,而​​无需先下载 .torrent 文件。相反,此扩展允许客户端从对等点下载元数据。它可以支持磁力链接,网页上的链接仅包含足够的信息以加入群(信息哈希)。

您使用 DHT 查找分布式跟踪器。 然后,您使用分布式跟踪器查找拥有种子的节点。 然后您可以从对等点下载 torrent 元数据

您将经过编码的元数据请求发送给对等方:

 
   "msg_type": 0,      ; 0==>request
   "piece": 0

【讨论】:

115sha1链接怎么转换磁力

115转存链接怎么变成磁力。说明入下115转存链接不能变成磁力,115转存链接的方法:1、在搜素引擎搜索115网盘。2、进入后选中文件或文件夹,点击分享图标后可以创建一个分享链接。3、点击确定。4、分享后点击复制。5、打开... 查看详情

bt下载和磁力下载的文件是存在哪里的呢?怎么新建bt文件呢?

种子、磁力链接文件如何快速下载如今很多种子文件或磁力链接使用迅雷下载时,速度很慢,而且有时资源缺乏下载很困难。那么如何能够不使用迅雷来迅速下载种子文件呢?很简单工具/原料百度网盘方法/步骤1百度搜索“百度... 查看详情

磁力链接与bt种子互转工具怎么用?使用方法

参考技术A  1、如果需要将BT种子文件转换成磁力链接,准备好种子文件    2、打开互转工具,可以点击打开种子或是直接拖拽导入    3、导入之后,就会自动将bt种子文件转换成磁力链接    4、如果需要将磁力... 查看详情

如何获得可以下载的 torrent 文件链接?

】如何获得可以下载的torrent文件链接?【英文标题】:Howtogetatorrentfilelinkthatcanbedownloaded?【发布时间】:2016-04-2115:23:59【问题描述】:我正在为一个项目创建一个电影网站。在网站中,我将添加可以通过种子下载的电影下载链接... 查看详情

磁力猫:种子磁力搜索神器使用教程

磁力猫:种子磁力搜索神器使用教程使用前先说明下磁力种子是什么,日常说的磁力和种子其实是一个资源的链接,和一个文件的下载链接差不多。所以如果你有某个视频的磁力链接,你还需要一个可以下载磁力种子的下载器。... 查看详情

《迅雷》磁力种子bt链接搜索网站大全

...找不到好用的。下面我就为大家整理带来了2021最新迅雷磁力链bt网站搜索工具大全,使用这些网站进行搜索,就可以找到你想要的资源内容啦!迅雷磁力种子BT链接搜索网站大全其实这类的网站大家自己在百度搜一下就行了,像... 查看详情

如何把bt种子转换为磁力连接?最好是安卓手机的转换方法。

参考技术A在迅雷7程序下载下可以生成磁力链接,我是在迅雷下的种子文件,这个我很熟。 查看详情

《百度网盘》下载磁力链接文件方法介绍

参考技术A很多小伙伴下载BT种子和磁力链接文件时,都会使用迅雷下载。但是除了迅雷之外,我们还可以使用百度网盘来下载这种类型的文件哦。具体怎么操作呢?下面我也带来了详细教程。百度网盘下载磁力链接文件的方法:... 查看详情

qbittorrent能下载游戏吗

...现在使用最为广泛的资源下载形式了,但是资源找到了,如何顺畅地下载下来也是个问题。qBittorrent是一款开源免费的种子和磁力链接下载工具,支持Windows、Mac和Linux,且功能非常强大。由于国内大部分用户并没有公网IP,直接... 查看详情

隐藏磁力链接怎么搜

...番号后,可以查找到对应的bt链接,最好在番号后面加“磁力链接”,打开bt链接后,我们来到网址,找到对应的番号名称进入即可。 参考技术B这个软件不会有高贵的VIP会员,因为他是开源软件,拥有一颗包容万物的心。而对于... 查看详情

2020年还能用的bt网站,查文献资料

参考技术A中文BT磁力连接搜索网站SkrBT :老牌磁力链接搜索网站,支持搜索种子内文件BT1207 :支持按收录时间、文件数、种子热度进行排序老王磁力 :意味深长的磁力搜索网站,无广告Bthub :2020年新晋磁力搜索网站btd... 查看详情

python需要python-libtorrent磁力链接转种子(代码片段)

查看详情

从 json 加载 infohash 时,Libtorrent 不工作?

】从json加载infohash时,Libtorrent不工作?【英文标题】:Libtorrentnotworkingwhenloadinginfohashfromjson?【发布时间】:2015-08-2906:41:01【问题描述】:我正在尝试制作一个python脚本,它只下载给定infohash的torrent的元数据。这个infohash是从一个... 查看详情

将 .torrent 文件转换为磁力链接/uri

...于python或其他我不太了解的编程语言。我的问题很简单:如何将.torrent文件转换为磁力链接/URI?假设程序中已经存在Base32Encode()或GetSha1Hash()等函数。它实际上不必在javas 查看详情

磁力链接怎么下载啊?

参考技术A磁力链接的前缀是:magnet:?xt=urn:btih:1、magnet:此链接采用的协议名称;2、xt:ExactTopic的缩写,包含文件Hash值的统一资源名称;3、btih:BitTorrentInfoHash的缩写,这里表示采用了Hash方法名。此外,btih还可以替换为ed2k、aich... 查看详情

迅雷是如何通过磁力链接获取资源的?

...盘等方式下载资源。那么,磁力链接到底是什么呢?又是如何通过一个磁力链接来获取资源的呢?在了解磁力链接之前,我们先了解一下BitTorrent。BitTorrent以下是维基百科对于BitTorrent的解释BitTorrent协议(简称BT,俗称比特洪流、... 查看详情

磁力链接的base32编码向hex编码的转换(代码片段)

1、传统格式磁力链接(简称“磁链”)是一种下载链接格式,下载时的效果相当于使用种子文件进行下载,但是比种子文件便于记录与传播。传统的磁力链接格式,举例如下:magnet:?xt=urn:btih:22566ff577354d... 查看详情

求终结者1和3的720p或者1080p种子或者磁力链接

求终结者1和3的720P或者1080P种子或者磁力链接。。。。参考技术A我刚下载的终结者1-4部(1080P)原版电影是BT种子 参考技术B 参考技术C720p版本的不少,有RMVB格式的,也有MKV格式的…… 参考技术D温良恭俭让,不得用于商业用途,... 查看详情