Găsește filmele duplicate, titlurile nepotrivite și fișierele stricate în Jellyfin, fără să ștergi nimic

Un ghid practic pentru Library Doctor: filme duplicate după id-ul TMDb/IMDb, titluri nepotrivite, verificarea integrității cu ffprobe/ffmpeg, raportul de spațiu și o carantină reversibilă.

Orice bibliotecă self-hosted se degradează în timp. Un film ajunge de două ori pentru că două fișiere au aterizat în foldere diferite, câteva titluri nu s-au potrivit niciodată și stau acolo fără poster, o copie s-a întrerupt la jumătate și nimeni nu a observat, iar discul continuă să se umple. Jellyfin nu are un singur raport pentru toate acestea, așa că de obicei le descoperi din întâmplare. Library Doctor este un plugin pentru Jellyfin care adună aceste probleme într-o singură pagină de administrare, arată cât spațiu ocupă fiecare și îți permite să le rezolvi fără să ștergi vreodată un fișier.

Acest tutorial parcurge întregul flux: găsirea filme duplicate jellyfin, tratarea titlurilor nepotrivite, verificarea integrității fișierelor, citirea raportului de spațiu și folosirea carantinei ca plasă de siguranță.

Cerințe preliminare

  • Jellyfin Server 12.2 sau mai nou (Linux, Windows sau Docker).
  • Un cont MediaLab Works cu o licență care acoperă pluginul (abonament activ, licență pe viață în fereastra de actualizare, pachetul Jellyfin sau perioada de probă gratuită de 30 de zile).
  • ffprobe și ffmpeg pentru verificarea integrității — vin cu jellyfin-ffmpeg, iar pluginul folosește aceleași căi pe care le folosește Jellyfin pentru transcodare.
  • Drept de scriere în folderele bibliotecii pentru utilizatorul Jellyfin, dacă vrei să folosești carantina. Pe Linux acesta este de obicei utilizatorul jellyfin; în Docker volumele media nu trebuie montate read-only (fără :ro). Fără drept de scriere, toate rapoartele funcționează în continuare — doar carantina nu poate muta fișiere.

Pluginul este open source (GPL-3.0), iar codul sursă al fiecărei versiuni se află în contul tău.

Pasul 1 — Instalare și activare

Ruta recomandată este depozitul tău privat de pluginuri:

  1. În contul MediaLab Works deschide Licenses → Jellyfin plugin repository și apasă Create address. Copiază adresa — conține un token, așa că păstreaz-o privată.
  2. În Jellyfin deschide Dashboard → Plugins → Repositories, apasă +, dă-i un nume (de exemplu MediaLab Works), lipește adresa și salvează.
  3. În Dashboard → Plugins → Catalog găsește Library Doctor by MediaLab, apasă Install, apoi repornește Jellyfin.

Există și un catalog public la https://medialab.works/jellyfin/manifest.json, precum și o instalare manuală din zip, dacă preferi. După repornire, deschide pagina pluginului din Dashboard → Plugins → Library Doctor by MediaLab, mergi la License, lipește cheia și apasă Activate with key. Nu ai încă o cheie? Pornește perioada de probă de 30 de zile din aceeași pagină.

Pasul 2 — Deschide pagina din dashboard

Library Doctor apare în meniul dashboard-ului Jellyfin și este vizibil doar administratorilor. Nu e nimic de configurat: pagina citește bibliotecile de filme și episoade de fiecare dată când o deschizi.

În partea de sus găsești cifrele: fișiere video, grupuri de duplicate, spațiul de recuperat din duplicate, filmele nepotrivite și mărimea totală. Tratează-le ca pe o radiografie a stării bibliotecii înainte să modifici ceva.

Pasul 3 — Verifică filmele și episoadele duplicate

Aceasta este partea pentru care vin cei mai mulți. Jellyfin grupează deja mai multe fișiere ale aceluiași film ca versiuni atunci când le recunoaște, dar când același film se află în două foldere diferite devine de obicei două elemente separate. Library Doctor găsește aceste grupuri.

  • Filmele sunt potrivite după id-ul TMDb sau IMDb.
  • Episoadele sunt potrivite după serial, sezon și număr de episod.
  • Filmele fără id de metadate sunt potrivite după titlu și an, ignorând majusculele, accentele și punctuația. Aceste grupuri sunt marcate by title and year (no metadata id) — check, pentru că două filme diferite pot avea același titlu și același an. Deschide-le pe amândouă înainte să acționezi.

Fiecare grup arată versiunile una lângă alta — rezoluție, HDR, codec, debit și mărime — cu cea mai bună prima și marcată best (întâi rezoluția mai mare, apoi HDR, apoi un codec mai eficient precum AV1, HEVC sau VP9, apoi debitul). Vezi și spațiul pe care l-ai recupera păstrând doar aceea.

Ai două acțiuni și niciuna nu șterge ceva:

  • Group as versions păstrează toate fișierele și le arată ca versiuni ale aceluiași titlu, folosind gruparea de versiuni a Jellyfin. Niciun fișier nu este mutat.
  • Quarantine mută o versiune mai slabă din cale (vezi Pasul 6).

Pasul 4 — Rezolvă filmele nepotrivite

Secțiunea Unmatched movies listează filmele fără niciun id de metadate. Acestea sunt de obicei cele cu titlu, an sau poster greșit și tind să lipsească din colecții și recomandări.

Apasă Open pe o intrare, apoi folosește Identify din Jellyfin pe film pentru a alege potrivirea corectă. Dispărea din listă data viitoare când deschizi pagina Library Doctor.

Pasul 5 — Rulează verificarea integrității și citește raportul de spațiu

