Plan Guard stabilește limite de redare pe utilizator sau pe plan pe serverul tău Jellyfin, le aplică înainte și în timp ce se vede și detectează conturile împrumutate altor persoane, de exemplu un cont plătit folosit în mai multe case în același timp. Jellyfin nu are o limită proprie pentru redările simultane; Plan Guard adaugă una.
Ce face
- Profiluri de limite: redări simultane, calitate acasă și din afară (bitrate), rezoluție maximă, dacă se permite conversia video (transcodarea) și conversia surselor 4K și câte dispozitive poate folosi un cont în 30 de zile. Fiecare utilizator primește un profil sau profilul implicit pentru toți ceilalți. Administratorii nu sunt limitați niciodată.
- Înainte de pornirea redării: peste limita de redări, o redare nouă e refuzată, iar calitatea cerută e plafonată la bitrate-ul profilului pentru acasă sau din afară. Bitrate-ul din afară și setarea pentru conversia video se scriu și în politica Jellyfin a fiecărui utilizator.
- În timpul redării: o redare care încalcă profilul primește un mesaj, apoi o comandă de oprire, apoi transcodarea ei e închisă pe server și, la final, dispozitivul e deconectat. Opțional, dispozitivul e și blocat pentru acel utilizator.
- Greu de ocolit (de la versiunea 0.1.2): limita de redări numără cererile reale de redare pe conectare și titlu, inclusiv cererile directe de fișier, descărcările și HLS, deci o a doua conectare cu același dispozitiv sau un player care nu raportează redarea nu mai ocolesc limita. Plafonul de calitate se aplică și cererilor directe. Poți trata toți clienții ca fiind din afara rețelei, iar un client fără adresă e considerat din afara rețelei.
- Detectarea conturilor împrumutate: un scor de încredere pe cont pentru ultimele 30 de zile, din redări simultane din rețele diferite, „călătoria imposibilă”, prea multe rețele într-o zi, prea multe dispozitive și dispozitive noi. Implicit doar notifică; poți alege și un mesaj către utilizator, reconectarea obligatorie sau blocarea celui mai nou dispozitiv.
- Merge cu Cashier: abonații primesc profilul legat de planul lor plătit, iar Plan Guard preia oprirea redărilor.
- Pagina de administrare: redările active cu buton Oprește (cu mesaj opțional), profilurile, utilizatorii, conturile împrumutate și jurnalul fiecărei acțiuni. Alertele pentru conturile împrumutate ajung și în jurnalul de activitate Jellyfin.
Compatibilitate cu clienții
Limita de redări și bitrate-ul sunt scrise și în setările proprii ale utilizatorilor Jellyfin, deci se aplică oricărui client. Nu orice player ascultă de o comandă de oprire, așa că Plan Guard folosește ce suportă fiecare:
- Jellyfin Web (testat cap-coadă): redarea în plus e refuzată înainte de pornire, oprirea e respectată, iar o sursă de 10 Mbit/s e transcodată la 1,6 Mbit/s sub un profil de 2 Mbit/s.
- Playerele fără control la distanță, ca Infuse, Kodi și DLNA, ignoră comenzile de oprire: pentru ele, oprirea înseamnă deconectarea dispozitivului (utilizatorul trebuie să se conecteze din nou pe el). Poți opri asta din setări. Așa funcționează aceste playere; nu a fost încă testat pe aplicațiile reale.
- Dacă un player continuă redarea după comanda de oprire, Plan Guard închide transcodarea lui pe server, apoi deconectează dispozitivul.
- Limita de redări se verifică la pornire și pentru playerele care sar peste cererea de informații de redare a Jellyfin și cer fluxul direct.
Aplicațiile native (Android, Android TV, Swiftfin, Findroid, Kodi/JellyCon, Infuse, Streamyfin) nu au fost încă testate; lista felului în care reacționează fiecare va fi adăugată după testare.
Ce trimite și unde
Nimic despre utilizatorii tăi nu pleacă de pe server, iar locațiile se caută local. Plan Guard descarcă bazele gratuite DB-IP Lite City și ASN de la download.db-ip.com și din nou la pornire, când sunt mai vechi de 35 de zile; o face doar cât timp detectarea conturilor împrumutate e pornită (implicit pornită) și când nu poate refolosi o bază de localizare pe care o păstrează deja Jurnal de acces sau Notificări de securitate. În afară de asta, la medialab.works ajunge doar verificarea licenței. Pe serverul tău, Plan Guard păstrează accesele pe sesiune (utilizator, dispozitiv, IP, locație aproximativă) 31 de zile și un jurnal al acțiunilor lui.
Detaliile complete pentru fiecare produs, inclusiv ce rămâne pe serverul tău: Licențe, confidențialitate și compatibilitate.
IP Geolocation by DB-IP. Bazele DB-IP Lite sunt licențiate sub CC BY 4.0.
Cerințe
- Deocamdată medialab Server (varianta MediaLab a Jellyfin 12.2). Versiunea actuală nu se încarcă în imaginea Docker oficială Jellyfin 12.2 (API-ul serverului nu mai răspunde); urmează o versiune verificată pe imaginea Docker oficială și pe pachetul Debian, iar până atunci plugin-ul rămâne „în curând”.
- Opțional: Cashier, pentru profiluri de limite pe planurile plătite.
Limite
- Rezoluția și conversia video se verifică după pornirea redării (mesaj, apoi oprire); înainte de pornire se aplică doar limita de redări și bitrate-ul.
- Rețelele mobile, VPN-urile și călătoriile pot părea împrumut de cont, așa că acțiunea implicită pentru conturile împrumutate este doar o notificare.
Licență
Plugin-ul este cu sursă deschisă (GPL-3.0). Versiunile gata de instalat sunt publice, ca și codul sursă. Ce cumperi este abonamentul: licența de folosire a plugin-ului pe un server Jellyfin, actualizările incluse în planul tău și suportul: toate actualizările cât timp abonamentul e activ, prin depozitul tău privat de plugin-uri, și ajutor când ceva nu merge. Plugin-ul verifică cheia o dată pe zi; fără un abonament valabil se oprește până la reînnoire (nu se șterge nimic). Lunar, anual sau lifetime (lifetime include un an de actualizări), sau inclus în Pachetul Jellyfin. 30 de zile de probă gratuită.
Codul sursă. Pentru fiecare versiune, sursa completă corespunzătoare este publică, lângă versiunea gata de instalat, în istoricul versiunilor, și se găsește și în cont (Cont → Licențe, Cod sursă); fiecare arhivă conține textul complet al GPL-3.0 (LICENSE). Dacă ai nevoie de sursa unei versiuni pe care nu o mai poți descărca, ne scrii și ți-o trimitem. Vezi secțiunea 10 din EULA.
Cod propriu, scris de MediaLab Works; nu conține cod de la terți. Cititorul pentru fișierele bazei de localizare este o implementare proprie, scrisă după specificația publică a formatului MaxMind DB. Datele de localizare vin de la DB-IP și sunt descărcate de serverul tău, nu sunt incluse în plugin.
