
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Unofficial API (backend) for RuTracker, Kinozal, RuTor and NoNameClub for receiving torrent files and detailed information about distribution by movie title, TV series or id, and also provides RSS news feed for all providers.
Unofficial API (backend) for torrent trackers RuTracker, Kinozal, RuTor and NoNameClub. Used for fast and centralized search of distribution, receiving torrent files, magnetic links and detailed information about distribution by movie title, series or distribution identifier, and also provides news RSS feed to all providers with filtering by categories.
You can use the public and free version published on Vercel as well as deploy it yourself on any cloud platform using serverless or local with Docker.
The OpenAPI specification is available on the official Swagger Hub website.
Released under MIT license.
You do not need to use a VPN when using the public version, as this service is in the gateway role, which allows you to integrate the 'API' into any project without network restrictions and also use the news feed on mobile devices, for example through Fluent. No access token and authorization in the trackers are required for the API to work.
Simple interface implementation (frontend) is available through Google Chrome extension 🍿 Libre Kinopoisk for simultaneous and quick search of all available torrent-trackers (like Jackett).
Project is inspired by ✨ Torrent-Api-py (previously Torrents-Api) for Russian-speaking torrent providers.
XML
, as well as JSON
.Provider name | Mirrors | Registration | Filter for search and RSS | Search by ID | RSS |
---|---|---|---|---|---|
RuTracker | 3 | Yes* | Category | Yes | Native |
Kinozal | 3 | Yes* | Category, release year, format | Yes | Custom |
RuTor | 2 | No | Category | Yes | Custom |
NoNameClub | 1 | No | Category | Yes | Native |
* Registration is required only when downloading a torrent file via a direct link. All distributions when searching by id (identifier) contain info hash sum and magnet link (already contain current list of torrent-trackers servers), which allow to immediately start loading content distribution or generate torrentfile after downloading metadata using any torrent client, for example qBittorrent (supports RSS and search plugins), Transmission or Webtorrent Desktop.
Access to RSS feeds for RuTracker and NoNameClub is by redirecting the original channel. For Kinozal and RuTor providers, a casted news feed from the homepage has been implemented that supports filtering by categories.
You can deploy your own public API to Vercel from this repository, just click the button below and follow the instructions:
The project uses GitHub Actions to build the Docker container and automatically test the functionality of all endpoints.
Upload the image and run the container from the Docker Hub:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
If you are using a proxy server:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped \
-e PROXY_ADDRESS="192.168.3.100" \
-e PROXY_PORT="9090" \
-e USERNAME="TorAPI" \
-e PASSWORD="TorAPI" \
lifailon/torapi:latest
Replace the contents of the variables for connecting to the Proxy server with your own. If you do not use authorization on the proxy server, simply do not specify these parameters when starting the container.
You can download and use the docker-compose file to build the container from Docker Hub:
curl -sO https://raw.githubusercontent.com/Lifailon/TorAPI/main/docker-compose.yml
curl -sO https://raw.githubusercontent.com/Lifailon/TorAPI/main/.env.yml
Edit the environment variables in the .env file (required if using a proxy server) and start the container:
docker-compose up -d
You can save an image downloaded from Docker Hub to transfer it to a machine that does not have Docker Hub access:
docker save -o TorAPI-Docker-Image.tar lifailon/torapi
In the release files you can download the prepared image and boot it on your machine:
docker load -i TorAPI-Docker-Image.tar
Run the container from the downloaded local image:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
You can build the image yourself from the project's source files using dockerfile.
Clone this repository:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
Edit variables or other settings in the dockerfile
if necessary:
ENV PROXY_ADDRESS="192.168.3.100"
ENV PROXY_PORT="9090"
ENV USERNAME="TorAPI"
ENV PASSWORD="TorAPI"
Build the image and run the container:
docker build -t torapi .
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped torapi
To install the project and all dependencies, you can use the package manager npm:
npm install -g torapi
Clone the repository, install dependencies and start the server:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
npm install
npm start
By default, the server will be launched on port 8443
.
You can specify a different port:
npm start -- --port 2024
For development, use nodemon mode (restarts the server when the contents of files change):
npm run dev
Use a proxy for all requests:
npm start -- --port 2024 --proxyAddress 192.168.3.100 --proxyPort 9090
If authorization on a proxy server is required:
npm start -- --port 2024 --proxyAddress 192.168.3.100 --proxyPort 9090 --username TorAPI --password TorAPI
📚 Documentation is available in the Swagger UI at: http://localhost:8443/docs
via module swagger-ui-express. The documentation is described through the swagger-jsdoc library.
To create up-to-date or update Swagger documentation files in JSON
and YAML
format, use the command:
npm run docs
You can run testing to quickly check the health of all endpoints in the console:
npm start -- --test
During testing, the local server is started, a request is made to the endpoint /api/provider/test
, the output is logged in JSON format and the server exits.
Change header parameter in request:
npm start -- --test --q "The Rookie"
Parameterized tests are also available through GitHub Actions using Postman via newman in JUnit
format:
To run tests locally:
npm install -g newman
newman run postman-tests.json \
--iteration-count 1 \
--env-var "baseUrl=http://localhost:8443" \
--env-var "query=The Rookie" \
--env-var "queryAllPage=test" \
--env-var "categoryRuTracker=1605" \
--env-var "categoryKinozal=20" \
--env-var "categoryRuTor=10" \
--env-var "categoryNoNameClub=1318"
...
┌─────────────────────────┬────────────────────┬───────────────────┐
│ │ executed │ failed │
├─────────────────────────┼────────────────────┼───────────────────┤
│ iterations │ 1 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ requests │ 45 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ test-scripts │ 167 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ prerequest-scripts │ 154 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ assertions │ 169 │ 0 │
├─────────────────────────┴────────────────────┴───────────────────┤
│ total run duration: 32s │
├──────────────────────────────────────────────────────────────────┤
│ total data received: 1.95MB (approx) │
├──────────────────────────────────────────────────────────────────┤
│ average response time: 663ms [min: 2ms, max: 6.1s, s.d.: 1216ms] │
└──────────────────────────────────────────────────────────────────┘
🔎 LibreKinopoisk - Google Chrome extension that adds buttons to the Kinopoisk website and provides a TorAPI interface in the Jackett style (without the need to install a server part and use a VPN) for quickly searching for movies and series in open sources.
🧲 Kinozal bot - Telegram bot that allows you to automate the process of delivering content to your TV using only your phone. Provides a convenient interface for interacting with the torrent tracker Kinozal and the database TMDB to track the release date of episodes, seasons and search for actors for each episode , as well as the ability to manage the torrent client qBittorrent or Transmission on your computer, being remote from home and from single interface.
❤️ WebTorrent Desktop api - fork of the WebTorrent Desktop client, which added a remote control mechanism via the REST API
based on Express Framework.
📡 Reverse Proxy .NET - cross-platform command-line utility for implementing a .NET based reverse proxy server. It is used to provide access to hosts on the network from one network interface to remote applications via TCP, UDP or HTTP/HTTPS protocols (GET
and POST
requests are supported to access external resources over the Internet) available via another network interface (e.g. via VPN) on your host without unnecessary configuration and with authorization support.
FAQs
Unofficial API (backend) for RuTracker, Kinozal, RuTor and NoNameClub for receiving torrent files and detailed information about distribution by movie title, TV series or id, and also provides RSS news feed for all providers.
The npm package torapi receives a total of 3 weekly downloads. As such, torapi popularity was classified as not popular.
We found that torapi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.