Skip to content

Add Audiobookshelf integration and ebook reader support#1

Open
serrebi wants to merge 1 commit intoM-Rajabi-dev:mainfrom
serrebi:feature/audiobookshelf-ebook-support
Open

Add Audiobookshelf integration and ebook reader support#1
serrebi wants to merge 1 commit intoM-Rajabi-dev:mainfrom
serrebi:feature/audiobookshelf-ebook-support

Conversation

@serrebi
Copy link
Copy Markdown

@serrebi serrebi commented Mar 14, 2026

Summary

This PR adds full Audiobookshelf + ebook support to AudioShelf.

I added support for Audiobookshelf server integration, uploading books to it, and tracking progress along with that.
I also added ebook reading support (multiple formats) with local and Audiobookshelf progress sync.

Key additions:

  • Audiobookshelf API client integration (libraries/items, chapters, progress, upload)
  • Stream/import from Audiobookshelf into AudioShelf
  • Upload local books to Audiobookshelf when added, with optional configured target library/folder
  • Link local uploaded books back to Audiobookshelf items so chapters/progress sync work for local+remote modes
  • Chapter UX improvements: chapter list dialog, pre-play chapter selection, Alt+C support in player flow
  • Dedicated AudioBookshelf settings tab and default library behavior when configured
  • Ebook reader support (EPUB/PDF/TXT/HTML/MD and more via parsers), reading progress save/sync
  • Tests for Audiobookshelf client, sync helpers, link resolver, ebook parsing, media type detection, DB helper behavior, and default ABS library selection

Why

This makes AudioShelf useful in both standalone and self-hosted workflows:

  • You can keep media local, stream from server, or do both
  • Chapters and progress stay consistent with Audiobookshelf
  • Ebooks are first-class, not audio-only

Testing

  • python -m unittest discover -s tests -p "test_*.py"
  • Ran and validated chapter/progress behavior against a live Audiobookshelf server
  • Verified upload flow, default library selection, and chapter list behavior

Note from contributor

I vibe coded this, but I tested it and it seems to work fine.

Add end-to-end Audiobookshelf integration and ebook reading support.

- add Audiobookshelf API client for library import, streaming metadata, uploads, chapters, and progress sync
- add dedicated AudioBookshelf settings tab with server/key and upload defaults
- support streamed Audiobookshelf books and local upload+link resolution for chapter/progress sync
- add chapter list UX (context action, playback dialog, Alt+C) and chapter navigation shortcuts
- add ebook reader support with local parsing and Audiobookshelf progress synchronization
- add tests for Audiobookshelf client, link resolver, ebook parsing, media type detection, db helpers, playback sync, and default ABS library selection

Co-authored-by: Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant