1. Začínáme

AniRena je torrentový indexer zaměřený na anime, mangu, audio a podobná média. Torrenty můžete procházet a stahovat bez účtu. Účet je nutný pro nahrávání torrentů, přispívání do skupin nebo používání API.

Navigační panel v horní části poskytuje přístup k hlavním oblastem webu:

  • Domů — stránka s výpisem a hledáním torrentů.
  • Nahrát — odeslat nový torrent (vyžaduje přihlášení).
  • Průvodce — tato stránka.
  • Statistiky — statistiky celého webu (torrenty, peery, nahrání v průběhu času).
  • Skupiny — adresář skupin vydání.
  • RSS — RSS kanál posledních nahrání, filtrovatelný podle kategorie.

Nabídka vašeho účtu (pravý horní roh po přihlášení) otevírá panel profilu, kde můžete upravit nastavení, spravovat možnosti zabezpečení a přistupovat ke svému API klíči.

2. Procházení a hledání

Domovská stránka zobrazuje všechny torrenty seřazené podle data nahrání. Použijte vyhledávací panel v horní části pro filtrování výsledků.

Základní hledání

Napište libovolná slova do vyhledávacího panelu a stiskněte Enter (nebo klikněte na ikonu hledání). Výsledky jsou řazeny podle relevance při aktivním dotazu.

Operátory hledání

Následující operátory lze kombinovat s běžným dotazem:

OperátorPříkladEfekt
user:"name"user:"SubsPlease"Zobrazit pouze torrenty nahrané tímto uživatelem.

Kliknutí na jméno nahrávajícího v seznamu torrentů automaticky spustí hledání uživatele.

Kategorie a podkategorie

Použijte volič kategorií (ikona mřížky vedle vyhledávacího panelu) pro omezení výsledků na jednu kategorii. Dostupné kategorie jsou:

  • Anime
  • Manga/Manhwa/Komiks
  • Audio
  • Literatura
  • Živý přenos
  • Obrázky
  • Software
  • Hentai
  • Ostatní

Každá kategorie má podkategorie (např. Anime na RAW, Sub/Audio, Hudební video) volitelné uvnitř modálního okna kategorie.

Řazení a filtry

'Záhlaví sloupců v seznamu torrentů jsou klikatelná pro řazení podle daného sloupce (vzestupně nebo sestupně). Dostupné sloupce pro řazení: datum, název, velikost, dokončená stahování. Poznámka: seederé a leecheři jsou živé hodnoty z Redis a nelze je použít k řazení.'

Filtr jazyka

Použijte volič jazyka (ikona vlajky) pro zobrazení pouze torrentů označených konkrétním jazykem.

RSS kanál

RSS kanál na /rss poskytuje nejnovější nahrání. Přidejte ?category=anime (nebo jiný slug kategorie) pro filtrování kanálu. Většina torrent klientů podporuje automatické stahování přes RSS přímo z této URL.

3. Stahování torrentů

Klikněte na libovolný název torrentu pro otevření panelu podrobností. Odtud můžete:

  • Stáhnout .torrent — uloží soubor .torrent přímo. Přímá URL je /torrents/{id}.torrent
  • Magnetický odkaz — otevře se přímo ve vašem torrent klientovi přes protokol magnet URI. URL je /torrents/{id}/magnet

Panel podrobností také zobrazuje popis torrentu, seznam souborů, seznam trackerů a počty seederů/leecherů.

Starší stahování odkazů

Starší stahování odkazů AniRena jsou stále podporovány a automaticky přesměrovávají na správný soubor .torrent pomocí starého ID: /dl/{old_id}

Doporučení klienti BitTorrent

Funguje jakýkoli moderní klient BitTorrent. Níže uvedení klienti jsou doporučeni a plně podporují BitTorrent v2 / hybridní torrenty:

qBittorrent Na stránce stahování klikněte na Další možnosti stahování a vyberte sestavení označené lt20 (libtorrent 2.0). Výchozí instalátor používá libtorrent 1.2, který nepodporuje čisté torrenty v2.v2 podporováno
PicoTorrent Lehký klient pro Windows s nativní podporou BitTorrent v2 hned po instalaci.v2 podporováno
BiglyBT Funkčně bohatý multiplatformní klient založený na Azureus/Vuze s plnou podporou v2.v2 podporováno

4. Vytvoření účtu

Registrace

Klikněte na Registrovat se v navigačním panelu. Zvolte přezdívku, zadejte e-mailovou adresu a nastavte heslo (vynucena minimální délka). Před vytvořením účtu musíte přečíst a přijmout podmínky webu.

Aktivace e-mailem

Po registraci bude na vaši adresu odeslán ověřovací e-mail. Klikněte na odkaz v e-mailu pro aktivaci účtu. Pokud jste ho neobdrželi, použijte odkaz Aktivovat váš účet na přihlašovací stránce pro vyžádání nového kódu.

Obnova hesla

Pokud zapomenete heslo, klikněte na Zapomněli jste heslo na přihlašovací stránce a zadejte svou e-mailovou adresu. Bude vám zaslán obnovovací odkaz. Odkaz je jednorázový a po krátké době vyprší.

5. Nahrání torrentů

Přejděte na Nahrát v navigačním panelu. Musíte být přihlášeni s aktivním, nezakázaným účtem. Stránka nahrávání má dvě záložky:

Záložka Nahrát — odeslat stávající soubor .torrent

Přetáhněte nebo vyberte soubor .torrent. Po načtení vyplňte pole:

