1. Pagsisimula

Ang AniRena ay isang torrent index na nakatuon sa anime, manga, audio, at kaugnay na media. Maaari kang mag-browse at mag-download ng mga torrent nang walang account. Kailangan ng account para mag-upload ng mga torrent, mag-post sa mga grupo, o gumamit ng API.

Ang navigation bar sa itaas ay nagbibigay ng access sa mga pangunahing lugar ng site:

  • Tahanan — ang pahina ng listahan at paghahanap ng torrent.
  • Mag-upload — magsumite ng bagong torrent (kailangan ng login).
  • Gabay — ang pahinang ito.
  • Istatistika — istatistika sa buong site.
  • Mga Grupo — direktoryo ng mga grupo ng release.
  • RSS — RSS feed ng mga kamakailang upload.

Ang iyong menu ng account (kanang sulok sa itaas kapag naka-login) ay nagbubukas ng panel ng profile.

2. Pag-browse at Paghahanap

Ang home page ay naglilista ng lahat ng torrent na inayos ayon sa petsa ng upload. Gamitin ang search bar sa itaas para i-filter ang mga resulta.

Pangunahing paghahanap

Mag-type ng anumang salita sa search bar at pindutin ang Enter (o i-click ang icon ng paghahanap).

Mga operator ng paghahanap

Ang mga sumusunod na operator ay maaaring pagsamahin sa regular na query:

OperatorHalimbawaEpekto
user:"name"user:"SubsPlease"Ipakita lamang ang mga torrent na na-upload ng user na iyon.

Ang pag-click sa pangalan ng nag-upload sa listahan ng torrent ay awtomatikong nagpapatakbo ng paghahanap ng user para sa iyo.

Mga kategorya at sub-kategorya

Gamitin ang category selector para limitahan ang mga resulta sa isang kategorya.

  • Anime
  • Manga/Manhwa/Comic
  • Audio
  • Literatura
  • Live Action
  • Mga Larawan
  • Software
  • Hentai
  • Iba pa

Ang bawat kategorya ay may mga sub-kategorya.

Pag-sort at mga filter

Ang mga header ng column sa listahan ng torrent ay maaaring i-click para mag-sort. Tandaan: ang seeders at leechers ay mga live na bilang mula sa Redis at hindi magagamit para sa pag-sort.

Filter ng wika

Gamitin ang language selector para ipakita lamang ang mga torrent na may tukoy na wika.

RSS feed

Ang RSS feed sa /rss ay nagbibigay ng mga pinakabagong upload.

3. Pag-download ng Mga Torrent

I-click ang anumang pangalan ng torrent para buksan ang panel ng detalye. Mula doon maaari kang:

  • Mag-download ng .torrent — nagse-save ng .torrent file nang direkta. Ang direktang URL ay /torrents/{id}.torrent
  • Magnet link — nagbubukas nang direkta sa iyong torrent client sa pamamagitan ng magnet URI protocol. Ang URL ay /torrents/{id}/magnet

Ipinapakita rin ng panel ng detalye ang paglalarawan, listahan ng file, listahan ng tracker, at bilang ng seeder/leecher.

Mga legacy na download link

Ang mga lumang AniRena download link ay sinusuportahan pa rin at awtomatikong nire-redirect. /dl/{old_id}

Inirekomendang mga BitTorrent client

Anumang modernong BitTorrent client ay gumagana. Ang mga client sa ibaba ay inirerekomenda at ganap na sumusuporta sa BitTorrent v2 / hybrid na mga torrent:

qBittorrent Sa pahina ng pag-download, i-click ang Mga Karagdagang Opsyon sa Pag-download at piliin ang build na may label na lt20 (libtorrent 2.0). Ang default na installer ay gumagamit ng libtorrent 1.2 na hindi sumusuporta sa purong v2 na mga torrent.v2 sinusuportahan
PicoTorrent Magaang na Windows client na may katutubong suporta sa BitTorrent v2 mula sa simula.v2 sinusuportahan
BiglyBT Feature-rich na cross-platform client batay sa Azureus/Vuze na may buong suporta sa v2.v2 sinusuportahan

