Skip to main content

26004 - ISBN des livres pour indexation Calibre

26004 — ISBN des livres pour indexation Calibre

Objectif : identifier les livres de \\NASMAISON\foxy — 16 616 fichiers, 10 360 EPUB et 6 240 PDF accumulés depuis trente ans — pour reconstruire une bibliothèque exploitable par Kavita.

Règle absolue : lecture seule. Aucun script n'écrit dans \\NASMAISON\foxy, ni dans les fichiers, ni dans Calibre. C'est Julien qui renseigne les métadonnées. Les scripts préparent la décision, ils ne la prennent pas et ne l'appliquent pas.

Scripts : Jux-scripts/Livres-ISBN/ — stdlib Python seule, README.md complet dans le dossier.


Les dossiers

Chemin Rôle D:\Procedures Calibre\Dossier à renseigner\ Julien y dépose les EPUB et PDF à investiguer D:\Procedures Calibre\ISBN\ reçoit etat.csv, propositions.csv, livres.sqlite

C'est le moule des procédures Photos-Caesium et Musique-FLAC : un dossier de dépôt, un dossier de résultat.

La procédure

cd D:\Syncthing\Jux_univers\Jux-scripts\Livres-ISBN

py -3.12 inventaire_livres.py      # etape 1 : lit les fichiers
py -3.12 resoudre_livres.py        # etape 2 : interroge les catalogues

Étape 3 : Julien relit propositions.csv, corrige, et saisit dans Calibre.

1/Pour identifierviser un dossier du NAS plutôt que le dossier de dépôt :

py -3.12 inventaire_livres.py --dossier "//NASMAISON/foxy/Histoire"

Ce qui a changé par rapport à la première rédaction

La procédure d'origine tenait en trois temps : lire le nom des fichiers, faire deviner l'identité par l'IA à partir de recherches Internet (Amazon notamment), puis saisir à la main. Trois points ont été corrigés, chacun sur mesure et non sur intuition.

1. Les métadonnées sont DANS les fichiers — c'est la découverte

L'étape 1 lisait le nom de fichier. Or un EPUB porte son OPF, un PDF son DocInfo et son XMP, un MOBI ses enregistrements EXTH. C'est gratuit, hors ligne, instantané, et sans commune mesure avec ce que dit un nom de fichier.

Vérifié sur le dossier d'examen remis0_A parInventorier, Julien6 aufichiers sein:

du
répertoireFoxy Nom de NASfichier MaisonCe

1/ créerque le fichier d'étatcontient

csv du contenududossier9866gwlaz0l55yw8lsfh.epub d'examenDé-civilisation avec: pourles colonnesnouvelles entendu que beaucouplogiques de donnéesl'empire, sontRoland malGori, rédigées,LLL incomplètes,2025, nonISBN renseignées9791020922816 L.animal.en.nous.2011.Michel.Odoul.epub L'animal en nous, Michel Odoul, Albin Michel, ISBN 9782226422156 Rovere Maxime - L'école de la vie.epub L'école de la vie, Maxime Rovere, Flammarion 2020