PolePovinnéPopis
Soubor torrentuAnoSoubor .torrent k nahrání.
NázevNePřepsat název zobrazení torrentu. Pokud je ponecháno prázdné, použije se název vložený do souboru torrentu.
KategorieAnoKategorie obsahu (Anime, Manga, Audio atd.).
PodkategorieNeKonkétní typ v rámci kategorie (např. RAW, Sub/Audio).
JazykyNeJeden nebo více jazykových tagů popisujících jazyk obsahu.
SkupinaNePřidružit toto vydání ke skupině, jejíž jste členem.
PopisNePopis ve formátu Markdown zobrazený na stránce podrobností torrentu (max. 65535 znaků).
SoukromýNeNastaví soukromý štítek v torrentu, zakáže DHT/PEX. Užitečné pro torrenty pouze s trackerem.
URL pro announceNePřepsat nebo přidat primární URL announce trackeru.
Extra trackeryNeNačteno ze souboru torrentu. Nelze upravit při nahrávání — pokud chcete přizpůsobit seznam trackerů, použijte záložku Vytvořit.
KomentářNePřepsat pole komentáře torrentu vložené do souboru.
Požadavek na tracker AniRena

Váš torrent musí obsahovat alespoň jednu URL trackeru AniRena v seznamu announce (v jakémkoliv tieru). Stránka to kontroluje při nahrávání a odmítne torrenty, které tracker AniRena neobsahují. Pokud jste torrent vytvořili bez přidání trackeru AniRena, nahrajte ho a poté si ho znovu stáhněte ze stránky — stažený soubor bude mít správné trackery přidány automaticky.

Záložka Vytvořit — sestavit nový torrent

Záložka Vytvořit vám umožňuje generovat nový .torrent od nuly zadáním cest k souborům, URL trackerů a dalších parametrů torrentu přímo v prohlížeči. Výsledný torrent je odeslán se stejnými poli metadat jako výše.

Moderování

Nahrávané torrenty jsou automaticky kontrolovány oproti seznamu zakázaných vzorů obsahu (názvy, názvy souborů, popisy). Torrenty odpovídající zakázanému vzoru budou odmítnuty. Duplicitní torrenty (stejné kontrolní součty) jsou také odmítnuty.

6. Váš účet

Klikněte na svoji přezdívku v pravém horním rohu pro otevření panelu profilu. Je organizováno do sbalitelných sekcí:

Nastavení

Změňte téma UI, velikost písma, barevné schéma, jazyk rozhraní a předvolby zobrazení související s torrenty. Změny jsou ukládány automaticky.

Heslo

Zadejte aktuální heslo a nové heslo dvakrát. Ověřovací kód je odeslán na vaši registrovanou e-mailovou adresu a musí být zadán pro potvrzení změny. Pokud je povoleno dvoufázové ověření, je vyžadován také váš TOTP kód.

Dvoufázové ověření (2FA)

Povolte dvoufázové ověření založené na TOTP pomocí libovolné ověřovací aplikace (např. Google Authenticator, Aegis, Bitwarden). Při povolování 2FA:

  1. Naskenujte QR kód (nebo zadejte tajný klíč ručně) ve své ověřovací aplikaci.
  2. Zadejte 6místný kód zobrazený ve vaší aplikaci pro potvrzení nastavení.
  3. Uložte zobrazené obnovovací kódy — jedná se o jednorázové kódy pro obnovení přístupu, pokud ztratíte zařízení.

Pro zakázání 2FA zadejte aktuální TOTP kód a potvrďte.

Aktivní relace

Zobrazit všechny aktuálně aktivní přihlašovací relace včetně prohlížeče, OS, IP adresy a času posledního přístupu. Klikněte na Odvolat u jakékoli relace, kterou nepoznáváte. Můžete také odvolat všechny relace najednou a odhlásit se ze všech zařízení.

API klíč

Vygenerujte osobní API klíč používaný k programatickému nahrávání torrentů přes AniRena API. Klikněte na Vygenerovat klíč pro vytvoření — celý klíč je zobrazen jednou okamžitě po vygenerování. Uložte ho bezpečně; nebude zobrazen celý znovu. Použijte Odvolat pro trvalé zneplatnění klíče.

Smazat účet

Požadavek na smazání účtu zahájí 30denní lhůtu. Váš účet je okamžitě zakázán a trvale smazán po 30 dnech. Smazání můžete kdykoli v tomto okně zrušit přihlášením a kliknutím na Zrušit smazání.

7. AniRena API

'AniRena poskytuje JSON API, které vám umožňuje nahrávat torrenty programaticky pomocí osobního API klíče. API uplatňuje stejná pravidla jako webové rozhraní: kontroly blokování, limity rychlosti a omezení režimu webu se všechna uplatňují. Každé nahrávání přes API je zaznamenáno v audit logu.'

Ověření

API používá dvoukrokový autentizační tok. Nejprve vyměňte svůj trvalý API klíč za krátkodobý bearer token, poté tento token předejte v hlavičce Authorization každého API požadavku.

Váš API klíč je dostupný v části Váš účet > API klíč. Uchovejte ho v tajnosti — kdokoli ho má, může získat bearer tokeny a nahrávat ve vašem jménu. Pokud dojde ke kompromitaci, okamžitě ho zrušte a vygenerujte nový.

Krok 1 — Získejte bearer token
POST/api/v1/auth/token

Odešlete POST požadavek na endpoint tokenu s vaším API klíčem v hlavičce Authorization. Tělo požadavku není potřeba.