4. Paglikha ng Account

Pagpaparehistro

I-click ang Sign Up sa navigation bar. Pumili ng username, magbigay ng email address, at magtakda ng password.

Pag-activate ng email

Pagkatapos mag-sign up, isang verification email ang ipapadala sa iyong address. I-click ang link sa email para i-activate ang iyong account.

Pagbawi ng password

Kung nakalimutan mo ang iyong password, i-click ang Forgot password sa pahina ng pag-sign-in at ilagay ang iyong email address.

5. Pag-upload ng Mga Torrent

Pumunta sa Upload sa navigation bar. Kailangan mong naka-login na may aktibo, hindi naka-ban na account.

Tab ng upload — magsumite ng kasalukuyang .torrent file

Mag-drag-and-drop o pumili ng .torrent file.

FieldKinakailanganPaglalarawan
Torrent fileOoAng .torrent file na ia-upload.
PangalanHindiI-override ang display name ng torrent.
KategoryaOoAng kategorya ng nilalaman (Anime, Manga, Audio, atbp.).
Sub-kategoryaHindiMas tukoy na uri sa loob ng kategorya.
Mga WikaHindiIsa o higit pang language tag.
GrupoHindiIugnay ang release na ito sa isang grupo na miyembro ka.
PaglalarawanHindiPaglalarawan sa format na Markdown (max 65535 character).
PribadoHindiItatakda ang private flag sa torrent, hindi papaganahin ang DHT/PEX.
Announce URLHindiI-override o magdagdag ng pangunahing tracker announce URL.
Karagdagang mga trackerHindiBinabasa mula sa torrent file. Hindi mababago sa panahon ng pag-upload — gamitin ang tab na Create kung gusto mong i-customize ang tracker list.
KomentoHindiI-override ang field ng komento na naka-embed sa file.
Kinakailangan ng AniRena tracker

Ang iyong torrent ay dapat maglaman ng kahit isang AniRena tracker URL sa announce list nito (anumang tier). Sinusuri ito ng site sa pag-upload at tatanggihan ang mga torrent na hindi naglalaman ng AniRena tracker. Kung ginawa mo ang torrent nang hindi muna idinidagdag ang AniRena tracker, i-upload ito at i-download muli mula sa site — ang na-download na file ay awtomatikong magtataglay ng tamang mga tracker.

Tab ng paglikha — bumuo ng bagong torrent

Ang tab ng Lumikha ay nagbibigay-daan sa iyo na gumawa ng bagong .torrent mula sa simula.

Moderasyon

Awtomatikong sinusuri ang mga upload laban sa listahan ng mga ipinagbabawal na pattern. Tinatanggihan din ang mga duplicate na torrent.

6. Ang Iyong Account

I-click ang iyong username sa kanang sulok sa itaas para buksan ang panel ng profile.

Mga Setting

Baguhin ang UI theme, laki ng font, kulay na scheme, wika ng interface, at mga kagustuhan sa pagpapakita na may kaugnayan sa torrent.

Password

Ilagay ang iyong kasalukuyang password at ang bagong password nang dalawang beses.

Two-Factor Authentication (2FA)

I-enable ang TOTP-based na two-factor authentication gamit ang anumang authenticator app.

  1. I-scan ang QR code (o ilagay ang secret nang manu-mano) sa iyong authenticator app.
  2. Ilagay ang 6-digit na code na ipinapakita sa iyong app para kumpirmahin ang setup.
  3. I-save ang mga recovery code na ipinapakita — ito ay mga one-time code para mabawi ang access.

Para i-disable ang 2FA, ilagay ang iyong kasalukuyang TOTP code at kumpirmahin.

Mga Aktibong Session

