Неофициальный API ( бэкенд ) для торрент-трекеров RuTracker, Kinozal, RuTor и NoNameClub. Используется для быстрого и централизованного поиска раздачи, получения торрент-файлов, магнитных ссылок и подробной информации о раздаче по названию фильма, сериалу или идентификатору раздачи, а также предоставляет RSS-ленту новостей всем провайдерам с фильтрацией по категориям.
Вы можете использовать общедоступную и бесплатную версию, опубликованную на Vercel, а также самостоятельно развернуть ее на любой облачной платформе, используя бессерверную или локальную версию с помощью Docker.
Спецификация OpenAPI доступна на официальном сайте Swagger Hub.
Выпущено под лицензией MIT.
Вам не нужно использовать VPN при использовании публичной версии, так как этот сервис находится в роли шлюза, что позволяет интегрировать API
в любой проект без сетевых ограничений, а также использовать ленту новостей на мобильных устройствах, например через ReadYou. или Фидер. Для работы API не требуется токен доступа и авторизация в трекерах.
Проект создан на основе Torrent-Api-py (ранее Torrents-Api) для русскоязычных торрент-провайдеров.
XML
, а также JSON
.Реализация простого пользовательского интерфейса (например, Jackett) доступна через расширение Google Chrome. Либре Кинопоиск для одновременного поиска раздач во всех доступных торрент-трекерах и скачивания контента по магнет-ссылкам или торрент-файлов прямо с трекеров.
Плагин Torrent Search для быстрого поиска раздач во всех доступных торрент-трекерах через интерфейс Wox, который доступен для установки из репозитория плагинов.
Имя провайдера | Зеркала | Регистрация | Фильтр для поиска и RSS | Поиск по идентификатору | RSS |
---|---|---|---|---|---|
РуТрекер | 3 | Да* | Категория | Да | Родной |
Кинозал | 3 | Да* | Категория, год выпуска, формат | Да | Обычай |
РуТор | 2 | Нет | Категория | Да | Обычай |
NoNameClub | 1 | Нет | Категория | Да | Родной |
* Регистрация необходима только при скачивании торрент-файла по прямой ссылке. Все раздачи при поиске по id (идентификатору) содержат информационную хеш-сумму и магнет-ссылку (уже содержат текущий список серверов торрент-трекеров), которые позволяют сразу начать загрузку контента раздачи или сгенерировать торрент-файл после загрузки метаданных с помощью любого торрент-клиента, например qBittorrent. (поддерживает RSS и поисковые плагины), Transmission или Webtorrent Desktop.
Доступ к RSS- каналам для RuTracker и NoNameClub осуществляется через перенаправление исходного канала. Для провайдеров Кинозал и РуТор реализована кастомная лента новостей с главной страницы, поддерживающая фильтрацию по категориям.
Вы можете развернуть свой собственный общедоступный API для Vercel из этого репозитория, просто нажмите кнопку ниже и следуйте инструкциям:
Проект использует GitHub Actions для создания контейнера Docker и автоматического тестирования функциональности всех конечных точек.
Загрузите образ и запустите контейнер из Docker Hub:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
Если вы используете прокси-сервер:
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
Замените содержимое переменных для подключения к Прокси-серверу на свое. Если вы не используете авторизацию на прокси-сервере, просто не указывайте эти параметры при запуске контейнера.
Вы можете скачать и использовать файл docker-compose для сборки контейнера из 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
Отредактируйте переменные среды в файле .env (требуется при использовании прокси-сервера) и запустите контейнер:
docker-compose up -d
Вы можете сохранить изображение, загруженное из Docker Hub, и перенести его на компьютер, у которого нет доступа к Docker Hub:
docker save -o TorAPI-Docker-Image.tar lifailon/torapi
В файлах релиза вы можете скачать подготовленный образ и загрузить его на свою машину:
docker load -i TorAPI-Docker-Image.tar
Запустите контейнер из скачанного локального образа:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
Вы можете создать образ самостоятельно из исходных файлов проекта, используя dockerfile.
Клонируйте этот репозиторий:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
При необходимости отредактируйте переменные или другие настройки в dockerfile
:
ENV PROXY_ADDRESS= " 192.168.3.100 "
ENV PROXY_PORT= " 9090 "
ENV USERNAME= " TorAPI "
ENV PASSWORD= " TorAPI "
Создайте образ и запустите контейнер:
docker build -t torapi .
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped torapi
Для установки проекта и всех зависимостей вы можете использовать менеджер пакетов npm:
npm install -g torapi
Клонируйте репозиторий, установите зависимости и запустите сервер:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
npm install
npm start
По умолчанию сервер будет запущен на порту 8443
.
Вы можете указать другой порт:
npm start -- -- port 2024
Для разработки используйте режим nodemon (перезапускает сервер при изменении содержимого файлов):
npm run dev
Используйте прокси для всех запросов:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090
Если требуется авторизация на прокси-сервере:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090 -- username TorAPI -- password TorAPI
Документация доступна в пользовательском интерфейсе Swagger по адресу: http://localhost:8443/docs
через модуль swagger-ui-express. Документация описана через библиотеку swagger-jsdoc.
Чтобы создать актуальные или обновить файлы документации Swagger в формате JSON
и YAML
, используйте команду:
npm run docs
Вы можете запустить тестирование, чтобы быстро проверить работоспособность всех конечных точек в консоли:
npm start -- --test
Во время тестирования запускается локальный сервер, выполняется запрос к конечной точке /api/provider/test
, выходные данные протоколируются в формате JSON и сервер завершает работу.
Изменить параметр заголовка в запросе:
npm start -- --test --q " The Rookie "
Параметризованные тесты также доступны через GitHub Actions с использованием Postman через newman в формате JUnit
:
Чтобы запустить тесты локально:
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, добавляющее кнопки на сайт Кинопоиска и предоставляющее интерфейс TorAPI в стиле Jackett (без необходимости установки серверной части и использования VPN) для быстрого поиска фильмов и сериалов в открытых источниках.
? Kinozal bot — Telegram-бот, позволяющий автоматизировать процесс доставки контента на телевизор, используя только телефон. Предоставляет удобный интерфейс взаимодействия с торрент-трекером Kinozal и базой данных TMDB для отслеживания даты выхода серий, сезонов и поиска актеров для каждой серии, а также возможность управления торрент-клиентом qBittorrent или Transmission на своем компьютере, будучи удаленно от дома и по единому интерфейсу.
❤️ WebTorrent Desktop api — форк клиента WebTorrent Desktop, в котором добавлен механизм удаленного управления через REST API
на базе Express Framework.
? Reverse Proxy .NET — кроссплатформенная утилита командной строки для реализации обратного прокси-сервера на базе .NET . Он используется для предоставления доступа к хостам в сети из одного сетевого интерфейса к удаленным приложениям через протоколы TCP , UDP или HTTP/HTTPS (поддерживаются запросы GET
и POST
для доступа к внешним ресурсам через Интернет), доступные через другой сетевой интерфейс (например, через VPN ) на вашем хосте без лишней настройки и с поддержкой авторизации.