Authorization: ApiKey <your-api-key>
Odpověď tokenu
{
  "token":      "<bearer-token>",
  "token_type": "Bearer",
  "expires_in": 3600
}
Životnost tokenu

Bearer tokeny zůstávají platné až 3600 sekund od vydání a lze je opakovaně používat pro každé volání, dokud nevyprší. Když token vyprší, vytvořte nový přes POST /api/v1/auth/token. Každá odpověď i nadále vrací aktuální token v hlavičce X-New-Token kvůli zpětné kompatibilitě.

X-New-Token: <next-bearer-token>
Přihlášení jedním požadavkem (s 2FA)
POST/api/v1/auth/login

Ověřte se uživatelským jménem nebo e-mailem a heslem v jediném požadavku a získejte bearer token přímo. Pokud má váš účet zapnuté 2FA, vložte aktuální kód z autentizátoru do totp_code (nebo záložní kód do recovery_code). Volitelně nastavte new_api_key na true, aby se ve stejné odpovědi vytvořil zcela nový trvalý API klíč.

Tělo požadavku
{
  "login":         "username or email",
  "password":      "your-password",
  "totp_code":     "123456",   // vyžadováno, pokud je 2FA zapnuté (6 číslic)
  "recovery_code": "",         // alternativa k totp_code
  "new_api_key":   false       // nastavte na true pro vytvoření nového API klíče
}
Odpověď tokenu
{
  "ok":         true,
  "token":      "<bearer-token>",
  "token_type": "Bearer",
  "expires_in": 3600,
  "api_key":    "<new-api-key>"   // přítomno pouze když bylo new_api_key true
}

Bearer token funguje úplně stejně jako token z ‎/api/v1/auth/token. Pole api_key se vrací jen tehdy, když je new_api_key true — uložte jej ihned, zobrazí se pouze jednou a nahradí jakýkoli předchozí klíč.

Příklad — přihlášení a (volitelně) získání nového API klíče
# pip install requests
import requests

BASE_URL = "https://www.anirena.com"

# One request: authenticate (with 2FA if enabled) and get a bearer token.
# Set new_api_key=True to also receive a brand-new permanent API key.
resp = requests.post(
    f"{BASE_URL}/api/v1/auth/login",
    json={
        "login":       "your-username",  # username or email
        "password":    "your-password",
        "totp_code":   "123456",         # omit if 2FA is not enabled
        "new_api_key": True,             # optional
    },
)
resp.raise_for_status()
data  = resp.json()
token = data["token"]  # use as: Authorization: Bearer <token>
if "api_key" in data:
    print("New API key — store it now:", data["api_key"])

Krok 2 — Nahrajte torrent

POST/api/v1/torrents

Odešlete prostý JSON POST požadavek s bearer tokenem v hlavičce Authorization.