Tingnan ang lahat ng kasalukuyang aktibong login session kasama ang browser, OS, IP address, at huling nakita.

API Key

Gumawa ng personal na API key para sa pag-upload ng mga torrent sa pamamagitan ng programa.

Burahin ang Account

Ang paghiling ng pagbubura ng account ay nagsisimula ng 30-araw na grace period.

7. AniRena API

Nagbibigay ang AniRena ng JSON API na nagbibigay-daan sa iyo na mag-upload ng mga torrent sa pamamagitan ng programa gamit ang personal na API key.

Authentication

Gumagamit ang API ng dalawang-hakbang na authentication flow. Una, palitan ang iyong permanenteng API key ng isang panandaliang bearer token, pagkatapos ay ipasa ang token na iyon sa Authorization header ng bawat API request.

Ang iyong API key ay makukuha sa Iyong Account > API Key. Panatilihing lihim — sinumang may key ay maaaring makakuha ng mga bearer token at mag-upload sa iyong ngalan. Kung nakompromiso, bawiin kaagad at gumawa ng bago.

Hakbang 1 — Kumuha ng bearer token
POST/api/v1/auth/token

Magpadala ng POST request sa token endpoint na may iyong API key sa Authorization header. Hindi kailangan ng request body.

Authorization: ApiKey <your-api-key>
Tugon ng token
{
  "token":      "<bearer-token>",
  "token_type": "Bearer",
  "expires_in": 3600
}
Tagal ng buhay ng token

Mananatiling balido ang Bearer tokens hanggang 3600 segundo mula sa pagkakaisyu at maaaring magamit muli sa bawat tawag hanggang mag-expire ang mga ito. Kapag nag-expire ang isang token, gumawa ng bago sa pamamagitan ng POST /api/v1/auth/token. Bawat tugon ay nagba-balik pa rin ng kasalukuyang token sa header na X-New-Token para sa backward compatibility.

X-New-Token: <next-bearer-token>
Pag-login sa iisang request (may 2FA)
POST/api/v1/auth/login

Mag-authenticate gamit ang iyong username o email at password sa iisang request at direktang makatanggap ng bearer token. Kung naka-enable ang 2FA sa iyong account, isama ang kasalukuyang authenticator code sa totp_code (o isang recovery code sa recovery_code). Opsyonal na itakda ang new_api_key sa true upang lumikha rin ng bagong permanenteng API key sa parehong tugon.

Request body
{
  "login":         "username or email",
  "password":      "your-password",
  "totp_code":     "123456",   // kinakailangan kung naka-enable ang 2FA (6 na digit)
  "recovery_code": "",         // alternatibo sa totp_code
  "new_api_key":   false       // itakda sa true upang lumikha rin ng bagong API key
}
Tugon ng token
{
  "ok":         true,
  "token":      "<bearer-token>",
  "token_type": "Bearer",
  "expires_in": 3600,
  "api_key":    "<new-api-key>"   // naroroon lamang kapag true ang new_api_key
}

Gumagana ang bearer token nang eksaktong katulad ng nakukuha mula sa ‎/api/v1/auth/token. Ibinabalik lamang ang field na api_key kapag true ang new_api_key — i-save ito agad, dahil ipinapakita ito nang isang beses lamang at pinapalitan ang anumang dating key.

Halimbawa — mag-login at (opsyonal) kumuha ng bagong API key
# 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"])

Hakbang 2 — Mag-upload ng torrent

POST/api/v1/torrents

Magpadala ng simpleng JSON POST request na may bearer token sa Authorization header.

