Emby n’a pas de rapport pour les problèmes qui s’accumulent dans une bibliothèque : le même film ajouté deux fois comme deux titres séparés, les films qu’il n’a jamais identifiés, les fichiers devenus manquants, endommagés ou copiés à moitié. Library Doctor les trouve, montre ce que chacun coûte en espace disque et vous permet de les dégager sans jamais supprimer un fichier.
Ce qu’il fait
- Doublons : le même film ou le même épisode (même série, même saison et même numéro d’épisode) dans des éléments séparés. Les films sont appariés par leur identifiant TMDb ou IMDb ; les films sans aucun des deux sont appariés par leur titre (sans tenir compte de la casse, des accents et de la ponctuation) et leur année, et ces groupes sont marqués by title and year — check, car deux films différents peuvent partager un titre et une année. Chaque groupe affiche les versions côte à côte — résolution, HDR, codec, débit et taille —, la meilleure d’abord, et l’espace que vous récupéreriez en ne gardant que celle-ci. Quarantine écarte une version plus faible.
- Les versions qu’Emby regroupe déjà sont laissées tranquilles : les fichiers qu’Emby affiche déjà comme versions d’un même titre (le même titre avec un choix de version à la lecture) ne sont pas signalés comme doublons ; seuls les éléments séparés le sont.
- Films non identifiés : les films sans aucun identifiant de métadonnées, ce qui signifie généralement un titre, une année ou une jaquette erronés et un film absent des collections et des recommandations. Chacun renvoie vers le film, où l’Identify d’Emby le corrige.
- Fichiers manquants, cassés ou tronqués : une vérification en arrière-plan de chaque fichier de film et d’épisode avec le ffprobe et le ffmpeg fournis avec Emby. Elle signale les fichiers missing from disk (absents du disque), cannot be read (illisibles, avec l’erreur), qui n’ont no real video track (aucune véritable piste vidéo, seulement une image, par exemple un fichier d’octets aléatoires dans lequel ffprobe devine une image), qui n’ont no duration (aucune durée, en-tête cassé), qui ont une zero duration (durée zéro), ou qui sont truncated (tronqués) : les 3 dernières secondes de la vidéo sont décodées, et un fichier dont la fin ne peut pas être décodée est signalé comme un téléchargement ou une copie incomplets.
- Rapport d’espace : le total, puis l’espace par bibliothèque, par résolution (4K, 1080p, 720p, SD) et par codec vidéo, et les 20 plus gros fichiers qu’aucun utilisateur n’a regardés.
- Quarantaine au lieu de suppression : voir ci-dessous. Le plugin ne supprime jamais rien.
- En anglais et en roumain.
La quarantaine : rien n’est supprimé
Quand vous cliquez sur Quarantine sur une version (et confirmez), le plugin déplace le fichier vidéo et les fichiers à côté de lui qui partagent son nom — sous-titres, .nfo, images comme Movie.srt, Movie.en.srt, Movie.nfo, Movie-poster.jpg — dans un dossier nommé .medialab-de-sters (« à supprimer » en roumain) à la racine du dossier de bibliothèque qui les contient, en conservant leurs sous-dossiers. Comme le dossier se trouve à l’intérieur du même dossier de bibliothèque, il est normalement sur le même disque et le déplacement est instantané. Emby relance ensuite l’analyse de la bibliothèque.
Le déplacement est enregistré avant que tout fichier ne soit touché. Si un fichier ne peut pas être déplacé (par exemple à cause des permissions), les fichiers déjà déplacés sont remis en place et aucune copie n’est laissée dans .medialab-de-sters ; si les remettre en place n’est pas possible non plus, l’entrée reste dans la liste de quarantaine pour que vous puissiez la restaurer.
La liste Quarantine affiche chaque titre déplacé avec son emplacement d’origine et sa taille. Restore replace les fichiers exactement là où ils étaient et relance l’analyse ; elle refuse, sans rien toucher, si un fichier est à la fois en quarantaine et de retour à son chemin d’origine. Le plugin ne remplace ni ne supprime jamais un fichier : une fois sûr, vous supprimez vous-même le dossier .medialab-de-sters du disque.
Les fichiers hors des dossiers des bibliothèques, et les fichiers déjà dans un dossier .medialab-de-sters, sont refusés.
Prérequis
- Emby Server 4.10.1 ou plus récent (Linux, Windows ou Docker).
- Pour la vérification des fichiers : le ffprobe et le ffmpeg fournis avec Emby (rien à installer).
- Pour la quarantaine : l’utilisateur Emby a besoin de l’accès en écriture aux dossiers des bibliothèques (pour créer
.medialab-de-stersà la racine du dossier de la bibliothèque et sortir les fichiers de leurs dossiers). Dans Docker, les volumes de médias ne doivent pas être montés en lecture seule. Sans l’accès en écriture, tous les rapports fonctionnent ; seule la quarantaine ne peut pas déplacer de fichiers.
Questions fréquentes
Peut-il supprimer mes films ? Non. Le plugin n’a aucune fonction de suppression. La quarantaine ne déplace les fichiers qu’à l’intérieur du même dossier de bibliothèque, et ils reviennent avec Restore.
Pourquoi le même film est-il listé deux fois dans Emby ? Emby ne regroupe les fichiers d’un même film en versions que lorsqu’ils se trouvent dans le même dossier avec des noms correspondants. Deux fichiers du même film dans des dossiers différents deviennent deux éléments. Library Doctor les trouve par leur identifiant TMDb ou IMDb (ou par titre et année quand ils n’en ont pas) et vous laisse mettre en quarantaine la version plus faible. Voir le guide.
Peut-il trouver chaque fichier endommagé ? Il trouve les fichiers manquants, illisibles, sans véritable piste vidéo ou sans durée, et les fichiers dont la fin ne peut pas être décodée. Un fichier coupé très près de sa fin (par exemple à environ 98 %) peut encore avoir des images décodables dans ses dernières secondes et passer la vérification, et les dégâts au milieu d’un fichier ne sont pas recherchés.
Ce qu’il envoie et où
- Aucun contact externe en dehors du client de licence. Aucune recherche de métadonnées en ligne : les doublons et les titres non identifiés sont calculés à partir des identifiants (TMDb/IMDb…) que le serveur stocke déjà.
- Indirectement : après un déplacement en quarantaine ou une restauration, le plugin lance l’analyse régulière de la bibliothèque, qui peut contacter les fournisseurs de métadonnées configurés sur le serveur (comportement du serveur, pas du plugin).
- La vérification des fichiers (uniquement sur demande) exécute le ffprobe du serveur sur chaque film/épisode, localement. Aucune analyse planifiée.
- Plus le client de licence, le même dans chaque plugin : voir Licences et confidentialité dans nos plugins.
Stocké localement :
- La quarantaine ne supprime rien : le fichier et ses compagnons (sous-titres, nfo, images) sont déplacés dans
<library root>/.medialab-de-sters/; la suppression définitive vous appartient. state/quarantine.json: titre, date, chemins d’origine et de quarantaine, taille.- Les résultats de la vérification des fichiers sont conservés uniquement en mémoire. Le plugin lit dans la bibliothèque si un utilisateur a regardé un titre (pour « les plus gros non regardés »), sans le stocker.
Compatibilité avec les clients
- Page d’administration uniquement : Emby Web ✅. Les fonctionnalités tournent sur le serveur, les clients (applications, TV) ne voient donc que l’effet (titres déplacés/regroupés).
- Tests : de bout en bout au niveau de l’API (16/16), vérification de fin de fichier sur 400/400 vrais fichiers sans faux positif ; Emby 0.1.2 tourne sur un serveur de production.
- Limites : le serveur a besoin de l’accès en écriture aux dossiers des bibliothèques pour la quarantaine ; sur Emby 4.10, les copies au même TMDb regroupées automatiquement apparaissent encore comme des doublons jusqu’à ce que vous les fusionniez ; un
.tstronqué ne peut pas être détecté (pas de durée stockée).
Légende : ✅ vérifié (test de bout en bout ou sur l’appareil) · 🟢 côté serveur, fonctionne avec tout client (par conception, sans test propre à un client) · ➖ non applicable · ❔ non testé.
Licence
Une licence par serveur Emby. Mensuel, annuel ou à vie, ou inclus dans le pack Emby. Essai gratuit de 30 jours. Le plugin est sous notre CLUF.
Library Doctor est notre propre code, écrit par MediaLab Works ; il ne contient aucun code tiers.
