Licences et confidentialité dans nos plugins
Ceci est une traduction fournie pour plus de commodité. En cas de divergence, la version anglaise prévaut.
Version du 2026-10-13.
Chaque plugin communique avec https://medialab.works (et uniquement ce domaine) pour les licences, les mises à jour et, en option, les journaux. Le trafic d’activation et de vérification est chiffré en plus du HTTPS (clé ECDH éphémère + AES-256-GCM ; les réponses sont signées en ECDSA et vérifiées par le plugin). Ce que chaque plugin envoie à d’autres services, et les applications avec lesquelles il fonctionne, figurent sur sa page produit, sous Ce qu’il envoie et où et Compatibilité avec les clients.
Le client de licence (dans chaque plugin)
| Quand | Ce qui est envoyé |
|---|---|
| Activation (lorsque l’administrateur saisit la clé) | l’identifiant du serveur Emby/Jellyfin (server_id, l’identifiant interne de l’installation), une empreinte matérielle (hw_hash — un SHA-256 calculé localement à partir du machine-id, de l’UUID/numéro de série DMI s’il est lisible et de l’adresse MAC physique la plus basse ; les valeurs brutes ne quittent jamais le serveur), l’identifiant (slug) du produit, la version du plugin, le SHA-256 + la taille de la DLL du plugin, un nonce et un horodatage ; la clé de licence n’est jamais envoyée en clair (seul son SHA-256 sert d’identifiant ; la clé alimente la dérivation de la clé de chiffrement) |
| Au démarrage du serveur, puis toutes les 24 h (± jusqu’à 1 h, aléatoire) | les mêmes champs, via la session chiffrée (identifiant d’activation au lieu de la clé) |
| Avant Update / Rollback ou une action protégée dans les pages | une nouvelle vérification uniquement si la dernière réussie date de plus de 1 h (la plateforme limite la fréquence des vérifications à la demande) |
| Update / Rollback (lancés par l’administrateur sur la page License) | téléchargement du paquet depuis l’URL signée renvoyée par medialab.works (vérifié par SHA-256 / MD5 avant l’installation), puis un rapport : opération, version de départ/d’arrivée, réussite ou non, message d’erreur |
| Essai gratuit / achat depuis le plugin (facultatif) | l’adresse e-mail saisie par l’administrateur, la formule choisie, l’identifiant (slug) du produit, server_id, hw_hash, la version du plugin, la langue de la page ; le paiement s’effectue sur la page Stripe Checkout de medialab.works, pas dans le plugin ; le plugin vérifie ensuite (toutes les 5 s pendant la première heure, puis toutes les minutes tant que le lien est valable) si la licence a été récupérée |
| Désactivation | une demande de désactivation via la session chiffrée |
| Export des journaux | uniquement lorsque l’administrateur clique sur « Send log » ou a activé l’envoi automatique (AutoSendLogs, désactivé par défaut). Seules les lignes du journal actuel du serveur contenant le nom du plugin sont envoyées (au maximum ~2000 lignes, compressées en gzip, 2 Mo max.), avec une note facultative. Avec AutoSendLogs activé : une fois par jour après la vérification ; pour les plugins qui modifient le client web d’Emby (Registration, Quick Connect, MediaLab TV, ainsi que Smart Skip et Share Links lorsque leur modification facultative est activée), également une fois par version d’Emby lorsque la modification n’a pas pu être réappliquée après une mise à jour d’Emby. |
Code QR sur la page License : le code QR du lien de paiement est généré localement, dans la page, sans aucun envoi supplémentaire, par chaque plugin Emby au plus tard à partir des versions publiées le 14 octobre 2026 (MediaLab TV à partir de la 1.2.1), et sur Jellyfin par Headend à partir de la 1.0.4, MediaLab TV à partir de la 1.2.1, Rosub à partir de la 1.1.3, AISub à partir de la 0.1.3, Smart Skip à partir de la 0.1.2, Transcode Doctor à partir de la 0.1.3 et Library Doctor à partir de la 0.1.6 ; les autres plugins Jellyfin l’obtiendront dans leur prochaine version. Dans les versions plus anciennes, pendant qu’un essai ou un achat lancé depuis le plugin attend le paiement, le navigateur de l’administrateur charge l’image QR depuis le service tiers api.qrserver.com, en lui transmettant le lien de paiement (l’URL de la page Stripe Checkout de medialab.works). Rien d’autre n’est envoyé ; si vous n’achetez pas depuis le plugin, ce service n’est jamais contacté.
Stocké localement : l’état de la licence dans <plugin data folder>/license/license.json (clé, identifiant d’activation, secret de session, licence signée, dernière vérification, préférence AutoSendLogs).
Jamais envoyé par le client de licence : des données sur les utilisateurs du serveur, les titres, les bibliothèques, les adresses IP des clients, les mots de passe, les clés d’API d’autres services. Le journal (uniquement avec consentement) peut contenir tout ce que le plugin écrit dans le journal (p. ex. des noms d’utilisateur ou des titres, selon le produit).
Jellyfin : les opérations Update/Rollback passent par l’installateur de Jellyfin (zip + MD5) depuis le dépôt de plugins medialab.works ; après un Rollback, la mise à jour automatique de Jellyfin pour ce plugin est désactivée jusqu’au prochain Update sur la page License. Le catalogue public Jellyfin propose toujours la version la plus récente : avec une licence à vie dont la période de mises à jour est terminée, une version plus récente installée par les mises à jour automatiques des plugins de Jellyfin s’arrête avec « version not licensed » jusqu’à ce que vous reveniez à la version précédente ou achetiez un pass de mises à jour (voir la FAQ).
Sans licence valide (ou après le délai de grâce), le plugin passe en mode limité ; il n’envoie rien de plus.
Les données personnelles que nous conservons de notre côté (compte, licences, identifiants de serveur, adresses IP vues par le serveur de licences) et vos droits sont décrits dans la Politique de confidentialité.
Versions de serveur prises en charge
- Emby : 4.10.1.0 ou plus récent (les paquets Emby sont publiés avec
min_emby = 4.10.1.0; testés sur Emby 4.10.1). - Jellyfin : 12.x (targetAbi 12.2.0.0, .NET 10), testés sur Jellyfin 12.2 et sur le fork medialab Server (12.2-ml). Jellyfin 10.x n’est pas pris en charge. Les plugins Jellyfin sont distribués sous GPL-3.0 avec leur code source.
Légende de compatibilité
La section Compatibilité avec les clients de chaque page produit utilise ces symboles :
- ✅ vérifié (test de bout en bout ou sur l’appareil)
- 🟢 côté serveur, indépendant du client (par conception, sans test propre à un client)
- ➖ non applicable
- ❔ non testé