Aller au contenu principal
Kgaut's links

Navigation principale

  • Accueil
Menu du compte de l'utilisateur
  • Se connecter

Fil d'Ariane

  1. Accueil

GitHub - Donald-Win/abs-tidy-library: A web UI for organising yourAudiobookshelf library.

Par Anonyme (non vérifié) , 2 mars 2026
URL
GitHub - Donald-Win/abs-tidy-library: A web UI for organising yourAudiobookshel…
body
Donald-Win / abs-tidy-library Public
  • Notifications You must be signed in to change notification settings
  • Fork 0
  • Star 22

A web UI for organising yourAudiobookshelf library.

22 stars 0 forks Branches Tags Activity
Star
Notifications You must be signed in to change notification settings
  • Code
  • Issues 0
  • Pull requests 0
  • Actions
  • Projects
  • Security 0
  • Insights
Additional navigation options
  • Code
  • Issues
  • Pull requests
  • Actions
  • Projects
  • Security
  • Insights

Donald-Win/abs-tidy-library

BranchesTags
Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
37 Commits
.github/workflows
.github/workflows
 
 
app
app
 
 
.gitignore
.gitignore
 
 
Dockerfile
Dockerfile
 
 
README.md
README.md
 
 
compose.yml
compose.yml
 
 
requirements.txt
requirements.txt
 
 

Repository files navigation

  • README

📚 ABS Tidy Library

A web UI for automatically organising your Audiobookshelf library. Reads your metadata directly from ABS, renames audio files consistently, and reorganises your folders into a clean hierarchy — all with a live preview before anything is touched.

Docker Pulls Build Status


✨ What It Does

  • Scans your ABS library and shows statistics — books, authors, series, total play-time and size
  • Proposes changes as diff cards showing exactly what folder and file names will change
  • Dry Run mode simulates every move with zero changes made to disk
  • Selective apply — tick the books you want moved instead of doing them all at once
  • Rollback — one click to undo the last apply run, even after a page reload
  • Collision detection — warns you before applying if two books would resolve to the same path
  • Cleans empty directories left over after moves
  • Persistent settings — naming templates survive container restarts

🚀 Quick Start

1. Get the compose file

curl -O https://raw.githubusercontent.com/Donald-Win/abs-tidy-library/main/compose.yaml

2. Edit the three required values

volumes:
  - /your/audiobooks:/library   # same host path as your ABS compose (see note below)
  - /any/config/folder:/config  # any persistent folder for settings

environment:
  ABS_SERVER_URL: "http://192.168.1.100:13378"   # your server's LAN IP
  ABS_TOKEN:      "your-api-key-here"             # from ABS → Settings → API Keys

3. Start

docker compose up -d

Open http://your-server:5050 — if your env vars are set it will connect automatically. Hit Scan Library.


⚠️ Common Gotchas

Volume path must match your ABS setup The left side of the audiobooks volume mount must point to the same host directory that ABS is already serving. The right side (container path) can be anything, but must match LIBRARY_PATH.

# Your ABS compose might have:
- /media/Audiobooks:/audiobooks

# So this tool needs the same left side:
- /media/Audiobooks:/library

Use your LAN IP, not localhost Even if ABS is running on the same machine, containers can't reach each other via localhost or 127.0.0.1. Use the actual LAN IP of your server (e.g. 192.168.1.100).

The API key needs to be from an admin account The tool reads library metadata and triggers rescans. A non-admin token won't have access to do this.

LIBRARY_PATH must match your volume mount If you mount as :/library, set LIBRARY_PATH: "/library". They must agree.

The config mount must be a folder, not a file Docker will create it automatically if it doesn't exist yet, as long as the path doesn't conflict with an existing file.


⚙️ Configuration Reference

Variable Description
ABS_SERVER_URL Your ABS server address — use LAN IP, not localhost
ABS_TOKEN Admin API key from ABS → Settings → API Keys
ABS_LIBRARY_ID Optional — auto-selects a library. Find it in ABS → Settings → Libraries → click your library → copy the ID from the URL
LIBRARY_PATH Path inside the container where books are mounted. Must match your volume mount
CONFIG_PATH Where naming config is saved. Default: /config/naming.json

🗂️ Naming Templates

Templates are configured in the Settings drawer and save automatically. Available tokens:

Token Example
{Author} Brandon Sanderson
{Title} The Final Empire
{Series} Mistborn
{Series-Index} 01
{Narrator} Michael Kramer
{Year} 2006
{Part-Index} 02
{Part-Total} 12
{Subtitle} {Publisher} {Genre} {Language} {ISBN} {ASIN} if set in ABS

Default output looks like:

Brandon Sanderson/
├── The Way of Kings/
│   └── Brandon Sanderson - The Way of Kings.m4b
└── Mistborn/
    ├── 01 The Final Empire/
    │   └── Brandon Sanderson - Mistborn 01 - The Final Empire.m4b
    └── 02 The Well of Ascension/
        ├── Brandon Sanderson - Mistborn 02 - The Well of Ascension (Part 01 of 08).m4b
        └── Brandon Sanderson - Mistborn 02 - The Well of Ascension (Part 02 of 08).m4b

🔒 Recommended Workflow

Nothing is moved until you explicitly click Apply.

  1. Scan — reads metadata from ABS, builds the change plan
  2. Review — inspect every proposed change in the diff cards
  3. Dry Run — simulates all moves and logs them, nothing touches disk
  4. Apply (or Apply Selected for a subset)
  5. Rollback if anything looks wrong — reverts all files from the last apply

🔧 Permissions

If you hit permission errors, add a user line matching your host user:

services:
  abs-tidy-library:
    user: "1000:1000"   # run `id` on your host to find your UID:GID

🔄 Updating

docker compose pull && docker compose up -d

📄 License

MIT — see LICENSE.

About

A web UI for organising yourAudiobookshelf library.

Resources

Readme

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

22 stars

Watchers

2 watching

Forks

0 forks
Report repository

Releases

2 tags

Packages 0

 
 
 

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

  • Python 50.6%
  • HTML 47.1%
  • Dockerfile 2.3%
Résumé
A web UI for organising yourAudiobookshelf library. - Donald-Win/abs-tidy-library

Mots clés

activitypubAndroidAnniversaireAppauvergnebaladebatchcachecaddyCICultureDaronnadeddevdebiandockerdroneDrupalfedorafirefoxgitgithubgitlabgitlab-cigooglehome-assistanthomeserverjardinagejellyfinkoboLecturelinuxmigrate APIOrchestrationoutilphpphpunitplexrandonnéeselfhostingsportSpotifysymfonysécuritéTestsvinwallpaper
Propulsé par Drupal