Request body
FieldUriKinakailanganPaglalarawan
torrentstringOoBase64-encoded na nilalaman ng .torrent file.
categorystringOoCategory slug: anime, manga, audio, literature, live, pictures, software, hentai, other.
namestringHindiI-override ang display name ng torrent.
sub_categorystringHindiSub-category slug (hal. raw, sub-audio).
languagesstring[]HindiArray ng BCP 47 language code (hal. en, ja).
group_idstringHindiUUID ng grupo na miyembro ka.
descriptionstringHindiPaglalarawan sa format na Markdown (max 65535 character).
commentstringHindiI-override ang embedded na field ng komento ng torrent.
is_privatebooleanHindiItakda sa true para paganahin ang private flag.
comments_enabledbooleanHindiPayagan ang mga komento sa torrent na ito. Ang default ay true (pinagana).
anime_idstringHindiUUID ng isang anime entry para i-link sa torrent na ito. Makuha ang UUID sa pamamagitan ng GET /api/v1/anime/search. Nagbabalik ng 400 kung ang UUID ay hindi tumutugma sa anumang kilalang entry.
announcestringHindiI-override o magdagdag ng pangunahing announce URL.
trackersstringHindiListahan ng karagdagang tracker URL na pinaghiwalay ng bagong linya.
testbooleanHindiI-set sa true para sa dry run: ang kahilingan ay ganap na bine-validate ngunit hindi nai-save ang torrent. Gamitin ito para maberipika ang iyong payload bago ang aktwal na pagsusumite.
Dry-run / Test Mode Magdagdag ng "test": true sa anumang kahilingan sa pag-upload para tingnan kung magtatagumpay ito nang hindi talaga idinagdag ang torrent. Nalalapat ang lahat ng panuntunan sa validation — pagpapatunay, paghahanap ng kategorya, pagtuklas ng duplicate, mga ipinagbabawal na pattern, mga kinakailangan ng tracker — kaya ang tugon ay eksaktong sumasalamin sa ibabalik ng isang tunay na pagsusumite. Ang token ay nire-rotate pa rin sa tagumpay.
Dry-run success response — 200 OK
{
  "ok":           true,
  "test":         true,
  "name":         "My Torrent Title",
  "info_hash_v1": "aabbccddeeff...",
  "info_hash_v2": null
}
Mga available na language code
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
Halimbawa ng kahilingan
# 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
Matagumpay na tugon — 200 OK
{
  "ok":           true,
  "id":           "550e8400-e29b-41d4-a716-446655440000",
  "name":         "My Torrent Title",
  "info_hash_v1": "aabbccddeeff...",
  "info_hash_v2": null
}
Mga tugon sa error
HTTP statusKahulugan
400Di-wastong request body o nawawalang kinakailangang field.
401Nawawala, nag-expire, o napalitan na bearer token. Mag-authenticate muli sa pamamagitan ng POST /api/v1/auth/token.
403Account na naka-ban, hindi pinagana, o naka-block ang IP.
409Duplicate na torrent — may parehong info hash na.
422Hindi ma-parse ang torrent file o nabigo ang validation.
429Nalampasan ang rate limit. Subukan muli pagkatapos mag-reset ang window.
503Ang site ay nasa maintenance o read-only mode.

Rate limiting

Ang mga API upload ay napapailalim sa nako-configure na rate limit na hiwalay mula sa web interface.

Panatilihing pribado ang iyong API key. Nagbibigay ito ng ganap na upload access sa ilalim ng iyong account. Bawiin at gumawa ng bago kaagad kung pinaghihinalaan mong nalantad ito.

Paglikha ng mga torrent file gamit ang torrent-builder

Ang torrent-builder ay isang open-source na CLI tool na itinayo sa ibabaw ng libtorrent-rasterbar na nagpapahintulot sa iyo na lumikha ng mga .torrent file na BitTorrent v1, v2, at hybrid mula sa command line. Perpekto itong kasama ng AniRena upload API — lumikha ng file nang lokal, pagkatapos ay i-POST ito nang direkta sa tracker. cantalupo555/torrent-builder.

Pagbuo mula sa source code