Tělo požadavku
PoleTypPovinnéPopis
torrentstringAnoObsah souboru .torrent zakódovaný v Base64.
categorystringAnoSlug kategorie: anime, manga, audio, literatura, live, pictures, software, hentai, other.
namestringNePřepsat název zobrazení torrentu.
sub_categorystringNeSlug podkategorie (např. raw, sub-audio). Musí patřit do zvolené kategorie.
languagesstring[]NePole kódů jazyků BCP 47 (např. en, ja).
group_idstringNeUUID skupiny, jejíž jste členem, pro přidružení tohoto vydání.
descriptionstringNePopis vydání ve formátu Markdown (max. 65535 znaků).
commentstringNePřepsat vložené pole komentáře torrentu.
is_privatebooleanNeNastavte na true pro povolení soukromého štítku v torrentu.
comments_enabledbooleanNePovolit komentáře k tomuto torrentu. Výchozí hodnota je true (povoleno).
anime_idstringNeUUID záznamu anime pro propojení s tímto torrentem. UUID získáte přes GET /api/v1/anime/search. Vrátí 400, pokud UUID neodpovídá žádnému známému záznamu.
announcestringNePřepsat nebo přidat primární URL announce.
trackersstringNeSeznam dalších URL trackerů oddělených novými řádky. Prázdný řádek mezi URL vytvoří novou vrstvu trackeru.
testbooleanNeNastavte na true pro suché spuštění: požadavek je plně ověřen, ale torrent není uložen. Použijte to pro ověření správnosti vašich dat před skutečným odesláním.
Suché spuštění / testovací režim Přidejte "test": true do libovolného požadavku na nahrání a zkontrolujte, zda by uspěl, aniž byste torrent skutečně přidali. Platí všechna ověřovací pravidla — ověřování, vyhledávání kategorií, detekce duplikátů, zakázané vzory, požadavky sledovačů — takže odpověď přesně odráží to, co by vrátilo skutečné odeslání. Token se při úspěchu stále otočí.
Odpověď na úspěšné suché spuštění — 200 OK
{
  "ok":           true,
  "test":         true,
  "name":         "My Torrent Title",
  "info_hash_v1": "aabbccddeeff...",
  "info_hash_v2": null
}
Dostupné kódy jazyků
ababAbkhazian
aaaaAfar
afafAfrikaans
akakAkan
sqsqAlbanian
amamAmharic
ararArabic
ar-001ar-001Arabic (Modern Standard)
ananAragonese
hyhyArmenian
asasAssamese
avavAvaric
aeaeAvestan
ayayAymara
azazAzerbaijani
bmbmBambara
babaBashkir
eueuBasque
bebeBelarusian
bnbnBengali
bhbhBihari
bibiBislama
bsbsBosnian
brbrBreton
bgbgBulgarian
mymyBurmese
yueyueCantonese
cacaCatalan
chchChamorro
ceceChechen
nynyChichewa
zhzhChinese
zh-HKzh-HKChinese (Hong Kong)
zh-Hanszh-HansChinese (Simplified)
zh-SGzh-SGChinese (Singapore)
zh-TWzh-TWChinese Traditional
cucuChurch Slavic
cvcvChuvash
kwkwCornish
cocoCorsican
crcrCree
hrhrCroatian
cscsCzech
dadaDanish
dvdvDivehi
nlnlDutch
nl-BEnl-BEDutch (Belgian)
dzdzDzongkha
enenEnglish
en-USen-USEnglish (US)
eoeoEsperanto
etetEstonian
eeeeEwe
fofoFaroese
fjfjFijian
filfilFilipino
fifiFinnish
frfrFrench
fr-CAfr-CAFrench (Canadian)
ffffFula
glglGalician
lglgGanda
kakaGeorgian
dedeGerman
de-ATde-ATGerman (Austrian)
elelGreek
gngnGuarani
guguGujarati
hthtHaitian Creole
hahaHausa
heheHebrew
hzhzHerero
hihiHindi
hohoHiri Motu
huhuHungarian
isisIcelandic
ioioIdo
igigIgbo
ididIndonesian
iaiaInterlingua
ieieInterlingue
iuiuInuktitut
ikikInupiaq
gagaIrish
ititItalian
jajaJapanese
jvjvJavanese
klklKalaallisut
knknKannada
krkrKanuri
ksksKashmiri
kkkkKazakh
kmkmKhmer
kikiKikuyu
rwrwKinyarwanda
rnrnKirundi
kvkvKomi
kgkgKongo
kokoKorean
kjkjKuanyama
kukuKurdish
kykyKyrgyz
loloLao
lalaLatin
lvlvLatvian
liliLimburgish
lnlnLingala
ltltLithuanian
luluLuba-Katanga
lblbLuxembourgish
mkmkMacedonian
mgmgMalagasy
msmsMalay
mlmlMalayalam
mtmtMaltese
gvgvManx
mimiMaori
mrmrMarathi
mhmhMarshallese
mnmnMongolian
nanaNauru
nvnvNavajo
ngngNdonga
neneNepali
ndndNorth Ndebele
seseNorthern Sami
nonoNorwegian
nbnbNorwegian Bokmål
nnnnNorwegian Nynorsk
ococOccitan
ororOdia
ojojOjibwe
omomOromo
ososOssetic
pipiPali
pspsPashto
fafaPersian
plplPolish
ptptPortuguese
pt-BRpt-BRPortuguese (Brazil)
papaPunjabi
ququQuechua
roroRomanian
rmrmRomansh
ruruRussian
smsmSamoan
sgsgSango
sasaSanskrit
scscSardinian
gdgdScottish Gaelic
srsrSerbian
sr-Latnsr-LatnSerbian (Latin)
snsnShona
iiiiSichuan Yi
sdsdSindhi
sisiSinhala
skskSlovak
slslSlovenian
sosoSomali
nrnrSouth Ndebele
ststSouthern Sotho
esesSpanish
es-419es-419Spanish (Latin America)
es-MXes-MXSpanish (Mexico)
susuSundanese
swswSwahili
ssssSwati
svsvSwedish
tltlTagalog
tytyTahitian
tgtgTajik
tataTamil
ttttTatar
teteTelugu
ththThai
boboTibetan
titiTigrinya
totoTongan
tstsTsonga
tntnTswana
trtrTurkish
tktkTurkmen
twtwTwi
ukukUkrainian
ururUrdu
ugugUyghur
uzuzUzbek
veveVenda
viviVietnamese
vovoVolapük
wawaWalloon
cycyWelsh
fyfyWestern Frisian
wowoWolof
xhxhXhosa
yiyiYiddish
yoyoYoruba
zazaZhuang
zuzuZulu
Příklad požadavku
# pip install requests
import base64, pathlib, requests

API_KEY  = "YOUR_API_KEY"
BASE_URL = "https://www.anirena.com"

# Step 1: exchange API key for a short-lived bearer token
auth = requests.post(
    f"{BASE_URL}/api/v1/auth/token",
    headers={"Authorization": f"ApiKey {API_KEY}"},
)
auth.raise_for_status()
token = auth.json()["token"]

