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

Overview

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.

Issues
  • 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.

    opened by BruceWangNo1 1
  • 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.

    opened by BruceWangNo1 0
  • 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.

    opened by pataquets 0
Owner
Bruce Wang
If you like my work, feel free to set up an interview.
Bruce Wang
Torrent-metainfo-parser - Generates a .torrent meta info from a file

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

Asaad Belarbi 1 Feb 14, 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, while still keeping high discovery levels.

null 2 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

IP2Location 259 Jun 30, 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

Aidos Kuneen 0 Dec 1, 2021
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

Sami Tabet 410 Jun 17, 2022
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

Lingmo Zhu 0 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 . 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!

Var Bhat 1.5k Jun 21, 2022
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

Meghan 70 Jan 6, 2022
torpar is TUI client for Torrent Paradise .

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

Var Bhat 206 Jun 26, 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

Dominik Honnef 13 Jun 15, 2022
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

Ishan Goel 1.3k Jun 27, 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

Ian Kent 51 Mar 31, 2022
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.

null 1 Feb 6, 2022
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

Ethan 4 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,

Kaustubh Maske Patil 0 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

Ruoshan Huang 277 Jun 14, 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.

Stuart 29 Jun 25, 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

QAware GmbH 18 Jun 22, 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

null 41 Apr 20, 2022