Nangangailangan ng CMake >= 3.28.3 at libtorrent-rasterbar >= 2.0.11. I-clone ang repository at buuin gamit ang 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 .
Mga pangunahing flag
FieldPaglalarawan
--pathLandas sa file o direktoryo na ipapadala (kinakailangan).
--outputPangalan ng output .torrent file (kinakailangan).
--versionFormat ng BitTorrent — 1 = v1, 2 = v2, 3 = hybrid (default: 3).
--trackerMagdagdag ng tracker announce URL. Ulitin ang flag para magdagdag ng maraming tracker.
--commentMag-embed ng metadata comment string sa torrent.
--privateItakda ang private flag upang limitahan ang distribusyon sa mga nakalistan na tracker lamang.
--piece-sizeLaki ng piraso sa KB (16-32768). Iwanang hindi nakatakda para sa awtomatikong pagpili.
-iIlunsad ang hakbang-hakbang na interactive na mode ng pagsasaayos.
Kumpletong workflow: build -> upload

Ang mga halimbawa sa ibaba ay nagtatayo ng hybrid torrent gamit ang torrent-builder, pagkatapos ay nagpapatunay sa AniRena API at ina-upload ang resulta sa isang script.

# 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"])

Paghahanap ng metadata ng torrent

POST/api/v1/torrents/search

Magpadala ng simpleng JSON POST request para makuha ang mga torrent listing na may parehong mga opsyon sa paghahanap at pag-filter na makukuha sa website. Ang .torrent file mismo ay hindi ibinabalik — gamitin ang normal na download route para doon.

