Share Links pentru Emby

Pentru Emby: linkuri care expiră către un film, episod, sezon sau serial, pentru cine nu are cont, în browser sau pe TV, fără cont pe server.

Partajarea unui film cu cineva fără cont: cât timp merge linkul, câți se pot uita deodată, de câte ori se deschide, PIN opțional și o notă1 din 7

Uneori vrei să arăți un film sau un serial cuiva care nu are cont pe serverul tău. Share Links creează un link care expiră, pe care oaspetele îl deschide în browser, pe telefon sau pe TV, fără să primească vreodată un cont sau un token pentru serverul tău Emby.

Ce face

  • Linkuri cu limite: data expirării, numărul maxim de deschideri, numărul maxim de privitori simultani și un PIN opțional.
  • Se deschide oriunde: în orice browser, pe telefon sau pe TV, cu o adresă scurtă și un cod de 8 caractere, sau cu un cod QR. Se redă într-un player propriu, cu alegerea pistei audio și a subtitrărilor.
  • Niciun cont pentru oaspete: oaspetele nu primește niciun cont și niciun token. Totul trece printr-un proxy limitat la titlurile linkului, iar revocarea linkului oprește redarea imediat.
  • Securitate: tokenurile, codurile și PIN-urile sunt păstrate doar ca hash; încercările greșite repetate sunt blocate pe adresă IP și pe link; bitrate-ul are un plafon; nu se poate descărca nimic.
  • Partajare și pentru utilizatorii obișnuiți (opțional), cu o cotă pe 30 de zile (una implicită sau una pe plan Cashier) și pagina Linkurile mele.
  • Trimitere: copiezi linkul sau îl trimiți prin WhatsApp, Telegram sau e-mail; fiecare link are jurnalul lui.

De ce nu un cont de oaspete

Pe Emby 4.10, restricțiile de bibliotecă nu se aplică atunci când un element e cerut direct după id, așa că un cont obișnuit „de oaspete” poate ajunge la toată biblioteca. Share Links evită asta prin felul în care e construit: oaspetele nu are cont, iar proxy-ul servește doar titlurile linkului.

Cerințe

  • Emby Server 4.10.1 sau mai nou.
  • Pentru oaspeții din afara rețelei tale: o adresă a serverului la care pot ajunge.
  • Opțional: Cashier, pentru cote de partajare pe plan.

Ce trimite și unde

  • Fără servicii externe pentru oaspeți: pagina publică încarcă doar fișierele plugin-ului (hls.js din clientul web local al serverului / inclus în plugin), fără CDN, fonturi sau imagini externe; QR generat pe server. Antete stricte: CSP default-src 'self', fără referrer, noindex, fără încadrare.
  • Proxy-ul pentru oaspeți vorbește doar cu serverul tău local și trimite IP-ul oaspetelui în X-Forwarded-For (apare în jurnalele/sesiunile serverului).
  • Ce vede oaspetele: titlul linkului, expirarea, numele celui care a partajat și, pentru titlurile din link: nume, serial/sezon/episod, an, rezumat, durată, imagini. Doar redare (HLS, subtitrări, imagini) pentru acele titluri; fără descărcare; bitrate plafonat (implicit 8 Mbit/s). Oaspetele nu primește niciodată un token al serverului; se creează un utilizator ascuns temporar, fără biblioteci/descărcare/Live TV, cu parolă aleatoare nesalvată, șters la revocare/expirare.
  • Butoanele WhatsApp/Telegram din pagina de admin sunt simple linkuri (trimit linkul și titlul doar dacă le apeși).
  • Butonul „Partajează” și meniul „Linkurile mele” cer modificarea opțională a dashboard-ui/index.html (oprită implicit). Dacă ai pornit-o și nu mai poate fi refăcută după o actualizare Emby, jurnalul plugin-ului pleacă la medialab.works (o dată pe versiune Emby) doar cu trimiterea automată a jurnalului pornită, ca la toate plugin-urile.
  • Plus clientul de licență, același în toate plugin-urile: vezi Licențierea și confidențialitatea în plugin-urile noastre.

Stocat local (state/):

  • links.json: linkurile — tokenul, codul scurt și PIN-ul doar ca hash HMAC-SHA256 (niciodată în clar), titlurile, cine a creat, datele, utilizările, nr. de spectatori, bitrate, nota.
  • Sesiunile oaspeților: cookie (HMAC), IP-ul oaspetelui, id-ul dispozitivului, tokenul utilizatorului ascuns (doar pe server).
  • Jurnalul de evenimente: ora, link, tip, IP, detaliu (max. 5000).
  • Păstrare: sesiunile se șterg la expirare; linkurile expirate și evenimentele lor se șterg după 30 de zile (setabil). Limitarea încercărilor (10 eșecuri în 10 min → blocare 15 min per IP) e doar în memorie.

Compatibilitate cu clienții

  • Oaspeți: orice browser modern (hls.js/MSE sau HLS nativ pe iPhone); pe TV se deschide /ShareLinks/s în browserul televizorului și se tastează codul de 8 caractere. ✅ Chrome (desktop, „TV 1080p”, telefon; 18/18). Safari/iOS, Firefox, browsere TV reale: ❔ netestat.
  • Butonul „Partajează” și „Linkurile mele” doar în Emby Web (cu modificarea index.html); aplicațiile native Emby nu au buton. Pagina de admin și „Linkurile mele” ✅ (Chrome, desktop + telefon).
  • Aplicațiile native Emby: ➖ fără integrare.

Legendă: ✅ verificat (test cap-coadă sau pe dispozitiv) · 🟢 funcționează prin server, independent de client (prin design, fără test pe fiecare client) · ➖ nu se aplică · ❔ netestat.

Licențiere

O licență per server Emby. Lunar, anual sau lifetime, sau inclus în Pachetul Emby. 30 de zile de probă gratuită. Plugin-ul este licențiat conform EULA.

Share Links este cod propriu, scris de la zero de MediaLab Works; nu conține cod de la terți. Player-ul lui folosește hls.js-ul care vine cu Emby, pe care plugin-ul nu îl include.

Cerințe

  • Emby Server 4.10.1 sau mai nou
  • Pentru oaspeții din afara rețelei tale: o adresă a serverului la care pot ajunge
  • Cashier opțional: cote de partajare pe plan

Ultima versiune

0.1.6
publicată pe 20 oct. 2026
Vezi toate modificările →