Apasă Check the files. Verificarea rulează în fundal, fișier cu fișier, și își arată progresul; pe o bibliotecă mare durează ceva și poți părăsi pagina. Se face doar la cerere — nu există scanări programate.

Pentru fiecare fișier de film și episod raportează fișierele care:

  • lipsesc de pe disc;
  • nu pot fi citite, cu eroarea aferentă;
  • nu au nicio pistă video reală (de exemplu un fișier cu octeți aleatori în care ffprobe ghicește o imagine);
  • nu au durată (antet stricat) sau au durată zero;
  • sunt trunchiate: ultimele 3 secunde sunt decodate, iar un fișier al cărui final nu poate fi decodat este marcat ca descărcare sau copiere incompletă.

Fii conștient de limite: un fișier tăiat foarte aproape de final poate avea încă cadre decodabile în ultimele secunde și poate trece, daunele din mijlocul unui fișier nu sunt căutate, iar un .ts trunchiat nu poate fi detectat pentru că nu are durată stocată.

Mai jos, raportul de spațiu îți dă totalul, apoi spațiul pe biblioteci, pe rezoluții (4K, 1080p, 720p, SD) și pe codec video, plus cele mai mari 20 de fișiere pe care niciun utilizator nu le-a vizionat. Această ultimă listă este adesea cea mai utilă când ai nevoie de loc pentru ceva nou.

Pasul 6 — Carantină în loc de ștergere

Când apeși Quarantine pe o versiune și confirmi, pluginul mută fișierul video și fișierele de lângă el care îi împărtășesc numele — subtitrări, .nfo, imagini precum Movie.srt, Movie.en.srt, Movie.nfo, Movie-poster.jpg — într-un folder numit .medialab-de-sters la rădăcina folderului de bibliotecă în care se află, păstrând subfolderele. Pentru că folderul este în același folder de bibliotecă, se află de obicei pe același disc, așa că mutarea este instantanee. Jellyfin rescanează apoi biblioteca.

Mutarea este înregistrată înainte de a fi atins vreun fișier. Dacă un fișier nu poate fi mutat (de exemplu din cauza permisiunilor), fișierele deja mutate sunt puse la loc și nu rămâne nimic în urmă; dacă nici punerea la loc nu este posibilă, intrarea rămâne în lista de carantină ca să o poți restaura. Fișierele din afara folderelor bibliotecii și cele deja aflate într-un folder .medialab-de-sters sunt refuzate.

Lista Quarantine arată fiecare titlu mutat cu locația originală și mărimea. Restore mută fișierele exact de unde erau și rescanează; refuză, fără să atingă nimic, dacă un fișier este atât în carantină, cât și înapoi la calea sa originală. Pluginul nu suprascrie și nu șterge niciodată un fișier — după ce ești sigur, ștergi tu însuți folderul .medialab-de-sters de pe disc.

Sfaturi și depanare

  • Carantina nu face nimic. Verifică dacă utilizatorul Jellyfin poate scrie în folderele bibliotecii și dacă volumele Docker nu sunt montate :ro. Toate rapoartele funcționează fără drept de scriere; doar mutarea eșuează.
  • Un grup de duplicate pare greșit. Dacă este marcat by title and year, verifică ambele intrări înainte de grupare sau carantină — remake-urile pot împărtăși un titlu și uneori un an.
  • Verificarea durează mult. Este normal pe o bibliotecă mare; rulează în fundal și poți părăsi pagina. Rezultatele sunt păstrate doar în memorie, așa că nu persistă între reporniri.
  • Confidențialitate. Nu există contact extern în afara clientului de licențiere și nicio interogare online de metadate: duplicatele și titlurile nepotrivite sunt calculate din id-urile pe care serverul tău le stochează deja. Verificarea fișierelor rulează local ffprobe-ul serverului. După o mutare în carantină sau o restaurare, pluginul pornește scanarea obișnuită a bibliotecii, care poate contacta furnizorii de metadate configurați pe serverul tău — acesta este comportamentul serverului, nu al pluginului.

Concluzie

Igiena bibliotecii înseamnă în mare parte să vezi problemele înainte să crească. Library Doctor îți dă o singură pagină pentru filmele și episoadele duplicate, titlurile nepotrivite, fișierele lipsă sau stricate și pentru locul unde se duce de fapt spațiul — și rezolvă lucrurile grupând sau mutând fișiere într-o carantină pe care o poți restaura, niciodată ștergând. Instalează-l din depozitul tău de pluginuri, rulează verificarea o dată și păstrează pagina în rutina ta lunară de mentenanță. Pagina produsului Library Doctor are lista completă de funcții, ghidul utilizatorului acoperă în detaliu instalarea și utilizarea zilnică, iar changelog-ul arată ce s-a schimbat în fiecare versiune. Ai întrebări? Baza de cunoștințe, FAQ și pagina de contact sunt locurile de unde să începi.

Postarea a fost scrisă cu ajutorul AI pe baza documentației produselor noastre sau a surselor indicate și verificată automat înainte de publicare.

Citește și

Link scurt Nextcloud pentru partajări, pe domeniul tău (cu coduri QR)

Transformă linkurile lungi de partajare /index.php/s/… în adrese scurte și de încredere pe domeniul tău, cu Shortcloud: linkuri scurte automate, terminații personalizate, coduri QR, 410 Gone pentru partajările expirate și adrese fără /index.php.

Ai un server Emby, Jellyfin sau Nextcloud?

Plugin-urile și aplicațiile noastre adaugă Live TV, subtitrări, înregistrare și securitate pe serverul tău, cu probă gratuită.