lectern/lectern.md
2026-01-21 15:21:43 -08:00

5.4 KiB

Lectern

An app to manage individual audiobooks.

Once app is opened, user can drag audiobook onto app, or click on a button to open xdg portal (File chooser).

Audio books come in a dir with many mp3's, aac, wav, flac etc. or as m4b files

Once audiobook is selected/chosen in the app. User can edit the metadata manully, or search a providor for metadata then edit it. Chnage cover, add/edit chapters

Then save it all as a m4b file with everything included in one file.

Metadata

Search by using title, author or the ASIN or ISBN number (may have to choose region)

Possible search providers audible.com Google Books iTunes Open Library FantLab.ru audible.ca

Example of possible metadata fields to be filled out by search, or audible. Title Subtitle Author(s) Series (and order 1, 2, 3, 3.5, 4, etc) Publich Year Description Genre Tags Narrator(s) ISBN ASIN Publisher Language Explicit (yes/no) Abridged (yes/no)

See image meta-data-form.jpg

Cover (optional)

User can manually choose a book cover, or use a providor.

Search,download and choose cover art from provider(s) audible.com Google Books iTunes Open Library FantLab.ru AudiobookCovers.com

Search by using one or more of the following fields Title ASIN or ISBN Author

Chapters (Optional)

Attempt to map chapters to the book

Have button to get chapters from providor (Audible.com or Audible.ca). If there are other possible providers let me know.

Provide option to set chapter titles from source files (if they are named like "Chapter 1.mp3", "Chapter 2.mp3", etc)

Example 1 - if there are 70 mp3's, and 70 chapters assume each file is a chapter and ask user to accept

Example 2 - user choose audiobook that is a m4b file provider has a chapter list with time stamps. Ask user to accept

Allow user to edit chapters manually, even after looking up from provider. Like Audiobookshelf web client. User can do the following

Add, edit, remove chapters Editing chapters includes editing chapter title. and the start timestamp of the chapter. Global shift times of all chapters lock chpters (this makes chapter non editable from all actions including global time shift) shift times of individual chapters by -1 or +1, or just edit the start time. Play the chapter. So user knows the mapping is correct.

See image chapters.jpg The icons to the right of the title fields in the image. From left to right "Lock Chapter" "Remove Chapter" "Insert Chapter Below" "Play Chapter"

Conversion

Once user is satisfied with metadata, cover, chapter, they can create a m4b file where all the selected info will be included.

If Local Library value (see settings) is set automatically populate where file will be saved

If Local Library value is NOT set force user to choose where to save file (xdg portal file chooser). default save filename {Title}.m4b

Generate m4b file (include everything we added)

Settings

Local Library (optional)

Allow user to state where they wants to store audiobooks on their local system. If value exists m4b files are converted there

Media Management

Where and how do we save the file?

If Local Library value is set

How does user want to store files on their system?

{Author} - Author/narrator name {Series} - Series name {Title} - Book title {SeriesNumber} - Position in series {DiskNumber} or {DiskNumber:00} - Disk/part number (00 = zero-padded) {ChapterNumber} or {ChapterNumber:00} - Chapter number (00 = zero-padded) {Year} - Publication year {Quality} - Audio quality

Examples of how user can set it up in Lectern {Path to Local Library}/{Author}/{Title}.m4b {Path to Local Library}/{Author}/{Series}/{Title}-Book {SeriesNumber}.m4b {Path to Local Library}/{Author}/{Series}/Book {SeriesNumber}- {Title}.m4b

Example of LOTR "The Fellowship of the Ring" & "The Hobbit" {Path to Local Library}/{Author}/{Series}/{SeriesNumber}- {Title}.m4b {Path to Local Library}/J.R.R. Tolkien/The Lord of the Rings/1- The Fellowship of the Ring.m4b {Path to Local Library}/J.R.R. Tolkien/The Lord of the Rings/0.5- The Hobbit.m4b

Audiobookshelf settings (optional)

If set, once m4b conversion is completed the book is uploaded to AudioBookshelf server

Plan

01 - Architecture 02 - UI 03 - Metadata 04 - Conversion 04 - play Chapters 05 - ffprobe-files 06 - ABS-logic 07 - covers 08 - baking

Look

I want to add tabs so the window is not so congested

Meta Data (Manually edit) Cover (Manually upload or choose cover from providor) Chapters (Manually edit or match to providor) Match (search providor to get metadata and cover art) Convert (click to start conversion)

Progress

The core functionality of Lectern is now implemented, featuring a tabbed interface for organizing the audiobook creation workflow.

  • UI Tabs: Implemented Metadata, Cover, Chapters, and Convert tabs.
  • Metadata: Integrated Audible API for searching book details.
  • Cover Art: Async loading of cover art from search results.
  • Chapters: Functional chapter editor with inline editing, locking, and global time shifts.
  • Conversion: M4B generation using FFmpeg with embedded chapters and tags.
  • Publishing: Direct upload to Audiobookshelf with library scan trigger.

Progress Details