Share Links pour Emby

Pour Emby : des liens expirables vers un film, un épisode, une saison ou une série, pour des personnes sans compte, dans un navigateur ou sur une TV, sans compte sur le serveur.

Sharing a film with someone who has no account: how long the link works, how many people can watch at once, how many opens, an optional PIN and a note1 sur 7

Parfois, vous voulez montrer un film ou une série à quelqu’un qui n’a pas de compte sur votre serveur. Share Links crée un lien qui expire, que l’invité ouvre dans un navigateur, sur un téléphone ou sur une TV, sans jamais recevoir de compte ni de jeton pour votre serveur Emby.

Ce qu’il fait

  • Liens avec limites : une date d’expiration, un nombre maximum d’ouvertures, un nombre maximum de spectateurs simultanés et un PIN facultatif.
  • S’ouvre partout : dans n’importe quel navigateur, sur un téléphone ou une TV, avec une adresse courte et un code à 8 caractères, ou avec un code QR. La lecture se fait dans son propre lecteur, avec le choix de la piste audio et des sous-titres.
  • Aucun compte pour l’invité : l’invité ne reçoit jamais de compte ni de jeton. Tout passe par un proxy limité aux titres du lien, et révoquer le lien arrête la lecture immédiatement.
  • Sécurité : les jetons, codes et PIN sont stockés uniquement sous forme de hachés ; les tentatives erronées répétées sont verrouillées par adresse IP et par lien ; le débit est plafonné ; rien ne peut être téléchargé.
  • Partage par les utilisateurs réguliers (facultatif), avec un quota par période de 30 jours (un quota par défaut, ou un par formule Cashier), et une page Mes liens.
  • Envoi : copiez le lien ou envoyez-le par WhatsApp, Telegram ou e-mail ; chaque lien a un journal d’activité.

Pourquoi pas un compte invité

Sur Emby 4.10, les restrictions de bibliothèque ne sont pas appliquées quand un élément est demandé directement par son identifiant : un compte « invité » ordinaire peut donc atteindre toute la bibliothèque. Share Links évite cela par conception : l’invité n’a aucun compte et le proxy ne sert que les titres du lien.

Prérequis

  • Emby Server 4.10.1 ou plus récent.
  • Pour les invités hors de votre réseau domestique : une adresse de votre serveur qu’ils peuvent atteindre.
  • Facultatif : Cashier, pour des quotas de partage par formule.

Ce qu’il envoie et où

  • Aucun service externe pour les invités : la page publique ne charge que les fichiers du plugin (hls.js depuis le client web local du serveur / inclus), ni CDN, ni polices, ni images externes ; QR généré sur le serveur. En-têtes stricts : CSP default-src 'self', sans referrer, noindex, pas d’intégration dans un cadre.
  • Le proxy invité ne parle qu’à votre serveur local et transmet l’IP de l’invité dans X-Forwarded-For (elle apparaît dans les journaux/sessions du serveur).
  • Ce que l’invité voit : le titre du lien, l’expiration, le nom du partageur et, pour les titres partagés : nom, série/saison/épisode, année, présentation, durée, images. Lecture uniquement (HLS, sous-titres, images) pour ces titres ; aucun téléchargement ; débit plafonné (8 Mbit/s par défaut). L’invité ne reçoit jamais de jeton du serveur ; un utilisateur masqué temporaire est créé, sans bibliothèques/téléchargement/TV en direct, avec un mot de passe aléatoire non enregistré, supprimé lors de la révocation ou de l’expiration.
  • Les boutons WhatsApp/Telegram de la page d’administration sont de simples liens (ils n’envoient le lien et le titre que si vous cliquez).
  • Le bouton « Partager » et le menu « Mes liens » nécessitent le correctif dashboard-ui/index.html facultatif (désactivé par défaut). Si vous l’avez activé et qu’il ne peut pas être restauré après une mise à jour d’Emby, le journal du plugin est envoyé à medialab.works (une fois par version d’Emby) uniquement si l’envoi automatique des journaux est activé, comme dans chaque plugin.
  • Plus le client de licence, identique dans chaque plugin : voir Licences et confidentialité dans nos plugins.

Stocké localement (state/) :

  • links.json : liens — jeton, code court et PIN uniquement comme hachés HMAC-SHA256 (jamais en clair), titres, créateur, dates, utilisations, nombre de spectateurs, débit, note.
  • Sessions des invités : cookie (HMAC), IP de l’invité, identifiant d’appareil, jeton de l’utilisateur masqué (côté serveur uniquement).
  • Journal des événements : heure, lien, type, IP, détail (5000 maximum).
  • Conservation : les sessions sont supprimées à l’expiration ; les liens expirés et leurs événements sont supprimés après 30 jours (configurable). La limitation des tentatives (10 échecs en 10 min → blocage de 15 min par IP) est uniquement en mémoire.

Compatibilité avec les clients

  • Invités : tout navigateur moderne (hls.js/MSE ou HLS natif sur iPhone) ; sur une TV, ouvrez /ShareLinks/s dans le navigateur de la TV et saisissez le code à 8 caractères. ✅ Chrome (ordinateur, « TV 1080p », téléphone ; 18/18). Safari/iOS, Firefox, vrais navigateurs de TV : ❔ non testés.
  • Le bouton « Partager » et « Mes liens » uniquement dans Emby Web (avec le correctif index.html) ; les applications Emby natives n’ont pas de bouton. Page d’administration et « Mes liens » ✅ (Chrome, ordinateur + téléphone).
  • Applications Emby natives : ➖ aucune intégration.

Légende : ✅ vérifié (test de bout en bout ou sur appareil) · 🟢 côté serveur, fonctionne avec n’importe quel client (par conception, sans test spécifique au client) · ➖ sans objet · ❔ non testé.

Licence

Une licence par serveur Emby. Mensuelle, annuelle ou à vie, ou incluse dans le pack Emby. Essai gratuit de 30 jours. Le plugin est concédé sous notre CLUF.

Share Links est notre propre code, écrit from scratch par MediaLab Works ; il ne contient aucun code tiers. Son lecteur utilise le hls.js fourni avec Emby, que le plugin n’inclut pas.

Configuration requise

  • Emby Server 4.10.1 ou plus récent
  • Pour les invités hors de votre réseau : une adresse du serveur à laquelle ils peuvent accéder
  • Cashier en option : quotas de partage par formule

Dernière version

0.1.6
publiée le 20 oct. 2026
Voir toutes les modifications →