• Catégories
    • Toutes les catégories
    • Planète Warez
      Présentations
      Aide & Commentaires
      Réglement & Annonces
      Tutoriels
    • IPTV
      Généraliste
      Box
      Applications
      VPN
    • Torrent & P2P
    • Direct Download et Streaming
    • Autour du Warez
    • High-tech : Support IT
      Windows, Linux, MacOS & autres OS
      Matériel & Hardware
      Logiciel & Software
      Smartphones & Tablettes
      Graphismes
      Codage : Sites Web, PHP/HTML/CSS, pages perso, prog.
      Tutoriels informatiques
    • Culture
      Actualités High-Tech
      Cinéma & Séries
      Sciences
      Musique
      Jeux Vidéo
    • Humour & Insolite
    • Discussions générales
    • Espace détente
    • Les cas désespérés
  • Récent
  • Populaire
  • Résolu
  • Non résolu
Réduire

Planète Warez

,
  • Politique
  • Règlement
  • À propos
  • Annonces
  • Faire un don
  • Feedback
  • Team
  • Tutoriels
  • Bug Report
  • Wiki
    • Light
    • Default
    • Ubuntu
    • Lightsaber
    • R2d2
    • Padawan
    • Dim
    • FlatDark
    • Invaders
    • Metallic
    • Millennium
    • Leia
    • Dark
    • DeathStar
    • Starfighter
    • X-Wing
    • Sith Order
    • Galactic
ko-fi

[Docker Apps] BookHub : Automatisation DL ebooks et traitement

