/torrent_stream_and_download

A seedr.cc inspired web application to download and stream torrent files from hosted web servers.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0


Logo

Home server companion

stream torrent files from hosted web servers remotely!
View Demo ·

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License

About The Project

Note:

  • This project started as a personal project to learn about react and docker. This was my first time working with react so the code might not be the best, I have certainly learned a lot from this project and maintaining or updating it is just too much work for me, so I have decided to open source it.

  • I have been using qBittorrent for a long time now, but I always felt that it was missing something, I wanted to be able to stream the content from my server remotely, so I decided to build this application.

  • I am not updating this project anymore, but I have plans to develop a new version of this project in the future, I will be using Next.js for the frontend, FastAPI for the backend with TailwindCSS for styling and MongoDB for the database.

  • Currently this project sends a get request at fixed intervals to get the updates, that's not the best way to do it, I will be using web sockets to get real time updates.

  • The libtorrent module in this repository is now updated to use more connection threads, so that the download speed is increased (Make sure to use full magnet uri which also includes the trackers).

App Home

There are lot of times when you want to access the specific content of a torrent file but don't want to waste bandwidth on downloading the entire file, this can be solved by downloading the file on a remote server and then browsing through the files.

  • With remote file browsing / download support
  • Optimized for both web and mobile views, responsive layout
  • Built using React and Flask ⚡

A mobile first UI design so that you can enjoy the content seamlessly, Inspired by trending designs on Dribble.

List of commonly used resources that I find helpful are listed in the acknowledgements.

Built With

The application is containarized so that you don't need to go through the hassle of installing dependencies, tech stack used to built this application is listed below.

Getting Started

This project is focused to run on server environment hence docker containers are used to deploy the application.

Prerequisites

Installation

  1. Clone the repo
    git clone https://github.com/jainyk/torrent_stream_and_download.git
  2. Create .env file inside the project root folder, add the following to it (refer example.env)
    POSTGRES_DB=autolycus              # Postgresql database name
    POSTGRES_USER=admin                # Postgresql username
    POSTGRES_PASSWORD=admin            # Postgresql password
    API_URL=http://localhost:5000/api  # Endpoint at which the api will be serving
    
  3. Run the containers
    sudo docker-compose up

Usage

  • When you run the application for the very first time It will ask you to login, you can signup for a new account and login with the credentials.

    login screen

  • Once logged in you can paste any valid torrent magnet link into the Add Magnet input field and it will start downloading the torrent file.

    downloading

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.