A C/S Tool to Download Torrent Remotely and Retrieve Files Back Over HTTP at Full Speed without ISP Torrent Limitation.

Go Report Card GoDoc

remote-torrent

Download Torrent Remotely and Retrieve Files Over HTTP at Full Speed without ISP Torrent Limitation. This repository is an extension to anacrolix/torrent project to download torrent remotely to your server like your VPS and retrieve the downloaded files to your local machine over HTTP. As we know, some ISPs implement torrent limitation and also sometimes downloading torrent locally does not work well. So this is why I started this project.

Features

  1. Once the server is set up, the user does not have to interact with the server manually. When the torrent download is finished, the client will automatically retrieve the downloads and remove intermedia downloads on the server side.

  2. If the user does not wish to continue at any moment, Ctrl + C will be captured by client which immediately sends request to clean up the server (shutdown the current torrent task and possibly remove downloaded contents) and then shut down itself gracefully.

  3. Client http partial request implemented. For example, if the user already has a partial file from the previous unfinished download process, the new download process picks up where it left off instead of restarting the download all over again.

Notice

Before installation, I think it is better for you to know that there is great web implementation jpillora/cloud-torrent providing similar functionalities while offering great visual aids. You may still want to use this project if you want a simpler approach with just a single command on client side that takes care of everything for you.

Installation

Install the library package with go get github.com/brucewangno1/remote-torrent/rt.

Enviroment Setup

Create a directory /root/media on your server to save files downloaded. Do not store anything else in that directory because after every client torrent download request all files in that directory will be purged.

Command Usage

  • Server side: run the below command in /root/media directory rt server yourPortNumber username:password
    As most user would like to keep the process running after logging out ssh session, the following command will meets their needs: nohup rt server yourPortNumber username:password > /root/rtserver.log &

  • Client side: rt client username:password yourServerIP:yourServerPortNumber "desiredMagnetLink" You may find downloaded files in the current directory after rt client finishes.

Example

rt server 8899 ryan:see_a_penny

rt client ryan:see_a_penny 192.168.100.100:8899 "magnet:?xt=urn:btih:194257a7bf4eaea978f4b5b7fbd3b4efcdd99e43&dn=ubuntu-18.04.3-live-server-amd64.iso"

To-do List

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

If you have any questions about this project, feel free to create an issue.

Owner
Bruce Wang
If you like my work, feel free to set up an interview.
Bruce Wang
Similar Resources

The devs are over here at devzat, chat over SSH!

Devzat Where are the devs at? Devzat! Devzat is chat over SSH Try it out: ssh sshchat.hackclub.com Add this to ~/.ssh/config: Host chat HostName s

Jan 7, 2023

Back end of e-books and papers collection website. Only for internal use.

Back end of e-books and papers collection website. Only for internal use.

Nov 1, 2022

Simulate network link speed

linkio linkio provides an io.Reader and io.Writer that simulate a network connection of a certain speed, e.g. to simulate a mobile connection. Quick s

Sep 27, 2022

A quick and dirty but useful tool to download each text/html page from the wayback machine for a specific domain and search for keywords within the saved content

wayback-keyword-search A quick and dirty but useful tool to download each text/html page from the wayback machine for a specific domain and search for

Dec 2, 2022

protoCURL is cURL for Protobuf: The command-line tool for interacting with Protobuf over HTTP REST endpoints using human-readable text formats

protoCURL protoCURL is cURL for Protobuf: The command-line tool for interacting with Protobuf over HTTP REST endpoints using human-readable text forma

Jan 6, 2023

Proxy that keeps clients active until the backend server is back online

HoneySmoke HoneySmoke is a prototype proxy for testing until it eventually becomes HoneyHive. HoneySmoke will eventually implement a limbo mode that k

Nov 20, 2021

Helping Indiranagar ka Gunda get back home at the earliest

Indiranagar ka Gunda This is the solution to a problem given to me by @exagil. The problem is as follows: Chirag is Indiranagar ka Gunda, but somehow,

Nov 27, 2021

Automatically exposes the remote container's listening ports back to the local machine

Auto-portforward (apf) A handy tool to automatically set up proxies that expose the remote container's listening ports back to the local machine. Just

Dec 15, 2022

A simple implant which connects back to an OpenSSH server

