Player web pentru site-ul dumneavoastră
Actualizat la 13 oct. 2026Castreon are un player web gata făcut, pe care îl puneți pe site-ul dumneavoastră cu o singură linie de cod. Privitorii urmăresc canalul direct în pagină, fără aplicație, iar player-ul poartă marca dumneavoastră: logo-ul, culoarea, limba aleasă. Numele Castreon nu apare nicăieri.
Ce primesc privitorii:
- calitatea — automată, după conexiune, sau aleasă de mână când canalul are mai multe calități;
- pistele audio și subtitrările, când canalul le are;
- programul TV: ce rulează acum și ce urmează, din EPG-ul canalului;
- ecran complet, imagine în imagine, AirPlay (Safari) și Chromecast (Chrome);
- pornire automată, fără sunet, cu butonul Activează sunetul.
Disponibil din Castreon 1.5.0, în toate planurile, inclusiv în testul gratuit.
Pe scurt
- Deschideți canalul și mergeți la fila Player.
- La Cine poate vedea canalul prin player alegeți protecția (vezi mai jos) și apăsați Salvează.
- La Codul de încorporare copiați Cod <iframe> și puneți-l în pagina site-ului.
- Apăsați Deschide previzualizarea ca să vedeți player-ul exact cum îl văd privitorii.
Player-ul ocupă lățimea paginii și păstrează singur formatul 16:9. Meniul cu calități, audio și subtitrări apare doar când canalul are din ce alege.
Cine poate vedea: trei moduri de protecție
Doar pe site-urile permise (implicit)
Player-ul pornește doar încorporat pe site-urile dumneavoastră. Scrieți domeniile la Site-urile permise, câte unul pe rând:
tv.exemplu.ro— exact această adresă;*.exemplu.ro— toate subdomeniile (exemplu.roînsuși se adaugă pe un rând separat).
Deschis direct sau pus pe alt site, player-ul arată un mesaj și nu redă nimic. Browserul îi spune player-ului ce pagină îl încorporează, iar player-ul le spune browserelor unde are voie să apară. Previzualizarea din panou merge întotdeauna.
Păstrați atributul
referrerpolicydin cod: fără el, unele site-uri își ascund adresa, iar player-ul refuză să pornească.
Potrivit pentru: TV online pe site-ul propriu.
Link semnat
Pentru conținut plătit și abonați. Serverul site-ului dumneavoastră semnează fiecare link cu secretul canalului și îi dă un termen. Fără semnătură validă sau după expirare, player-ul nu pornește.
Semnătura este HMAC-SHA256 pe canal|expirare (expirarea în secunde Unix), scrisă în hexazecimal. Linkul devine:
https://tv.exemplu.ro/play/canalul-meu?exp=<expirare>&sig=<semnătură>
Exemplu în PHP:
<?php
$secret = getenv('CASTREON_PLAYER_SECRET'); // secretul canalului, din panoul Castreon
$slug = 'canalul-meu';
$exp = time() + 6 * 3600; // linkul merge 6 ore
$sig = hash_hmac('sha256', "$slug|$exp", $secret);
$src = "https://tv.exemplu.ro/play/$slug?exp=$exp&sig=$sig";
?>
<iframe src="<?= htmlspecialchars($src) ?>" allow="autoplay; fullscreen; picture-in-picture; encrypted-media"
style="width:100%;aspect-ratio:16/9;border:0"></iframe>
Exemplu în Node.js:
const crypto = require('crypto')
const secret = process.env.CASTREON_PLAYER_SECRET // secretul canalului, din panoul Castreon
const slug = 'canalul-meu'
const exp = Math.floor(Date.now() / 1000) + 6 * 3600 // linkul merge 6 ore
const sig = crypto.createHmac('sha256', secret).update(`${slug}|${exp}`).digest('hex')
const src = `https://tv.exemplu.ro/play/${slug}?exp=${exp}&sig=${sig}`
Fila Player arată aceleași exemple, cu canalul și adresa dumneavoastră deja completate.
- Secretul stă doar pe serverul site-ului, niciodată în pagină. În filă: Arată, Copiază, Secret nou. Un secret nou oprește toate linkurile semnate cu cel vechi.
- Expirarea: cel mult 31 de zile.
- Legat de IP-ul privitorului (opțional): semnați
canal|expirare|ipși adăugați&ip=<adresa>la link. Linkul merge atunci doar de la acea adresă.
Public
Oricine are linkul sau codul poate vedea canalul, pe orice site.
Jetonul de redare: de ce o adresă copiată nu merge
În toate modurile, player-ul nu folosește adresa /live/… a canalului. El primește un jeton de redare valabil câteva ore, pe care îl reînnoiește singur cât rulează. La link semnat, jetonul nu durează niciodată mai mult decât linkul. O adresă copiată din browser nu mai merge după câteva ore; la un link legat de IP-ul privitorului, nu merge deloc de la altă adresă.
Adresele /live/… pentru aplicații și set-top box-uri rămân cum sunt, cu restricțiile de adrese IP. Dacă un canal trebuie văzut doar prin player, închideți /live/… cu Adrese permise: player-ul nu folosește aceste liste, deci merge în continuare.
Marca dumneavoastră
În Setări → Player web:
- Culoarea de accent — butonul de redare, bara de progres, „În direct”, scrisă
#rrggbb; - Logo — PNG cu fundal transparent (recomandat) sau JPEG, cel mult 1 MB și 2000 × 2000 px;
- Colțul logo-ului — dreapta sus (implicit), stânga sus, dreapta jos sau stânga jos.
Marca se aplică player-ului pe toate canalele.
Limba player-ului
Textele player-ului („În direct”, „Urmează”, „Activează sunetul”, mesajele pentru privitori) există în română, engleză, germană, italiană și spaniolă.
- Setări → Player web → Limba player-ului: Automată (limba browserului fiecărui privitor, implicit) sau o limbă fixă.
- Fila Player a unui canal: ca în Setări, sau altă limbă doar pentru acel canal.
- Site-uri în mai multe limbi: adăugați
?lang=de(sauen,ro,it,es) la adresa din codul de încorporare. Adresa are întâietate față de setări.
Pornire automată
Bifați Pornește automat fără sunet deasupra codului: la adresă se adaugă ?autoplay=1. Browserele permit pornirea automată doar fără sunet, așa că privitorul primește butonul Activează sunetul.
Clipuri
Un clip din arhivă, din Bibliotecă sau înregistrat acum se vede în același player, cu bară de derulare, marca și limba de aici. Linkul de vizionare al clipului are aceleași moduri de protecție — vezi Clipuri.
HTTPS
Un site pe HTTPS poate arăta doar un player tot pe HTTPS: browserele blochează un player HTTP într-o pagină HTTPS, iar cadrul rămâne gol. Din Castreon 1.5.1 serverul poate servi singur HTTPS: porniți-l în Setări → HTTPS cu un certificat emis de o autoritate pentru domeniul serverului (cel mai simplu Let's Encrypt automat, direct din Castreon) — browserele nu acceptă certificatul propriu al serverului. Apoi scrieți adresa HTTPS, cu https:// și portul, la Domeniu public din Setări → Instanță; codul de încorporare o folosește singur. Merge în continuare și un proxy invers sau un CDN cu certificat în fața serverului — vezi HTTPS direct în Castreon și surse cu amprentă și Export M3U și domeniul public.
Când nu merge
- Cadrul rămâne gol — site-ul e pe HTTPS, iar player-ul pe HTTP (vezi mai sus).
- „Acest player poate fi urmărit doar pe site-ul televiziunii.” — domeniul lipsește din Site-urile permise. Verificați adresa cu și fără
www, și atributulreferrerpolicydin cod. - „Linkul nu este valid.” — semnătura nu se potrivește: alt secret (după Secret nou), alt canal sau câmpurile în altă ordine (
canal|expirare, apoi|ip). - „Linkul a expirat.” — termenul a trecut. Verificați ceasul serverului site-ului.
- „Canalul nu este disponibil.” — canalul e oprit sau adresa are alt nume de canal.