API não oficial ( backend ) para rastreadores de torrent RuTracker, Kinozal, RuTor e NoNameClub. Utilizado para busca rápida e centralizada de distribuição, recebendo arquivos torrent, links magnéticos e informações detalhadas sobre distribuição por título de filme, série ou identificador de distribuição, além de fornecer feed RSS de notícias para todos os provedores com filtragem por categorias.
Você pode usar a versão pública e gratuita publicada no Vercel, bem como implantá-la você mesmo em qualquer plataforma de nuvem usando serverless ou local com Docker.
A especificação OpenAPI está disponível no site oficial do Swagger Hub.
Lançado sob licença do MIT.
Não é necessário utilizar VPN ao utilizar a versão pública, pois este serviço está na função de gateway, o que permite integrar a API
em qualquer projeto sem restrições de rede e também utilizar o feed de notícias em dispositivos móveis, por exemplo através do ReadYou ou Alimentador. Nenhum token de acesso e autorização nos rastreadores são necessários para que a API funcione.
O projeto é inspirado no Torrent-Api-py (anteriormente Torrents-Api) para provedores de torrent que falam russo.
XML
, bem como JSON
.A implementação de uma interface de usuário simples (como Jackett) está disponível através da extensão do Google Chrome ? Libre Kinopoisk para pesquisar simultaneamente distribuições em todos os rastreadores de torrent disponíveis e baixar conteúdo por meio de links magnéticos ou arquivos torrent diretamente dos rastreadores.
Plug-in Torrent Search para pesquisar rapidamente distribuições em todos os rastreadores de torrent disponíveis por meio da interface Wox, que está disponível para instalação no repositório de plug-ins.
Nome do provedor | Espelhos | Cadastro | Filtro para pesquisa e RSS | Pesquisar por ID | RSS |
---|---|---|---|---|---|
RuTracker | 3 | Sim* | Categoria | Sim | Nativo |
Kinozal | 3 | Sim* | Categoria, ano de lançamento, formato | Sim | Personalizado |
RuTor | 2 | Não | Categoria | Sim | Personalizado |
NoNameClub | 1 | Não | Categoria | Sim | Nativo |
* O registro é necessário apenas ao baixar um arquivo torrent por meio de um link direto. Todas as distribuições ao pesquisar por id (identificador) contêm soma de hash de informações e link magnético (já contém a lista atual de servidores rastreadores de torrent), que permitem iniciar imediatamente o carregamento da distribuição de conteúdo ou gerar arquivo torrent após baixar metadados usando qualquer cliente de torrent, por exemplo qBittorrent (suporta RSS e plug-ins de pesquisa), Transmission ou Webtorrent Desktop.
O acesso aos feeds RSS para RuTracker e NoNameClub é feito redirecionando o canal original. Para os provedores Kinozal e RuTor , foi implementado um feed de notícias transmitido da página inicial que suporta filtragem por categorias.
Você pode implantar sua própria API pública no Vercel a partir deste repositório, basta clicar no botão abaixo e seguir as instruções:
O projeto usa GitHub Actions para construir o contêiner Docker e testar automaticamente a funcionalidade de todos os endpoints.
Faça upload da imagem e execute o contêiner no Docker Hub:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
Se você estiver usando um servidor proxy:
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
Substitua o conteúdo das variáveis para conexão ao servidor proxy pelo seu próprio. Se você não usa autorização no servidor proxy, simplesmente não especifique esses parâmetros ao iniciar o contêiner.
Você pode baixar e usar o arquivo docker-compose para construir o contêiner do 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
Edite as variáveis de ambiente no arquivo .env (obrigatório se estiver usando um servidor proxy) e inicie o contêiner:
docker-compose up -d
Você pode salvar uma imagem baixada do Docker Hub para transferi-la para uma máquina que não tenha acesso ao Docker Hub:
docker save -o TorAPI-Docker-Image.tar lifailon/torapi
Nos arquivos de lançamento você pode baixar a imagem preparada e inicializá-la em sua máquina:
docker load -i TorAPI-Docker-Image.tar
Execute o contêiner da imagem local baixada:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
Você mesmo pode construir a imagem a partir dos arquivos de origem do projeto usando dockerfile.
Clone este repositório:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
Edite variáveis ou outras configurações no dockerfile
se necessário:
ENV PROXY_ADDRESS= " 192.168.3.100 "
ENV PROXY_PORT= " 9090 "
ENV USERNAME= " TorAPI "
ENV PASSWORD= " TorAPI "
Crie a imagem e execute o contêiner:
docker build -t torapi .
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped torapi
Para instalar o projeto e todas as dependências, você pode usar o gerenciador de pacotes npm:
npm install -g torapi
Clone o repositório, instale as dependências e inicie o servidor:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
npm install
npm start
Por padrão, o servidor será iniciado na porta 8443
.
Você pode especificar uma porta diferente:
npm start -- -- port 2024
Para desenvolvimento, use o modo nodemon (reinicia o servidor quando o conteúdo dos arquivos muda):
npm run dev
Use um proxy para todas as solicitações:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090
Se for necessária autorização em um servidor proxy:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090 -- username TorAPI -- password TorAPI
A documentação está disponível na UI do Swagger em: http://localhost:8443/docs
via módulo swagger-ui-express. A documentação é descrita através da biblioteca swagger-jsdoc.
Para criar arquivos de documentação do Swagger atualizados ou atualizados nos formatos JSON
e YAML
, use o comando:
npm run docs
Você pode executar testes para verificar rapidamente a integridade de todos os endpoints no console:
npm start -- --test
Durante o teste, o servidor local é iniciado, uma solicitação é feita ao endpoint /api/provider/test
, a saída é registrada no formato JSON e o servidor é encerrado.
Alterar parâmetro de cabeçalho na solicitação:
npm start -- --test --q " The Rookie "
Testes parametrizados também estão disponíveis através do GitHub Actions usando Postman via newman no formato JUnit
:
Para executar testes localmente:
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 – Extensão do Google Chrome que adiciona botões ao site Kinopoisk e fornece uma interface TorAPI no estilo Jackett (sem a necessidade de instalar uma parte de servidor e usar VPN) para pesquisar rapidamente filmes e séries em fontes abertas.
? Bot Kinozal - Bot do Telegram que permite automatizar o processo de entrega de conteúdo para sua TV usando apenas seu telefone. Fornece uma interface conveniente para interagir com o rastreador de torrent Kinozal e o banco de dados TMDB para rastrear datas de lançamento de episódios, temporadas e busca de atores para cada episódio, bem como a capacidade de gerenciar o cliente de torrent qBittorrent ou Transmission em seu computador, sendo remoto de casa e de interface única.
❤️ API WebTorrent Desktop - fork do cliente WebTorrent Desktop, que adicionou um mecanismo de controle remoto via REST API
baseado em Express Framework.
? Reverse Proxy .NET - utilitário de linha de comando de plataforma cruzada para implementar um servidor proxy reverso baseado em .NET . É usado para fornecer acesso a hosts na rede a partir de uma interface de rede para aplicativos remotos via protocolos TCP , UDP ou HTTP/HTTPS (solicitações GET
e POST
são suportadas para acessar recursos externos pela Internet) disponíveis através de outra interface de rede (por exemplo, via VPN ) em seu host sem configuração desnecessária e com suporte de autorização.