1.1.5 • Published 3 months ago

torrent2magnet-js v1.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

torrent2magnet-js

npm Package License downloads per month

Takes a buffer of torrent file and returns it's xt, dn, magneturi and more details.

Install

Install via npm install torrent2magnet-js

Demo

https://t2m.tuki.moe/

Usage

Use a torrent file buffer as input, and return an object with the following properties:

NameDescriptionExample
successWhether the result was parsed successfullytrue/false
infohashCalculated over the contents of the info dictionary in bencode form9ECD4676FD0F0474151A4B74A5958F42639CEBDF
magnet_uriIt consists of a set of parameters, the most commonly used parameter is xt, which is usually a URN formed by the content hash function value of a specific filemagnet:?xt=urn:btih:9ECD4676FD0F0474151A4B74A5958F42639CEBDF&dn=ubuntu-23.10.1-desktop-amd64.iso&xl=5173995520&tr=https://torrent.ubuntu.com/announce&tr=https://ipv6.torrent.ubuntu.com/announce
dnThe name or folder name of the resourceubuntu-23.10.1-desktop-amd64.iso
xlThe size of the file in bytes5173995520
main_trackermain tracker. The first element of tracker_list'https://torrent.ubuntu.com/announce'
tracker_listA list of tracker url'https://torrent.ubuntu.com/announce', 'https://ipv6.torrent.ubuntu.com/announce'
is_privateIf the torrent file is privatetrue/false
filesIf the torrent file contains multiple files, this parameter returns the path and file size information of all files.{path: 'my-torrent', length: 124945}

Use in node

import torrent2magnet from "torrent2magnet-js";
import fs from "fs";

const torrent_file = fs.readFileSync("./ubuntu.torrent");
const torrent_file_buffer = new Uint8Array(torrent_file); // Buffer.from(torrent_file);

const { success, infohash, magnet_uri, dn, xl, main_tracker, tracker_list, is_private, files } = torrent2magnet(torrent_file_buffer);

// success is a boolean value, if success is true, then the following values are valid
if (success) {
  //...
}

Use in Angular

<input type="file" accept=".torrent" (change)="uploadTorrent($event)" />
import torrent2magnet from "torrent2magnet-js";

  uploadTorrent(event: any) {
    const file = event.target.files[0];
    const reader = new FileReader();
    // bencode.decode need ArrayBuffer as input, so we need to use readAsArrayBuffer
    reader.readAsArrayBuffer(file);
    reader.onload = (file: any) => {
      const buffer_content = new Uint8Array(file.target.result);
      const { success, infohash, magnet_uri, dn, xl, main_tracker, tracker_list, is_private, files } = torrent2magnet(buffer_content);
      if (success) {
        //...
      }
    };
};

License

MIT

1.1.5

3 months ago

1.1.4

3 months ago

1.1.3

3 months ago

1.1.2

3 months ago

1.1.1

4 months ago

1.1.0

4 months ago

1.0.2

4 months ago

1.0.1

4 months ago

1.0.0

4 months ago