# Step 2: upload — plain JSON with the bearer token
torrent_b64 = base64.b64encode(pathlib.Path("file.torrent").read_bytes()).decode()
resp = requests.post(
    f"{BASE_URL}/api/v1/torrents",
    json={
        "torrent":      torrent_b64,
        "category":     "anime",
        "sub_category": "raw",
        "languages":    ["ja"],
        "description":  "# My Release\n\nRelease notes here.",
        "is_private":   False,
    },
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data  = resp.json()
token = resp.headers.get("X-New-Token", token)  # save for next request
print(data["id"], data["name"])  # torrent UUID and title
Úspěšná odpověď — 200 OK
{
  "ok":           true,
  "id":           "550e8400-e29b-41d4-a716-446655440000",
  "name":         "My Torrent Title",
  "info_hash_v1": "aabbccddeeff...",
  "info_hash_v2": null
}
Chybové odpovědi
HTTP stavVýznam
400Neplatné tělo požadavku nebo chybějící povinné pole.
401Chybějící, expirovaný nebo již rotovaný bearer token. Znovu se ověřte přes POST /api/v1/auth/token.
403Účet zakázán, zakázáno nebo IP blokováno.
409Duplicitní torrent — stejný kontrolní součet již existuje.
422Soubor torrentu nelze parsovat nebo selhal při ověřování (zakázaný vzor, neplatná struktura).
429Překročen limit rychlosti. Zkuste znovu po resetování okna.
503Web je v režimu údržby nebo pouze pro čtení.

Omezení rychlosti

Nahrávání přes API podléhají konfigurovatelným limitům rychlosti odděleným od webového rozhraní. Limit a okno nastavuje správce webu. Při překročení limitu rychlosti API vrátí 429 Too Many Requests. Limit je na API klíč.

Uchovejte svůj API klíč v tajnosti. Poskytuje plný přístup k nahrávání pod vaším účtem. Okamžitě ho odvolejte a vygenerujte nový, pokud máte podezření, že byl kompromitován.

Generování torrent souborů pomocí torrent-builder

torrent-builder je open-source CLI nástroj postavený na libtorrent-rasterbar, který umožňuje vytvářet soubory .torrent ve formátech BitTorrent v1, v2 a hybrid z příkazové řádky. Dokonale se hodí k AniRena upload API — vygenerujte soubor lokálně a pak ho POST přímo na tracker. cantalupo555/torrent-builder.

Sestavení ze zdrojového kódu

Vyžaduje CMake >= 3.28.3 a libtorrent-rasterbar >= 2.0.11. Naklonujte repozitář a sestavte pomocí CMake:

# Install system dependencies
sudo apt-get install build-essential cmake libtorrent-rasterbar-dev

# Clone & build
git clone https://github.com/cantalupo555/torrent-builder.git
cd torrent-builder
mkdir build && cd build
cmake .. && cmake --build .
Klíčové přepínače
PolePopis
--pathCesta k souboru nebo adresáři k zabalení (povinné).
--outputNázev výstupního souboru .torrent (povinné).
--versionFormát BitTorrent — 1 = v1, 2 = v2, 3 = hybrid (výchozí: 3).
--trackerPřidat URL pro announce trackeru. Přepínač opakujte pro přidání více trackerů.
--commentVložit řetězec komentáře metadat do torrentu.
--privateNastavit příznak soukromého pro omezení distribuce pouze na uvedené trackery.
--piece-sizeVelikost části v KB (16-32768). Ponechte nenastavené pro automatický výběr.
-iSpustit krokový interaktivní konfigurační režim.
Kompletní pracovní postup: sestavení -> nahrání

Níže uvedené příklady sestaví hybrid torrent pomocí torrent-builder, poté se ověří v AniRena API a nahrají výsledek v jediném skriptu.

# pip install requests
import base64, subprocess, requests

API_KEY  = "YOUR_API_KEY"
BASE_URL = "https://www.anirena.com"

# Step 1: build the torrent with torrent-builder
# --version 1=v1  2=v2  3=hybrid (default)
subprocess.run([
    "./torrent-builder/build/torrent_builder",
    "--path",    "/data/my_release",
    "--output",  "my_release.torrent",
    "--version", "3",                      # hybrid
    "--tracker", "udp://open.tracker.gg:6969/announce",
    "--comment", "My Release",
    "--creator", "--creation-date",
], check=True)

# Step 2: authenticate
token = requests.post(
    f"{BASE_URL}/api/v1/auth/token",
    headers={"Authorization": f"ApiKey {API_KEY}"},
).json()["token"]

# Step 3: upload
torrent_b64 = base64.b64encode(open("my_release.torrent", "rb").read()).decode()
resp = requests.post(
    f"{BASE_URL}/api/v1/torrents",
    json={
        "torrent":          torrent_b64,
        "category":         "anime",
        "sub_category":     "raw",
        "languages":        ["ja"],
        "comments_enabled": True,
    },
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
print(data["id"], data["name"])

Hledání metadat torrentů

POST/api/v1/torrents/search

Odešlete prostý JSON POST požadavek pro načtení torrent listingů se stejnými možnostmi vyhledávání a filtrování dostupnými na webu. Samotný soubor .torrent není vrácen — pro stažení použijte běžnou download cestu.

# pip install requests  (token already obtained — see upload example)
resp = requests.post(
    f"{BASE_URL}/api/v1/torrents/search",
    json={"q": "Sword Art Online", "category": "anime", "per_page": 25},
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data  = resp.json()
token = resp.headers.get("X-New-Token", token)  # save for next request
for t in data["torrents"]:
    print(t["title"], "-", t["magnet"])
Parametry vyhledávání
PoleTypPovinnéPopis
qstringNeHledání volného textu. Podporuje prefixy group:slug, group:"Název", user:jméno.
categorystringNeSlug kategorie (např. "anime").
sub_categorystringNeSlug podkategorie (např. "raw").
languagesstring[]NePole kódů jazyků BCP 47 (např. en, ja).
sortstringNePole řazení: date (výchozí), size, seeders, leechers, completed, title.
orderstringNeSměr řazení: desc (výchozí) nebo asc.
pageintegerNeČíslo stránky, začínající od 1 (výchozí 1).
per_pageintegerNeVýsledků na stránku, 1–250 (výchozí 50).
hide_adultbooleanNeVyloučit torrenty kategorie pro dospělé. Výchozí hodnota true pro běžné uživatele.
show_deadbooleanNePokud je false (výchozí), torrenty starší než lhůta pro mrtvé torrenty bez aktivních seedů jsou vyloučeny. Nastavte na true pro jejich zahrnutí.
Odpověď
{
  "total":       1234,
  "page":        1,
  "per_page":    50,
  "total_pages": 25,
  "from":        1,
  "to":          50,
  "torrents": [
    {
      "id":            "550e8400-e29b-41d4-a716-446655440000",
      "title":         "My Release Title",
      "info_hash_v1":  "aabbccddeeff...",
      "info_hash_v2":  null,
      "size_fmt":      "1.4 GB",
      "completed":     42,
      "seeders":       10,
      "leechers":      3,
      "languages":     ["ja", "en"],
      "comment_count": 7,
      "created_at":    "2024-01-15 12:34",
      "cat_slug":      "anime",
      "sub_slug":      "raw",
      "group_name":    null,
      "uploader":      "username",
      "magnet":        "magnet:?xt=urn:btih:..."
    }
  ]
}

comment_count — Počet nesmazaných komentářů k tomuto torrentu.

Omezení rychlosti hledání

Požadavky na hledání podléhají oddělené konfigurovatelné limitaci rychlosti (výchozí 60 požadavků za 60 sekund na API klíč). Překročení limitu vrátí 429 Too Many Requests. Účty personálu jsou osvobozeny.

Získat podrobnosti torrentu

GET/api/v1/torrent/{id}

Načte úplná metadata jednoho torrentu — včetně polí, která endpoint vyhledávání vynechává, jako je popis v Markdownu, vložený komentář souboru .torrent, seznam souborů s velikostí každého souboru a kompletní rozvržení trackerů. Pokud jsou dostupné, čtou se živé počty seedů a leecherů z trackeru.

Odpověď
{
  "id":                "550e8400-e29b-41d4-a716-446655440000",
  "title":             "My Release Title",
  "info_hash_v1":      "aabbccddeeff...",
  "info_hash_v2":      null,
  "size_fmt":          "1.4 GB",
  "completed":         42,
  "seeders":           10,
  "leechers":          3,
  "ext_seeders":       128,
  "ext_leechers":      14,
  "created_at":        "2024-01-15 12:34",
  "torrent_created":   "2024-01-15 12:30",
  "created_by_client": "mktorrent 1.1",
  "cat_name":          "Anime",
  "cat_slug":          "anime",
  "sub_name":          "Raw",
  "sub_slug":          "raw",
  "group_name":        null,
  "group_slug":        null,
  "uploader":          "username",
  "uploader_id":       "...",
  "description":       "# My Release\n\nRelease notes here.",
  "comment":           "",
  "is_private":        false,
  "magnet":            "magnet:?xt=urn:btih:...",
  "languages": [
    { "code": "ja", "name": "Japanese", "country_code": "jp" }
  ],
  "tracker_tiers": [
    { "tier": 0, "urls": ["udp://tracker.example.org:6969/announce"] }
  ],
  "files": [
    { "path": "My Release/episode-01.mkv", "size": 1503238553 }
  ],
  "comments_enabled":  true,
  "comments_locked":   false,
  "comment_count":     7
}

seeders, leechers — Živé počty z vlastního trackeru; oba hlásí 0, pokud úložiště trackeru nemá záznam pro tento info hash nebo není dostupné.

ext_seeders, ext_leechers — Nejvyšší počet seedů a leecherů hlášený jakýmkoli jednotlivým externím trackerem nascrapovaným pro tento torrent. Trackery sledující stejný swarm se překrývají, takže se používá maximum místo součtu; oba hlásí 0, když žádný tracker nemá data scrape pro tento info hash.

Chybové odpovědi
HTTP stavVýznam
400ID torrentu musí být buď 36znakové UUID s pomlčkami, nebo 32znakový čistý hexadecimální řetězec.
401Chybějící, expirovaný nebo již rotovaný bearer token. Znovu se ověřte přes POST /api/v1/auth/token.
404Torrent nenalezen.
429Překročen limit rychlosti. Zkuste znovu po resetování okna.
503Web je v režimu údržby nebo pouze pro čtení.

Načítání komentářů k torrentu

GET/api/v1/torrents/{id}/comments

Načíst stránkované komentáře k torrentu. Počet komentářů na stránku je řízen nastavením COMMENT_PER_PAGE v souboru .env serveru (výchozí 20). Výsledky vrátí pouze torrenty s povolenými komentáři — všechny ostatní vrátí 403.

Parametry dotazu
PoleTypPovinnéPopis
pageintegerNeČíslo stránky, začínající od 1 (výchozí 1).
# pip install requests  (token already obtained — see upload example)
TORRENT_ID = "550e8400-e29b-41d4-a716-446655440000"
resp = requests.get(
    f"{BASE_URL}/api/v1/torrents/{TORRENT_ID}/comments",
    params={"page": 1},
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data  = resp.json()
token = resp.headers.get("X-New-Token", token)  # save for next request
for c in data["comments"]:
    print(c["username"], "-", c["body"])
Odpověď
{
  "torrent_id":  "550e8400-e29b-41d4-a716-446655440000",
  "page":        1,
  "per_page":    20,
  "total":       45,
  "total_pages": 3,
  "comments": [
    {
      "id":                 "...",
      "user_id":            "...",
      "username":           "uploader",
      "role":               "user",
      "author_banned":      false,
      "body":               "Great release!",
      "created_at":         "2024-01-15 12:34:00",
      "edited_at":          null,
      "edited_by_username": null,
      "deleted_at":         null
    }
  ]
}

Pole body je prázdný řetězec, pokud je autor komentáře zabanován nebo byl komentář smazán. Příznak author_banned určuje, který případ platí.

Chybové odpovědi
HTTP stavVýznam
401Chybějící, expirovaný nebo již rotovaný bearer token. Znovu se ověřte přes POST /api/v1/auth/token.
403Komentáře jsou pro tento torrent zakázány.
404Torrent nebyl nalezen.
503Web je v režimu údržby nebo pouze pro čtení.

Vyhledávání anime záznamů

GET/api/v1/anime/search?q=<query>

Vyhledejte záznamy anime podle názvu a získejte jejich UUID. UUID lze předat jako anime_id v těle nahrávání pro propojení torrentu se záznamem anime při nahrávání, nebo použít s PUT /api/torrents/{id}/anime po nahrání. Není vyžadováno ověření. Podléhá stejnému limitu rychlosti jako vyhledávání torrentů (výchozí 60 požadavků za 60 sekund na IP).

# pip install requests  (no authentication required)
resp = requests.get(
    f"{BASE_URL}/api/v1/anime/search",
    params={"q": "Sword Art Online", "page": 1, "per_page": 10},
)
resp.raise_for_status()
for item in resp.json()["results"]:
    print(item["id"], "-", item["title"])
Parametry dotazu
PoleTypPovinnéPopis
qstringAnoŘetězec pro vyhledávání názvu (povinné). Porovnáváno s názvem a synonymy.
pageintegerNeČíslo stránky, začínající od 1 (výchozí 1).
per_pageintegerNeVýsledků na stránku, 1–50 (výchozí 10).
Odpověď
{
  "total":       42,
  "page":        1,
  "per_page":    10,
  "total_pages": 5,
  "results": [
    {
      "id":           "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "title":        "Sword Art Online",
      "anime_type":   "TV",
      "episodes":     25,
      "status":       "FINISHED",
      "season":       "FALL",
      "season_year":  2012,
      "picture":      "https://cdn.myanimelist.net/images/anime/...",
      "thumbnail":    "https://cdn.myanimelist.net/images/anime/...",
      "duration_secs": 1440
    }
  ]
}

Seznam a načtení skupin

GET/api/v1/groups

Vrací stránkovaný seznam veřejných skupin (aktivovaných a nezamčených). Vyžaduje ověření Bearer tokenem.

GET/api/v1/groups/{id_or_slug}

Vrací jednu veřejnou skupinu podle číselného ID nebo slugu. Vrací 404, pokud je skupina deaktivována nebo zamčena.

Parametry dotazu (pouze seznam)
PoleTypPovinnéPopis
qstringNeFiltrovat podle názvu skupiny (volitelné, shoda podřetězce).
pageintegerNeČíslo stránky (výchozí 1).
per_pageintegerNeVýsledků na stránku, 1–100 (výchozí 20).
sortstringNeSloupec řazení: name | slug | members | torrents | created (výchozí name).
orderstringNeSměr řazení: asc nebo desc (výchozí asc).
Odpověď (seznam)
{
  "total":       12,
  "page":        1,
  "per_page":    20,
  "total_pages": 1,
  "groups": [
    {
      "id":             1,
      "name":           "SubsPlease",
      "slug":           "subsplease",
      "subdomain_slug": "subsplease",
      "description":    "Weekly simulcast batches.",
      "owner":          "admin",
      "member_count":   42,
      "torrent_count":  1337,
      "created_at":     "2024-01-15 12:34"
    }
  ]
}
Odpověď (jednoduchá)
{
  "id":             1,
  "name":           "SubsPlease",
  "slug":           "subsplease",
  "subdomain_slug": "subsplease",
  "description":    "Weekly simulcast batches.",
  "owner":          "admin",
  "member_count":   42,
  "torrent_count":  1337,
  "created_at":     "2024-01-15 12:34"
}
Chybové odpovědi
HTTP stavVýznam
401Chybějící, expirovaný nebo již rotovaný bearer token. Znovu se ověřte přes POST /api/v1/auth/token.
404Skupina nebyla nalezena nebo není veřejně přístupná.
429Překročen limit rychlosti. Zkuste znovu po resetování okna.
503Web je v režimu údržby nebo pouze pro čtení.

8. Dary

Pokud chcete podpořit AniRena a pomoci pokrýt náklady na provoz našich serverů a služeb, uvítáme váš příspěvek na jednu z následujících kryptoměnových peněženek:

Bitcoinbc1qy2h3ddq6ak5damvnf4r5vu3ydehhxrcq8gllwn
Ethereum0xCbaFe03832F95F86AF2536d52710e78C63b62Cd3
Solana3ucetj2XDGHQg9PVRPMxerNi7c6kX7GJkjQNg9yjwGeg
LitecoinLbpt61yX3RjGtB1Ef8vgVz6Hr6baQsTjVk

Jakýchkoliv příspěvků, velkých i malých, si velmi vážíme a míří přímo na provoz AniReny. Děkujeme za Vaši podporu!

9. Software

AniRena Player je bezplatná desktopová aplikace, která vám umožňuje streamovat video přímo z torrentů indexovaných na tomto webu — bez nutnosti čekat na dokončení stahování. Stačí vložit magnet odkaz nebo otevřít soubor .torrent a přehrávání začne, jakmile bude k dispozici dostatek dat.

Obě verze jsou plně samostatné — všechny závislosti jsou zabaleny uvnitř spustitelného souboru. Žádný instalátor, žádné runtime prostředí, stačí stáhnout a spustit.

Windows auto-aktualizace
  • v0.3.2 latest AniRena-Player_0.3.2_x64-setup.exe · 43.4 MB (35 stažení)
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_x64-setup.exe · 43.9 MB (64 stažení)
  • v0.3.0 AniRena-Player_0.3.0_x64-setup.exe · 43.7 MB (8 stažení)
  • v0.2.9 AniRena-Player_0.2.9_x64-setup.exe · 43.5 MB (6 stažení)
  • v0.2.8 AniRena-Player_0.2.8_x64-setup.exe · 43.5 MB (17 stažení)
  • v0.2.7 AniRena-Player_0.2.7_x64-setup.exe · 43.5 MB (20 stažení)
  • v0.2.6 AniRena-Player_0.2.6_x64-setup.exe · 43.4 MB (3 stažení)
  • v0.2.5 AniRena-Player_0.2.5_x64-setup.exe · 43.4 MB (8 stažení)

Instalátor (.exe). Aktualizuje se sám v aplikaci.

macOS · Apple Silicon auto-aktualizace

Obraz disku (.dmg) pro Macy s Apple Silicon (M1 a novější). Aktualizuje se sám v aplikaci.

macOS · Intel auto-aktualizace

Obraz disku (.dmg) pro Macy s Intel. Aktualizuje se sám v aplikaci.

Linux · AppImage auto-aktualizace
  • v0.3.2 latest AniRena-Player_0.3.2_amd64.AppImage · 95.1 MB (8 stažení)
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_amd64.AppImage · 138.1 MB (20 stažení)
  • v0.3.0 AniRena-Player_0.3.0_amd64.AppImage · 138.0 MB (4 stažení)
  • v0.2.9 AniRena-Player_0.2.9_amd64.AppImage · 137.7 MB (35 stažení)
  • v0.2.8 AniRena-Player_0.2.8_amd64.AppImage · 137.6 MB (23 stažení)
  • v0.2.7 AniRena-Player_0.2.7_amd64.AppImage · 137.6 MB (20 stažení)
  • v0.2.5 AniRena-Player_0.2.5_amd64.AppImage · 137.6 MB (18 stažení)

Přenositelný jediný soubor, není potřeba instalace. Jediný formát na Linuxu s automatickou aktualizací v aplikaci.

Debian / Ubuntu
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_amd64.deb · 62.5 MB (4 stažení)
  • v0.3.0 AniRena-Player_0.3.0_amd64.deb · 62.4 MB (3 stažení)
  • v0.2.9 AniRena-Player_0.2.9_amd64.deb · 62.1 MB (4 stažení)
  • v0.2.8 AniRena-Player_0.2.8_amd64.deb · 62.0 MB (27 stažení)
  • v0.2.7 AniRena-Player_0.2.7_amd64.deb · 62.0 MB (13 stažení)
  • v0.2.5 AniRena-Player_0.2.5_amd64.deb · 62.0 MB (11 stažení)

Instalace: sudo apt install ./<file>.deb — aktualizace přes apt nebo nové stažení, ne v aplikaci.

Fedora / RHEL
Starší verze
  • v0.3.1 AniRena-Player_0.3.1-1_x86_64.rpm · 62.5 MB (3 stažení)
  • v0.3.0 AniRena-Player_0.3.0-1_x86_64.rpm · 62.4 MB (2 stažení)
  • v0.2.9 AniRena-Player_0.2.9-1_x86_64.rpm · 62.1 MB (23 stažení)
  • v0.2.8 AniRena-Player_0.2.8-1_x86_64.rpm · 62.0 MB (5 stažení)
  • v0.2.7 AniRena-Player_0.2.7-1_x86_64.rpm · 62.0 MB (8 stažení)
  • v0.2.5 AniRena-Player_0.2.5-1_x86_64.rpm · 62.0 MB (7 stažení)

Instalace: sudo dnf install ./<file>.rpm — aktualizace přes dnf nebo nové stažení, ne v aplikaci.

Android · arm64
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_arm64.apk · 110.3 MB (62 stažení)
  • v0.3.0 AniRena-Player_0.3.0_arm64.apk · 110.1 MB (8 stažení)
  • v0.2.9 AniRena-Player_0.2.9_arm64.apk · 109.1 MB (12 stažení)
  • v0.2.8 AniRena-Player_0.2.8_arm64.apk · 109.1 MB (22 stažení)
  • v0.2.7 AniRena-Player_0.2.7_arm64.apk · 109.0 MB (17 stažení)

Sideload na 64bitová zařízení Android ARM (většina moderních telefonů / tabletů). Aktualizace stažením nového APK.

Android · arm7
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_arm7.apk · 97.8 MB (15 stažení)

Nainstalujte ručně na 32bitová zařízení Android ARM (starší telefony / tablety). Aktualizace stažením nového APK.

Android · x86_64
Starší verze
  • v0.3.1 AniRena-Player_0.3.1_x86_64.apk · 114.3 MB (12 stažení)
  • v0.3.0 AniRena-Player_0.3.0_x86_64.apk · 114.1 MB (4 stažení)
  • v0.2.9 AniRena-Player_0.2.9_x86_64.apk · 113.1 MB (4 stažení)
  • v0.2.8 AniRena-Player_0.2.8_x86_64.apk · 113.0 MB (9 stažení)
  • v0.2.7 AniRena-Player_0.2.7_x86_64.apk · 113.0 MB (11 stažení)

Sideload na 64bitová zařízení Android x86 nebo emulátory. Aktualizace stažením nového APK.