# 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"])
Mga parameter ng paghahanap
FieldUriKinakailanganPaglalarawan
qstringHindiFree-text na paghahanap. Sumusuporta sa mga prefix na group:slug, group:"Name", user:name.
categorystringHindiCategory slug (hal. "anime").
sub_categorystringHindiSub-category slug (hal. "raw").
languagesstring[]HindiArray ng BCP 47 language code (hal. en, ja).
sortstringHindiSort field: petsa (default), laki, seeders, leechers, natapos, pamagat.
orderstringHindiSort direction: desc (default) o asc.
pageintegerHindiNumero ng pahina, nagsisimula sa 1.
per_pageintegerHindiMga resulta bawat pahina, 1–250.
hide_adultbooleanHindiIbukod ang mga torrent ng kategoryang pang-adulto.
show_deadbooleanHindiKapag false (default), ang mga torrent na mas matanda kaysa sa grace period para sa patay na torrent at walang aktibong seeder ay hindi isinasama. Itakda sa true upang isama ang mga ito.
Tugon
{
  "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 — Bilang ng hindi tinanggal na mga komento sa torrent na ito.

Rate limiting ng paghahanap

Ang mga kahilingan sa paghahanap ay napapailalim sa hiwalay na nako-configure na rate limit (default na 60 kahilingan bawat 60 segundo bawat API key).

Kunin ang mga detalye ng torrent

GET/api/v1/torrent/{id}

Kunin ang kumpletong metadata para sa isang torrent — kasama ang mga field na hindi ibinabalik ng search endpoint, tulad ng markdown na paglalarawan, ang naka-embed na .torrent comment, ang listahan ng file na may laki ng bawat file, at ang buong tracker tier layout. Kapag available, ang live na bilang ng seeders at leechers ay binabasa mula sa tracker.

Tugon
{
  "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 — Mga live na bilang mula sa in-house tracker; parehong nagre-report ng 0 kapag ang tracker store ay walang entry para sa info hash na ito o hindi maabot.

ext_seeders, ext_leechers — Pinakamataas na bilang ng seeders at leechers na inulat ng anumang isang panlabas na tracker na na-scrape para sa torrent na ito. Ang mga tracker na nagsusubaybay ng parehong swarm ay nagsasanib, kaya ginagamit ang pinakamataas sa halip na ang kabuuan; pareho silang nag-uulat ng 0 kapag walang tracker na may scrape data para sa info hash na ito.

Mga tugon sa error
HTTP statusKahulugan
400Ang torrent id ay dapat na isang 36-character na dashed UUID o isang 32-character na bare hex string.
401Nawawala, nag-expire, o napalitan na bearer token. Mag-authenticate muli sa pamamagitan ng POST /api/v1/auth/token.
404Hindi natagpuan ang torrent.
429Nalampasan ang rate limit. Subukan muli pagkatapos mag-reset ang window.
503Ang site ay nasa maintenance o read-only mode.

Pagkuha ng mga komento ng torrent

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

Kunin ang mga pahina-pahina na komento para sa isang torrent. Ang bilang ng mga komento bawat pahina ay kinokontrol ng setting na COMMENT_PER_PAGE sa .env file ng server (default 20). Ang mga torrent lamang na may pinaganang mga komento ang magbabalik ng mga resulta — lahat ng iba pa ay nagbabalik ng 403.

Mga parameter ng query
FieldUriKinakailanganPaglalarawan
pageintegerHindiNumero ng pahina, nagsisimula sa 1 (default 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"])
Tugon
{
  "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
    }
  ]
}

Ang field na body ay isang walang laman na string kapag ang may-akda ng komento ay na-ban o ang komento ay natanggal. Ang flag na author_banned ang nagpapahiwatig kung alin ang kaso.

Mga tugon sa error
HTTP statusKahulugan
401Nawawala, nag-expire, o napalitan na bearer token. Mag-authenticate muli sa pamamagitan ng POST /api/v1/auth/token.
403Ang mga komento ay hindi pinagana para sa torrent na ito.
404Hindi nahanap ang torrent.
503Ang site ay nasa maintenance o read-only mode.

Paghahanap ng mga anime entry

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

Maghanap ng mga anime entry ayon sa pamagat upang makuha ang kanilang UUID. Ang UUID ay maaaring ipasa bilang anime_id sa upload body upang i-link ang isang torrent sa isang anime entry sa oras ng pag-upload, o gamitin kasama ang PUT /api/torrents/{id}/anime pagkatapos mag-upload. Hindi kinakailangan ang pagpapatunay. Napapailalim sa parehong rate limit ng torrent search (default na 60 kahilingan bawat 60 segundo bawat 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"])
Mga query parameter
FieldUriKinakailanganPaglalarawan
qstringOoString na paghahanap ng pamagat (kinakailangan). Itinugma sa pamagat at mga kasingkahulugan.
pageintegerHindiNumero ng pahina, nagsisimula sa 1.
per_pageintegerHindiMga resulta bawat pahina, 1–50.
Tugon
{
  "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
    }
  ]
}

Paglista at pagkuha ng mga grupo

GET/api/v1/groups

Nagbabalik ng paginadong listahan ng mga pampublikong grupo (pinagana at hindi naka-lock). Nangangailangan ng Bearer token authentication.

GET/api/v1/groups/{id_or_slug}

Nagbabalik ng isang pampublikong grupo ayon sa numeric ID o slug. Nagbabalik ng 404 kung ang grupo ay hindi pinagana o naka-lock.

Mga parameter ng query (listahan lamang)
FieldUriKinakailanganPaglalarawan
qstringHindiI-filter ayon sa pangalan ng grupo (opsyonal, partial match).
pageintegerHindiNumero ng pahina (default 1).
per_pageintegerHindiMga resulta bawat pahina, 1–100 (default 20).
sortstringHindiKolum ng pag-uuri: name | slug | members | torrents | created (default name).
orderstringHindiDireksyon ng pag-uuri: asc o desc (default asc).
Tugon (listahan)
{
  "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"
    }
  ]
}
Tugon (iisa)
{
  "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"
}
Mga tugon sa error
HTTP statusKahulugan
401Nawawala, nag-expire, o napalitan na bearer token. Mag-authenticate muli sa pamamagitan ng POST /api/v1/auth/token.
404Hindi nahanap ang grupo o hindi ito naa-access ng publiko.
429Nalampasan ang rate limit. Subukan muli pagkatapos mag-reset ang window.
503Ang site ay nasa maintenance o read-only mode.

