Sari la conținut
Castreon
Livrare

Linkuri semnate și mai multe CDN-uri

Actualizat la 18 oct. 2026

Castreon poate da privitorilor linkuri de vizionare care expiră și poate livra același canal prin mai multe CDN-uri deodată: playerul trece singur pe alt CDN dacă unul cade. Tot de aici se golește cache-ul CDN-urilor — de mână, prin API sau automat.

Disponibil din Castreon 1.7.0, în ediția Enterprise. Setările sunt în Setări → CDN și linkuri semnate.

Profilele

Fiecare profil spune cine verifică linkul:

  • Castreon (serverul) — privitorii vin direct la server, iar Castreon verifică semnătura. Adresa goală = domeniul public din Setări → Instanță.
  • Bunny, Gcore, CDN77 — privitorii vin prin CDN, iar CDN-ul verifică semnătura, în formatul lui oficial. Completați adresa CDN-ului (doar domeniul), calea canalului (implicit /live/{slug}/, CDN-ul trage din Castreon) și cheia de semnare dată de CDN. Lângă fiecare fel, panoul arată ce trebuie pornit la CDN.

Opțiuni pe profil: durata linkului (5 minute – 7 zile) și Leagă linkul de IP-ul privitorului (mai sigur, dar un telefon care trece de pe Wi-Fi pe date mobile pierde redarea până primește un link nou). Cheile nu se mai afișează după salvare; câmpul gol păstrează cheia de acum.

Testează cere playlistul unui canal pornit prin profil, o dată cu un link valid și o dată cu unul expirat: linkul valid trebuie să primească playlistul, cel expirat să fie refuzat. Dacă CDN-ul servește și linkul expirat, panoul vă spune că verificarea nu e pornită la CDN.

Cât e verificat: profilul Castreon e testat cap-coadă. Pentru Bunny, Gcore și CDN77, semnătura e identică cu cea a codului oficial al fiecărui furnizor (verificat în teste), dar n-a fost încercată pe un cont real — folosiți Testează înainte de producție. Panoul arată asta lângă fiecare profil.

Linkul pentru un privitor

  • Pe pagina canalului, Link semnat: alegeți profilul (și, opțional, IP-ul privitorului) → Creează link.
  • Din aplicațiile dumneavoastră: POST /api/v1/channels/{id}/playback-url, câte un link pe privitor (cheie API cu zona playback:sign).

Cere link semnat pe /live oprește linkurile nesemnate către server. Cererile fără semnătură trec atunci doar de pe adresele din Acces la fluxuri — puneți acolo întâi CDN-urile și load-balancerele care trag de la server. HTTP-TS, LL-HLS și WebRTC nu au încă link semnat.

Ceasul serverului trebuie să fie corect (NTP): expirarea linkului se calculează după el.

Mai multe CDN-uri: Content Steering

Cu cel puțin două profile pornite, Link semnat are opțiunea Toate (Content Steering): un singur link pentru toate CDN-urile, după standardul HLS Content Steering. Castreon verifică fiecare CDN la 30 de secunde, pe un canal care rulează: răspunde, primește playlistul, nu rămâne în urmă cu segmentele. După 3 verificări nereușite, CDN-ul e trecut picat și pus la coada listei; după 3 reușite revine. Playerele care înțeleg Content Steering trec singure pe CDN-ul următor, fără să oprească redarea (încercat cu hls.js 1.6); celelalte playere folosesc primul CDN din listă.

  • Ordinea profilelor (săgețile) e prioritatea. Linkul cdn: "auto" din API alege primul CDN care merge.
  • Starea fiecărui CDN, cu procentul de reușite în 24 de ore, apare lângă profil. La Notificări, familia CDN-uri anunță un CDN picat.
  • /metrics are castreon_cdn_up și castreon_cdn_latency_seconds.

Verificarea se face de pe server, nu din rețelele privitorilor: un CDN care merge de la server poate avea totuși o problemă într-o anumită țară.

Golirea cache-ului