A simple implant which connects back to an OpenSSH server, requests a port be forwarded to it from the server, and serves up SOCKS4a or a shell to forwarded connections.

Nov 9, 2022
Comments
  • unrecognized import path

    unrecognized import path "golang.org/x/sys/unix"

    Last night, I received a phone interview from a major division of a well-known domestic company. I won't name them. The interviewer said something about the project not working. I did not get what he was trying to say. And after some back-and-forth, the interviewer flipped and said this is an interview or something like that. I am sorry about all that confusion. I just did not get the specific error he was talking about. This morning, I checked this code and tried to run the code on a virtual server in an Ali-Cloud datacenter somewhere in Shenzhen. And I think I got what he meant when he said my code did not work. After running go get github.com/brucewangno1/remote-torrent/rt command on the server. The following error message popped up: package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) package golang.org/x/net/proxy: unrecognized import path "golang.org/x/net/proxy" (https fetch: Get https://golang.org/x/net/proxy?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) package golang.org/x/time/rate: unrecognized import path "golang.org/x/time/rate" (https fetch: Get https://golang.org/x/time/rate?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) The problem is due to certain network issues in China. I searched this error online and there is a post out of many which addressed this error message. The code was tested on a network free of these issues and meant to be deployed somewhere else. I should have tested this domestically.

  • tried to implement signal capturing but failed

    tried to implement signal capturing but failed

    I tried to implement signal capturing on client side but failed. It would be nice if someone could help me out. "wget" process won't stop when sigterm is sent.

  • When using `go get` to install, I get the following error:

    When using `go get` to install, I get the following error:

    cannot find package "github.com/pion/webrtc/v2" in any of:
            /usr/local/go/src/github.com/pion/webrtc/v2 (from $GOROOT)
            /go/src/github.com/pion/webrtc/v2 (from $GOPATH)
    

    Build fails. Using Golang 1.15.3.

    I've found a related issue at pion/webrtc#683.

Torrent-metainfo-parser - Generates a .torrent meta info from a file

torrent-metainfo-parser generates a .torrent meta info from a file required argu

Aug 23, 2022
Anaximander is an ISP probing tool implementing several reduction techniques to cut down the number of probes launched in order to map an Autonomous System
Anaximander is an ISP probing tool implementing several reduction techniques to cut down the number of probes launched in order to map an Autonomous System

Anaximander is an ISP probing tool implementing several reduction techniques to cut down the number of probes launched in order to map an Autonomous System, while still keeping high discovery levels.

Jun 21, 2022
Go package provides a fast lookup of country, region, city, latitude, longitude, ZIP code, time zone, ISP, domain name,

IP2Location Go Package This Go package provides a fast lookup of country, region, city, latitude, longitude, ZIP code, time zone, ISP, domain name, co

Jan 8, 2023
A shazam like tool to store songs fingerprints and retrieve them
A shazam like tool to store songs fingerprints and retrieve them

musig ?? A shazam-like tool that allows you to compute song's fingerprints and reverse lookup song names. It's more or less an implementation of the s

Dec 12, 2022
Aidos Kuneen (v2 network) daemon program that is controlled through the command line and remotely via RPC calls

adk-daemon: aidosd.v2 aidosd (v2) is a deamon which acts as bitcoind for adk. This version has been built specifically for network mesh version 2+ For

Dec 1, 2021
A TCP Wrapper to use QSVEncC "Remotely"*

TCP Wrapper for QSVEncC This is a tcp wrapper implementation for QSVEncC command from QSVEnc, simply sending the input & args to the server-side, and

Dec 19, 2021
Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go
Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go

Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go . It comes with beautiful Web UI and Optional Multi-User Support . Run Locally or Host in Server . Open/Download/Stream Torrents in Browser Right Away!

Jan 1, 2023
A totally configurable terminal torrent client.
A totally configurable terminal torrent client.

mtorrent A totally configurable terminal torrent client. Download go get github.com/nektro/mtorrent Releases https://github.com/nektro/mtorrent/relea

Aug 17, 2022
torpar is TUI client for Torrent Paradise .

torpar is TUI client for Torrent Paradise . Torrent Paradise is Decentralized DHT Torrent Search Site

Dec 14, 2022
Torrent client designed for seeding tens of thousands of torrents.

Gamayun This project is currently a prototype. It is not usable in any shape or form. One day, this will be an efficient BitTorrent client, handling l

Jul 27, 2022