8. Mga Donasyon

Kung nais mong suportahan ang AniRena at tulungan ang pagsaklaw ng gastos sa pagho-host ng aming mga server at serbisyo, malugod naming tinatanggap ang iyong donasyon sa isa sa mga sumusunod na cryptocurrency wallet:

Bitcoinbc1qy2h3ddq6ak5damvnf4r5vu3ydehhxrcq8gllwn
Ethereum0xCbaFe03832F95F86AF2536d52710e78C63b62Cd3
Solana3ucetj2XDGHQg9PVRPMxerNi7c6kX7GJkjQNg9yjwGeg
LitecoinLbpt61yX3RjGtB1Ef8vgVz6Hr6baQsTjVk

Ang anumang donasyon, malaki man o maliit, ay lubos na pinahahalagahan at direktang napupunta sa pagpapanatili ng AniRena. Salamat sa iyong suporta!

9. Software

Ang AniRena Player ay isang libreng desktop app na nagpapahintulot sa iyo na mag-stream ng video direkta mula sa mga torrent na naka-index sa site na ito — hindi mo na kailangang hintayin matapos ang buong pag-download. I-paste lang ang isang magnet link o buksan ang isang .torrent file, at magsisimula ang playback sa sandaling magkaroon ng sapat na data.

Pareho ng builds ay ganap na standalone — lahat ng dependencies ay nasa loob na ng executable. Walang installer, walang runtime na isasaayos — i-download lang at patakbuhin.

Windows auto-update
  • v0.3.2 latest AniRena-Player_0.3.2_x64-setup.exe · 43.4 MB (33 mga download)
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_x64-setup.exe · 43.9 MB (64 mga download)
  • v0.3.0 AniRena-Player_0.3.0_x64-setup.exe · 43.7 MB (8 mga download)
  • v0.2.9 AniRena-Player_0.2.9_x64-setup.exe · 43.5 MB (6 mga download)
  • v0.2.8 AniRena-Player_0.2.8_x64-setup.exe · 43.5 MB (17 mga download)
  • v0.2.7 AniRena-Player_0.2.7_x64-setup.exe · 43.5 MB (19 mga download)
  • v0.2.6 AniRena-Player_0.2.6_x64-setup.exe · 43.4 MB (3 mga download)
  • v0.2.5 AniRena-Player_0.2.5_x64-setup.exe · 43.4 MB (8 mga download)

Installer (.exe). Nag-aapdeyt sa sarili sa loob ng app.

macOS · Apple Silicon auto-update
  • v0.3.2 latest AniRena-Player_0.3.2_aarch64.dmg · 45.7 MB (2 mga download)

Disk image (.dmg) para sa Apple Silicon na Mac (M1 at mas bago). Nag-aapdeyt sa sarili sa loob ng app.

macOS · Intel auto-update

Disk image (.dmg) para sa Intel na Mac. Nag-aapdeyt sa sarili sa loob ng app.

Linux · AppImage auto-update
  • v0.3.2 latest AniRena-Player_0.3.2_amd64.AppImage · 95.1 MB (8 mga download)
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_amd64.AppImage · 138.1 MB (19 mga download)
  • v0.3.0 AniRena-Player_0.3.0_amd64.AppImage · 138.0 MB (4 mga download)
  • v0.2.9 AniRena-Player_0.2.9_amd64.AppImage · 137.7 MB (35 mga download)
  • v0.2.8 AniRena-Player_0.2.8_amd64.AppImage · 137.6 MB (23 mga download)
  • v0.2.7 AniRena-Player_0.2.7_amd64.AppImage · 137.6 MB (20 mga download)
  • v0.2.5 AniRena-Player_0.2.5_amd64.AppImage · 137.6 MB (18 mga download)

