Socket
Book a DemoInstallSign in
Socket

torrent2magnet-js

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

torrent2magnet-js

[![npm Package](https://img.shields.io/npm/v/torrent2magnet-js.svg)](https://www.npmjs.org/package/torrent2magnet-js) [![License](https://img.shields.io/npm/l/torrent2magnet-js.svg)](https://github.com/tukideng/torrent2magnet-js/blob/master/LICENSE) [![do

1.1.5
latest
Source
npmnpm
Version published
Weekly downloads
5
25%
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

torrent

FAQs

Package last updated on 22 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.