Pentru golire, profilul are nevoie de ID-ul zonei / resursei și de o cheie API a CDN-ului (opțional).

  • Golește tot la profil — tot cache-ul zonei, cu confirmare.
  • Golește cache-ul CDN pe pagina canalului (administratori) — doar directorul canalului.
  • API: POST /api/v1/cdn/purge cu channel, paths (cel mult 10) sau all. Fiecare golire intră în Audit, fără chei.
  • Webhook propriu de golire — pentru orice alt CDN sau un script: Castreon trimite un POST JSON (event: "cdn.purge", căile, canalul, motivul) semnat cu X-Castreon-Signature: sha256=HMAC-SHA256(secret, corp).

Golire automată (pornită implicit): la fiecare pornire a unui canal și la ștergerea lui, Castreon golește directorul canalului pe fiecare CDN cu golire configurată și anunță webhook-ul. Motivul: la fiecare pornire, segmentele noi au aceleași nume ca cele de dinainte, iar un CDN care le mai ține ar da privitorilor bucăți vechi. Cel mult o golire pe canal la 30 de secunde; dacă CDN-ul cere o pauză (limita de cereri), Castreon așteaptă și reîncearcă. Ultima golire automată și rezultatul ei apar în setări.

Golirea folosește API-urile oficiale ale fiecărui CDN (după documentația lor); nu a fost încercată pe conturi reale.

Probleme frecvente

  • Testul spune că CDN-ul servește linkul expirat: verificarea semnăturii nu e pornită la CDN (vezi textul de lângă felul profilului).
  • Segmentele primesc 403, playlistul nu: la Gcore, pornirea de transmitere a parametrilor din playlist către segmente lipsește.
  • CDN-ul e „picat” cu „playlist vechi”: CDN-ul ține playlistul în cache prea mult — playlisturile trebuie să urmeze antetul serverului (no-cache).
  • Golirea spune că cheia API e greșită: cheia nu e bună sau nu are drept de golire. Zona / resursa nu există: ID-ul zonei / resursei e greșit.
  • Limita de goliri a fost atinsă: CDN-ul primește doar câteva goliri pe minut — panoul spune peste câte secunde se poate încerca din nou.

Confidențialitate

Cookie-uri și stocare locală

Cookie-urile strict necesare sunt mereu active. Statisticile și marketingul folosesc servicii Google și pornesc doar dacă le accepți — până atunci nu se trimite nimic la Google. Îți poți retrage acordul oricând, aici.

Strict necesare

Fără ele nu funcționează autentificarea, formularele și limba aleasă. Nu necesită consimțământ (§ 25 alin. 2 pct. 2 TDDDG).

Mereu active
Nume Scop Durată Tip
castreon-session Păstrează sesiunea: autentificarea și limba aleasă 2 ore, prelungit la fiecare accesare Cookie
XSRF-TOKEN Protejează formularele împotriva cererilor falsificate 2 ore, prelungit la fiecare accesare Cookie
remember_web_… Doar dacă bifezi „Ține-mă minte” la autentificare Până la deconectare, max. 400 de zile Cookie
__cf_bm Cloudflare: deosebește vizitatorii de roboți, doar când traficul e verificat 30 de minute Cookie · Cloudflare
castreon:consent Ține minte alegerea ta privind cookie-urile 12 luni Memorie locală
theme Aspectul contului de client: luminos, întunecat sau sistem Până o schimbi Memorie locală

Statistici

Google Analytics 4 (Google Ireland Ltd.): ce pagini sunt vizitate, de unde vin vizitele și de pe ce tip de dispozitiv — cu identificatori pseudonimi, fără salvarea adresei IP. Ne ajută să îmbunătățim site-ul.

Nume Scop Durată Tip
_ga Google Analytics: recunoaște vizitatorul (identificator pseudonim) 13 luni Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: păstrează starea vizitei 13 luni Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): măsoară dacă vizitele venite din reclame Google ajung la test sau la un plan și permite afișarea reclamelor Castreon pe alte site-uri (remarketing).

Nume Scop Durată Tip
_gcl_au, _gcl_aw Google Ads: leagă vizita de clicul pe reclamă (conversii) 90 de zile Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing și măsurarea reclamelor, pe domeniile Google (doubleclick.net) Până la 13 luni Cookie · Google (terț)