Portable na isang file, hindi nangangailangan ng pag-install. Ang tanging format sa Linux na may in-app auto-update.

Debian / Ubuntu
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_amd64.deb · 62.5 MB (4 mga download)
  • v0.3.0 AniRena-Player_0.3.0_amd64.deb · 62.4 MB (3 mga download)
  • v0.2.9 AniRena-Player_0.2.9_amd64.deb · 62.1 MB (4 mga download)
  • v0.2.8 AniRena-Player_0.2.8_amd64.deb · 62.0 MB (26 mga download)
  • v0.2.7 AniRena-Player_0.2.7_amd64.deb · 62.0 MB (12 mga download)
  • v0.2.5 AniRena-Player_0.2.5_amd64.deb · 62.0 MB (11 mga download)

Pag-install: sudo apt install ./<file>.deb — nag-aapdeyt sa pamamagitan ng apt o sa pamamagitan ng bagong download, hindi sa loob ng app.

Fedora / RHEL
  • v0.3.2 latest AniRena-Player_0.3.2-1_x86_64.rpm · 14.2 MB (1 mga download)
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1-1_x86_64.rpm · 62.5 MB (3 mga download)
  • v0.3.0 AniRena-Player_0.3.0-1_x86_64.rpm · 62.4 MB (2 mga download)
  • v0.2.9 AniRena-Player_0.2.9-1_x86_64.rpm · 62.1 MB (23 mga download)
  • v0.2.8 AniRena-Player_0.2.8-1_x86_64.rpm · 62.0 MB (5 mga download)
  • v0.2.7 AniRena-Player_0.2.7-1_x86_64.rpm · 62.0 MB (8 mga download)
  • v0.2.5 AniRena-Player_0.2.5-1_x86_64.rpm · 62.0 MB (7 mga download)

Pag-install: sudo dnf install ./<file>.rpm — nag-aapdeyt sa pamamagitan ng dnf o sa pamamagitan ng bagong download, hindi sa loob ng app.

Android · arm64
  • v0.3.2 latest AniRena-Player_0.3.2_arm64.apk · 110.3 MB (71 mga download)
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_arm64.apk · 110.3 MB (62 mga download)
  • v0.3.0 AniRena-Player_0.3.0_arm64.apk · 110.1 MB (8 mga download)
  • v0.2.9 AniRena-Player_0.2.9_arm64.apk · 109.1 MB (12 mga download)
  • v0.2.8 AniRena-Player_0.2.8_arm64.apk · 109.1 MB (22 mga download)
  • v0.2.7 AniRena-Player_0.2.7_arm64.apk · 109.0 MB (17 mga download)

I-sideload sa 64-bit ARM Android device (karamihan sa mga modernong telepono / tablet). Nag-aapdeyt sa pamamagitan ng pag-download ng bagong APK.

Android · arm7
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_arm7.apk · 97.8 MB (15 mga download)

I-sideload sa 32-bit na ARM Android na mga device (mga lumang telepono / tablet). Nag-a-update sa pamamagitan ng pag-download ng bagong APK.

Android · x86_64
  • v0.3.2 latest AniRena-Player_0.3.2_x86_64.apk · 114.3 MB (7 mga download)
Mga lumang bersyon
  • v0.3.1 AniRena-Player_0.3.1_x86_64.apk · 114.3 MB (12 mga download)
  • v0.3.0 AniRena-Player_0.3.0_x86_64.apk · 114.1 MB (4 mga download)
  • v0.2.9 AniRena-Player_0.2.9_x86_64.apk · 113.1 MB (4 mga download)
  • v0.2.8 AniRena-Player_0.2.8_x86_64.apk · 113.0 MB (9 mga download)
  • v0.2.7 AniRena-Player_0.2.7_x86_64.apk · 113.0 MB (11 mga download)

I-sideload sa 64-bit x86 Android device o emulator. Nag-aapdeyt sa pamamagitan ng pag-download ng bagong APK.