6 sur 6 portaient leur titre et leur auteur exacts — y compris celui dont le nom est un identifiant de téléchargement qui ne dit rien.

    Sur

    titre150 dufichiers livrepris inscritdans foxy : 150 titres exploitables, 147 lus dans le champfichier titremême, nomet 56 ISBN (37 %) déjà présents — 56 livres identifiés sans une seule requête réseau.

    L'ISBN d'un EPUB se cache à quatre endroits. Un parseur qui ne regarde que <dc:identifier> en rate la moitié :

    <dc:identifier opf:scheme="ISBN">9782226422156</dc:identifier>
    <dc:identifier>urn:isbn:9791020923059</dc:identifier>
    <meta property="dcterms:identifier">9791020922816</meta>
    <meta property="pageBreakSource">urn:isbn:9791020923059</meta>
    

    2. Amazon est une impasse — BnF et OpenLibrary marchent

    La source Amazon de l'auteurCalibre inscritpasse par un scraping Google et ne renvoie plus rien ; Google Books répond 429 depuis cette IP, même sur une requête isolée (vérifié le 2026-08-31, voir page 300 du chantier Calibre-Metadonnees).

    Les sources retenues sont BnF (SRU) puis OpenLibrary, gratuites et sans clé. Sur la passe du 2026-08-31, 104 des 121 ISBN retrouvés venaient de la BnF. Une clé posée dans leGOOGLE_BOOKS_KEY champréactive Auteur(s)Google

    Books numéro; sans elle, la source se saute d'ISBNelle-même siplutôt renseigné (rarement le cas) 

     

    Le fichier csv est généré dans le dossier D:\ISBN

    2/ démarche d'extrapolationque de l'identitécoûter duune seconde par livre.

    Reformulation

    3. deUn ISBN se retrouve, il ne se déduit pas

    « Extrapolation », « l'IA qui déduit,déduit recherche» : c'est le point à ne pas garder. Un ISBN est une clé de contrôle. Une IA qui le déduit l'invente, et suggèreun ISBN inventé est indétectable à partirl'œil tout en pointant un autre livre.

    Le rôle du traitement automatique est de requêtesnettoyer Internetle (Amazontitre notamment)pour interroger un catalogue, puis de vérifier la clé de ce que le catalogue renvoie. Tout numéro passe par un contrôle de clé et une normalisation en ISBN-13 avant d'entrer dans un CSV.

    Corollaire pour les intitulésPDF réels: un numéro n'est retenu que s'il est précédé du mot ISBN ou EAN. Sans cette exigence, un numéro quelconque passe la clé de contrôle une fois sur dix — sur 6 240 PDF, cela ferait des ouvrages.centaines de faux.

    4. « Un seul auteur, sinon Calibre ne trouve rien »

    ComplémentsC'était duun symptôme de la source morte, pas une règle. La requête est bien normalisée à un auteur, mais les autres restent dans le CSV. Et le filtre auteur est désormais insensible à l'ordre : Harari Yuval Noah et Yuval Noah Harari sont reconnus comme le même auteur, ce qui sortait auparavant Sapiens, Homo Deus et Nexus de la pile des pré-cochés pour rien.


    Le fichier d'état

    etat.csv sépare ce que dit le fichier, ce que dit le nom et la synthèse — les trois restent lisibles côte à partircôte, desce hypothèsesqui étudiées des champs possiblespermet de chaquevoir ouvragepourquoi une valeur a été retenue.

    confiance Sens haute titre et auteur lus dans le fichier moyenne titre du fichier, auteur seulement déduit du nom faible tout vient du nom de fichier nulle rien d'exploitable

    a_resoudre vaut oui (à interroger), vide (ISBN déjà là) ou non (pas même un titre : aucune requête n'y changera rien).

    Le pré-cochage engage la main de Julien

    La colonne decision n'est pré-remplie o qu'au-dessus de 0,90, et jamais :

    • vraisur un résultat de repli — obtenu sans filtre auteur, donc l'auteur de départ y est suspect : c'est précisément ce qu'il faut aller regarder ;
    sur un résultat d'inclusion — la BnF catalogue souvent sous le sous-titre seul. L'odyssée des mythologies - La création du monde (EPUB) contre La création du monde : les mythes grecs… (BnF) tombait à 0,55 alors que l'auteur était exact. Le candidat remonte en tête de la pile à relire, mais son score est plafonné à 0,88, sous le seuil.

    Points techniques à ne pas re-découvrir

      Le catalogue arbitre les noms ambigus. Cioran - Exercices Négatifs veut le premier membre comme auteur ; Constantin - Bertrand Lançon veut le second. Aucune heuristique ne tranche les deux à la fois. L'inventaire pose l'hypothèse la plus fréquente et marque (ambigu) ; l'étape 2 rejoue la requête dans l'autre sens et garde le meilleur score. Vérifié : Constantin : un auguste chrétien, Bertrand Lançon, A. Colin 2012, 9782200255947, retrouvé en BnF (sens inverse). Un mot de titre suffit à départager. Aucun auteur ne s'appelle Dictionnaire. Une courte liste (dictionnaire, histoire, essai, œuvres, exercices…) classe un fragment du livrecôté du titre — sans elle, Dictionnaire Aristote - Pierre Pellegrin était lu à l'envers. vraiLe auteurDocInfo d'un PDF est souvent du bruit d'atelier : Photocopillage picto.eps, Microsoft Word - doc1, un nom de gabarit InDesign. Filtré — mais uniquement pour les PDF : appliqué aux EPUB, ce filtre jetait des titres courts parfaitement valides (1ARISTOTELOUS). Des noms de fichier ont perdu leur première lettre accentuée : thique à Eudeme pour Éthique à Eudème, uvres complètes pour Œuvres complètes. Les métadonnées embarquées les rattrapent. \\NASMAISON\foxy en barres inverses échoue depuis Python lancé par Claude Code ; //NASMAISON/foxy fonctionne. Bibliotheque Calibre est exclu par défaut de l'inventaire : déjà traité depuis Noël, et il porte à lui seul auteur603 autrementPDF. --tout lève l'exclusion. Les doublons sont signalés, pas traités — note doublon possible avec #N. Lequel garder est un arbitrage humain : c'est la rechercheleçon Calibredu dédoublonnage photo du 2026-08-28, où un doublon inter-albums s'est révélé être une intention et non une erreur.

      Cadence mesurée (2026-09-04)

      Étape Débit Sur les 16 616 fichiers Inventaire ≈ 0,8 s/fichier (coût = lecture SMB) ~3 h 30 Résolution ≈ 2,2 s/livre interrogé ~6 h

      Les deux étapes reprennent où elles s'étaient arrêtées (--reprendre), donc le travail se fait par lots, dossier par dossier. Rendement de la résolution sur 32 livres d'histoire : 28 fiches trouvées, 22 pré-cochées (69 %).


      Ce qu'il ne renvoiefaut pas chercher à indexer

      Le constat du 2026-08-31 tient : sur 302 livres sans ISBN dans la bibliothèque Calibre, 181 n'en avaient pas à trouver — 122 PDF (brochures, PDF Reducer Demo version, Mon chien / Collectif OSAV), 47 compilations de recettes, 9 guides. Une brochure n'a pas d'ISBN, aucune source ne le lui inventera.

      Ces fichiers sortent en a_resoudre=non et ne consomment aucune requête. S'ils polluent la vue « livres », l'angle est de les étiqueter comme documents, pas de résultat)s'acharner à

      vrailes numéroindexer.

      Note pour la suite — Kavita

      Kavita lit les métadonnées dans l'EPUB (son OPF), pas dans la base Calibre. Une bibliothèque Calibre impeccable ne suffira donc pas : il faudra, côté Calibre, incruster les métadonnées dans les fichiers (Modifier les métadonnées → Polir les livres → Mettre à jour les métadonnées). À vérifier sur l'instance avant de s'engager.

      3/Et Julienpour enKavita, prenantl'ISBN appuiest surun moyen, pas une fin : ce qui s'affiche, c'est le fichiertitre, csvl'auteur, omplétéla renseignesérie, LUIMEMEle résumé et la couverture. L'ISBN n'est que la clé qui permet d'aller les méta-donnéeschercher d'un coup et sans erreur.

      Point de vigilance

      \\NASMAISON\foxy n'est dans Calibreaucune ensauvegarde corrigeantconnue ou: complétantni dans sync_kdrive_complete.sh (qui ne traite que le casNAS échéantsasnexte), lesni écartsdans d'interprétationla sauvegarde VPS. C'est vrai de la bibliothèque Calibre comme des 16 616 fichiers. À trancher séparément.