Planifier Épinglé Verrouillé Déplacé Logiciel & Software
logicieldockerbookhub
4 Messages 2 Publieurs 41 Vues
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Networldundefined Hors-ligne
    Networldundefined Hors-ligne
    Networld Membre
    écrit dernière édition par Violence
    #1

    Hello,

    Suite au différents évènements sur un certain Y machine truc, comme beaucoup, j’ai cherché des alternatives. Je suis assez rapidement tombé sur ce forum et j’ai commencé à lire et à un peu participer. Et il faut dire qu’il y a du contenu très intéressant. J’ai d’ailleurs modifié ma SeedBox suite à une discussion (coucou @Aerya), installé RustDesk (coucou @Raccoon), prévu d’installer Veeam (coucou @Violence) et d’autres choses sont en attente.

    Ensuite j’ai eu pas mal de demandes pour des ebooks, de la musique et des livres audio de la part de ma belle maman, ma maman, ma femme, deux de mes filles et une amie de la famille qui vit en Australie. Et qu’est-ce que fait un flemmard dans ce genre de cas? Trouver des solutions qu’il peut gérer à distance. Installer une fois ce qu’il faut et gérer tranquillement depuis son canapé 🙂

    C’est là que j’ai découvert Kavita (pour envoyer sur des Kindle), Audiobookshelf, Prologue, ShelfPlayer, etc… Et ma nouvelle meilleure amie Anna pour les eBooks (découverte sur ce forum pour changer).

    Tout ça c’est bien. J’ai fait une note partagée par personne, comme wishlist et je me suis vite retrouvé avec pratiquement 100 titres rapidement (oui, ça lit beaucoup chez nous et plus de place dans les bibliothèques, pourtant il y en a beaucoup…). Cool, mais chercher manuellement, c’est long, corriger toutes les méta données pour un affichage propre dans Kavita, c’est long.

    N’ayant pas trouvé une solution qui me convenait complètement, j’ai décidé de m’amuser un peu avec l’IA. Tout d’abord Perplexity (une catastrophe le résultat), puis ChatGPT.

    :ange:

    **DISCLAIMER** : je ne sais pas coder! Mes connaissances se limitent au CSS et HTML il y a 15 ans
    

    :ange:

    C’est là qu’est né le projet Autothèque. Oui le nom est moche. Entièrement réalisé avec ChatGPT, ce qui a pris un certain nombre d’heures avec une IA qui avait tendance à partir dans tous les sens et faire des modifications foireuses.

    But du projet :

    • Avoir une Wishlist (doc Excel dans mon NextCloud) que je remplis avec “Public, Type, Titre, Auteur, Statut”
    • Pouvoir lancer automatiquement ces DL d’ebooks chez ma copine Anna ou autre source
    • Ensuite correction des méta données automatiquement (Titre, Auteur, Série)
    • Pour finir trier les ebooks dans les bonnes bibliothèques

    Tout cela avec 0 intervention humaine mis à part le remplissage de la Wishlist.

    Dans Kavita j’ai 3 bibliothèques :

    • Adultes
    • Ados
    • Enfant

    Pour cela qu’il y a “Public” dans ma wishlist. Il y a aussi “Type”, pour “books, audiobooks, comics”. Je n’exclus pas que ça fasse aussi partie du projet par la suite. Pas utile pour le moment.

    Est-ce que ça a marché? Euh…si je dis :

    • Plusieurs crashs complets de docker :bomb_hd:
    • docker.img corrompu :bave:
    • Freeze de HDD sur mon NAS :blase:
    • Plantage complet de UnRAID (devenu tellement lent) :booo:

    Vous en dites quoi ? :pasteur:

    Je vous l’avais dit, je ne sais pas coder. Donc, ça c’était la V1. Mais avec cet échec, j’étais bien plus au clair sur les problèmes, ce qui n’a pas fonctionné et la structure. C’était trop complexe, exécution trop lente, mais beaucoup d’I/O (freeze les HDD…).

    C’est parti pour la V2 avec quelques heures passées avec ChatGPT uniquement pour définir la structure, les bases du fonctionnement et définir une ligne claire pour qu’il ne dévie plus!

    BookHub

    Est-ce que le nom existe déjà? Aucune idée :bleh:
    C’est comme qu’est né BookHub. Enfin! Il n’est pas parfait, certainement largement améliorable sur plusieurs points et finalement encore en test.
    La première étape a été de définir mon cachepool SSD comme base pour BookHub 🙂

    Ensuite voilà un résumé du projet fait pas mon nouveau pote ChatGPT.


    📚 BookHub — Automatisation complète de gestion d’eBooks

    (ShelfMark → Calibre → Kavita)


    🎯 Objectif

    BookHub est une chaîne d’automatisation personnelle permettant de :

    • partir d’une wishlist simple (Excel)
    • rechercher et télécharger automatiquement des eBooks via ShelfMark
    • normaliser les fichiers avec Calibre
    • produire une bibliothèque finale propre
    • exposer cette bibliothèque à Kavita
    • tout en limitant volontairement les I/O

    BookHub n’est pas un gestionnaire de téléchargement,
    n’est pas une bibliothèque,
    👉 c’est un orchestrateur fiable et déterministe.


    🧱 Conteneurs utilisés

    BH-Orchestrator
    → scripts Python BookHub
    → gestion des états
    → dashboard HTML

    BH-ShelfMark
    → recherche & téléchargement des eBooks

    BH-CalibreWorker
    → Calibre
    → normalisation
    → export final

    Kavita
    → lecture des bibliothèques finales


    🧠 Principes clés

    • Un script = une responsabilité
    • Un cycle = un livre maximum
    • Aucune action implicite
    • Historique conservé

    🗂️ Arborescence principale

    /BookHub
    ├── 00_Wishlist
    │   ├── wishlist.xlsx
    │   └── _snapshots/
    │
    ├── 10_Inbox
    │   ← téléchargements ShelfMark
    │
    ├── 20_Queue
    │   ├── Adultes
    │   ├── Ados
    │   └── Enfants
    │
    ├── 95_State
    │   ├── jobs.json
    │   ├── queue.json
    │   ├── dashboard.html
    │   ├── dashboard.css
    │   └── runner.lock
    │
    ├── config
    │   ├── snapshot_wishlist.py
    │   ├── read_wishlist.py
    │   ├── build_queue.py
    │   ├── resolve_and_trigger_shelfmark_v2.py
    │   ├── scan_inbox.py
    │   ├── move_to_calibre_queue.py
    │   ├── process_one_calibre.py
    │   └── runner.py
    │
    └── Ebooks
    ├── Adultes/Livres
    ├── Ados/Livres
    └── Enfants/Livres
    

    👥 Gestion par Public

    Chaque livre est classé dans un public :

    • Adultes
    • Ados
    • Enfants

    👉 Le public détermine :

    • la file d’attente
    • la bibliothèque finale
    • la bibliothèque Kavita

    📄 Wishlist (point d’entrée)

    /BookHub/00_Wishlist/wishlist.xlsx

    • simple Excel
    • aucune logique métier
    • snapshot automatique à chaque cycle

    🧾 Scripts BookHub (et leur rôle)

    1️⃣ snapshot_wishlist.py

    • fige la wishlist
    • garantit la traçabilité

    2️⃣ read_wishlist.py

    • transforme la wishlist en jobs
    • état initial : NEW

    3️⃣ build_queue.py

    • construit la queue
    • préserve l’historique

    4️⃣ resolve_and_trigger_shelfmark_v2.py

    • recherche via ShelfMark
    • déclenche le téléchargement
    • état : DOWNLOADING

    5️⃣ scan_inbox.py

    • détecte les fichiers téléchargés
    • matching tolérant
    • état : DOWNLOADED

    6️⃣ move_to_calibre_queue.py

    • déplace vers 20_Queue/{Public}
    • état : READY_FOR_CALIBRE

    7️⃣ process_one_calibre.py

    • import Calibre
    • fetch metadata
    • export final
    • nettoyage complet
    • état final : DONE

    8️⃣ runner.py

    • orchestre tous les scripts
    • lock anti double-run
    • conçu pour cron / Unraid User Scripts

    ▶️ Ordre d’exécution

    →snapshot_wishlist.py
    →read_wishlist.py
    →build_queue.py
    →resolve_and_trigger_shelfmark_v2.py
    →scan_inbox.py
    →move_to_calibre_queue.py
    →process_one_calibre.py


    📦 Bibliothèque finale (Kavita)

    /BookHub/Ebooks/{Public}/Livres

    • fichiers propres
    • métadonnées normalisées
    • source unique
    • Calibre utilisé uniquement comme outil

    🧹 Politique de nettoyage

    Après export :

    • suppression du livre dans Calibre
    • suppression du fichier source
    • aucune duplication
    • cache maîtrisé

    📊 Dashboard

    • HTML + CSS séparé
    • lecture directe de queue.json
    • responsive
    • filtres
    • états colorés
    • aucune écriture

    🚧 Évolutions possibles

    • actions depuis le dashboard
    • CSS avancé
    • statistiques
    • règles spécifiques par public

    ✅ État du projet

    ✔️ Téléchargement automatisé
    ✔️ Matching robuste
    ✔️ Normalisation Calibre
    ✔️ Export Kavita
    ✔️ Dashboard stable
    ✔️ Historique conservé


    📌 BookHub privilégie la stabilité, la compréhension et la maîtrise des flux.


    Est-ce que ça fonctionne?
    Apparemment oui 🙂
    Il y a certainement des améliorations à apporter. Ce sera son utilisation qui permettra de mettre le doigt sur ce qui peut coincer.

    Mais surtout :

    • Pas de crash complet de docker :clapclap:
    • docker.img pas corrompu :clapclap:
    • pas de freeze HDD (de toute façon c’est sur mon cachepool SSD) :clapclap:
    • Pas de plantage complet de UnRAID :clapclap:

    Je mets les livres dans ma Wishlist (xlsx) et les téléchargements se lancent petit à petit via ShelfMark et je retrouve les ebooks dans la bonne bibliothèque au final. Aucun problème d’en mettre 100, puisqu’il en gère un par run.

    Ce qu’il faudra certainement améliorer :

    • Gestion des erreurs
    • Meta données pas si propres que ça, donc classement final pas toujours parfait
    • Voir si les séries sont bien gérées

    A quoi ça ressemble ?

    Les conteneurs :
    Capture d’écran 2026-01-20 à 17.36.42.png

    La Wishlist :
    Capture d’écran 2026-01-20 à 17.37.36.png

    ShelfMark (rien de particulier) :
    Capture d’écran 2026-01-20 à 18.02.32.png

    Le dashboard pour le suivi :
    Capture d’écran 2026-01-20 à 17.38.06.png

    Capture d’écran 2026-01-20 à 17.38.41.png

    Pourquoi avoir posté tout ça? Parce que j’aurai bien aimé tomber dessus 🙂 J’ai découvert pas mal de choses intéressantes ici, ce qui m’a permis de lancer certaines choses ou parfaire certains services. Et ce n’est que le début.

    Précisions :

    • Un livre est ajouté dans la wishlist et lorsque statut passe en “A télécharger”, ça lance l’automatisation, dans le cas contraire -> ignoré
    • Pas de retour dans la wishlist, sert uniquement de base
    • Le traitement ensuite pas le conteneur orchestrateur a volontairement des limites, 1 livre par lancement (cron via User Script). Cela permet d’éviter des problèmes d’I/O trop importants. Pour le moment en tout cas.
    • Pour le moment le dashboard ne permet pas encore de piloter quoi que ce soit. J’aimerai que ce soit le cas, comme supprimer un livre de la wishlist (suite à une erreur)
    • Calibre est piloté vis des scripts, donc pas grand chose à configurer de son côté.

    C’est quoi la suite ?
    Je ne sais pas trop. Des améliorations de toute façon pour que ça demande le moins de maintenance possible et simplement profiter des ebooks 🙂

    1 réponse Dernière réponse
    2
  • Violenceundefined Violence marked this topic as a regular topic
  • Networldundefined Networld marked this topic as a question
  • Networldundefined Hors-ligne
    Networldundefined Hors-ligne
    Networld Membre
    écrit dernière édition par Networld
    #2

    @Violence C’est mieux comme ça 🙂 ?

    1 réponse Dernière réponse
    2
  • Violenceundefined Violence marked this topic as a regular topic
  • Aeryaundefined Hors-ligne
    Aeryaundefined Hors-ligne
    Aerya Seeder Geek Gamer Torrent user GNU-Linux User Usenet
    écrit dernière édition par
    #3

    Salut,

    Joli projet 🙂
    Pas client, notamment parce que j’ai jamais fait de liste Excel mais j’ai utilisé Readarr quelques temps et testé Shelfmark et Charptarr mais je vise plus les comics et BDs que les livres (en autoDL), du coup rien trouvé qui réponde à mes besoins.

    Pourquoi préférer un fichier Excel comme wishlist plutôt que des classiques Goodreads ou Listy ?

    Archlinux fanboy | rClone & datahoarder | https://upandclear.org

    1 réponse Dernière réponse
    0
  • Networldundefined Hors-ligne
    Networldundefined Hors-ligne
    Networld Membre
    écrit dernière édition par
    #4

    Pour que ça reste au maximum en local 🙂
    J’ai pas encore testé pour les comics et les BD, mais ça doit fonctionner pareil. En fait, pas tout à fait vrai, dans la liste il y avait 2 BD et elles ont été téléchargées.
    Comme ce sont des scripts qui pilotent Calibre, c’est assez simple de router un type de contenu dans un dossier spécifique ensuite. J’ai inclus un type “comics” dans ce sens.

    1 réponse Dernière réponse
    0






©2025 planete-warez.net
L'actualité Warez & underground en continu
Icône café Faire un don
Politique   RGPD  @dev  Sudonix
    • Se connecter

    • Vous n'avez pas de compte ? S'inscrire

    • Connectez-vous ou inscrivez-vous pour faire une recherche.
    • Premier message
      Dernier message
    0
    • Catégories
      • Toutes les catégories
      • Planète Warez
        Présentations
        Aide & Commentaires
        Réglement & Annonces
        Tutoriels
      • IPTV
        Généraliste
        Box
        Applications
        VPN
      • Torrent & P2P
      • Direct Download et Streaming
      • Autour du Warez
      • High-tech : Support IT
        Windows, Linux, MacOS & autres OS
        Matériel & Hardware
        Logiciel & Software
        Smartphones & Tablettes
        Graphismes
        Codage : Sites Web, PHP/HTML/CSS, pages perso, prog.
        Tutoriels informatiques
      • Culture
        Actualités High-Tech
        Cinéma & Séries
        Sciences
        Musique
        Jeux Vidéo
      • Humour & Insolite
      • Discussions générales
      • Espace détente
      • Les cas désespérés
    • Récent
    • Populaire
    • Résolu
    • Non résolu