API reseller v1
Acces și autentificare
- Resellerul își creează contul și solicită activarea. Administratorul verifică și activează contul din panou. Conturile în așteptare nu au acces API.
- După activare, resellerul intră în panoul său și apasă Creează cheie API.
- Cheia se afișează o singură dată. Se trimite la fiecare cerere în headerul
Authorization: Bearer ap_....
În panou poți încărca un logo PNG, JPEG sau WebP (maximum 1 MB și 2048 px), poți seta numele brandului și culoarea accent. Identitatea se aplică în interiorul aplicației, pentru listele asociate contului; numele și iconul din launcher rămân Anume Player. Pentru atribuirea corectă a listelor folosește panoul reseller sau cheia API a propriului cont.
https://anumeplayer.ro/api/reseller/v1/
Folosește exclusiv HTTPS. Nu pune cheia în URL, aplicația TV sau cod JavaScript public. Rotirea invalidează imediat cheia veche; revocarea oprește accesul API. Listele deja asociate nu sunt șterse.
Poți adăuga lista pe MAC înainte de prima pornire a aplicației. Anume Player o preia când televizorul se conectează. Un dispozitiv blocat nu acceptă liste noi. Maximum 10 liste per dispozitiv.
Limite API: 240 de cereri pe minut pentru fiecare cont și 600 pe minut pentru fiecare IP. La răspunsul 429, așteaptă numărul de secunde din headerul Retry-After. Cererile de modificare au maximum 16 KB. Nu retrimite automat o adăugare dacă răspunsul s-a pierdut; verifică mai întâi lista de profiluri.
Citește listele și jurnalul
curl --request GET \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA'
Răspunsul conține reseller, profiles (cel mult 500, cele mai recente) și events (ultimele 40). Fiecare profil are id, device_id, name, type (xtream sau m3u), device_status, selected, created_at și last_seen_at. Timpurile sunt Unix seconds.
{"ok":true,"reseller":{"username":"demo","brand_name":"Brand TV","logo_url":"","accent":"#22D3EE"},"profiles":[{"id":42,"device_id":"A1:B2:C3:D4:E5:F6","name":"Lista TV","type":"m3u","device_status":"active","selected":true,"created_at":1790000000,"last_seen_at":1790000001}],"events":[]}
API-ul de citire nu returnează URL-ul portalului, linkul listei, utilizatorul sau parola. Cheia API are acces doar la listele resellerului care a creat-o.
Adaugă o listă
Trimite POST cu Content-Type: application/json. Sunt acceptate și câmpuri de formular. Câmpuri comune: action="add", device_id (MAC cu două puncte), profile_name (1–100 caractere), mode. select este opțional: true activează imediat lista; implicit, o listă nouă devine activă doar când dispozitivul nu are altă listă selectată.
Xtream: server, utilizator și parolă
curl --request POST \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA' \
--header 'Content-Type: application/json' \
--data '{"action":"add","device_id":"A1:B2:C3:D4:E5:F6","profile_name":"Lista Xtream","mode":"xtream","server":"https://portal.example","username":"UTILIZATOR","password":"PAROLA","select":true}'
Playlist M3U prin URL HTTP sau HTTPS
curl --request POST \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA' \
--header 'Content-Type: application/json' \
--data '{"action":"add","device_id":"A1:B2:C3:D4:E5:F6","profile_name":"Lista M3U","mode":"m3u","m3u_url":"http://liste.example/playlist.m3u"}'
Stream direct HLS/M3U8 sau MPEG-TS
curl --request POST \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA' \
--header 'Content-Type: application/json' \
--data '{"action":"add","device_id":"A1:B2:C3:D4:E5:F6","profile_name":"Canal direct","mode":"ts","url":"https://stream.example/live/canal.ts","select":true}'
Modurile m3u, m3u8, ts, url și direct folosesc același câmp URL: m3u_url, playlist_url sau url. Intern sunt stocate ca tip m3u. Pentru Xtream, server acceptă HTTP sau HTTPS. Fișierele locale nu sunt acceptate. O sursă HTTP transmite datele și credențialele fără criptare; site-ul și API-ul panoului rămân HTTPS. Suportul unui codec depinde de player și de stream.
HTTP/1.1 201 Created
{"ok":true,"profile_id":42,"selected":true}
Selectează sau șterge
Folosește profile_id primit la adăugare ori din GET. Poți selecta și șterge numai listele contului tău. Selectarea schimbă lista activă de pe dispozitiv.
curl --request POST \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA' \
--header 'Content-Type: application/json' \
--data '{"action":"select","profile_id":42}'
curl --request POST \
--url 'https://anumeplayer.ro/api/reseller/v1/' \
--header 'Authorization: Bearer CHEIA_TA' \
--header 'Content-Type: application/json' \
--data '{"action":"delete","profile_id":42}'
La ștergerea listei active, dispozitivul selectează următoarea listă disponibilă sau revine în starea fără listă. Jurnalul păstrează acțiunile added, selected și deleted.
Răspunsuri și limite
| Cod | Semnificație |
|---|---|
| 200 | Citire, selectare sau ștergere reușită. |
| 201 | Listă creată. |
| 400 | Date invalide, MAC neînregistrat sau blocat, listă inaccesibilă ori limita de 10 atinsă. |
| 401 | Cheie lipsă, invalidă, revocată sau cont reseller inactiv. |
| 403 | HTTPS obligatoriu. |
| 405 | Metodă HTTP neacceptată. |
| 413 | Corpul cererii depășește 16 KB. |
| 500 | Eroare internă; verifică jurnalul serverului și încearcă din nou. |
{"ok":false,"message":"Acest dispozitiv este blocat din panou."}
URL-urile și parolele sunt stocate criptat de panou, dar sistemul care trimite cererea și dispozitivul care redă lista le pot cunoaște. Nu folosi API-ul ca înlocuitor pentru protecția streamurilor la serverul video.