# auditui A terminal-based user interface (TUI) client for Audible, written in Python 3 : listen to your audiobooks (even offline), browse and manage your library, and more! Currently, the only available theme is Catppuccin Mocha, following their [style guide](https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md), as it's my preferred theme across most of my tools. Look at the [roadmap](#roadmap) for more details. It's still a work in progress, so expect bugs and missing features. ## How to run This project uses [uv](https://github.com/astral-sh/uv) for dependency management. ```bash # install dependencies (creates .venv) $ uv sync # run the TUI $ uv run main.py ``` (`stats.py` is a playground for the stats functionality) Please also note that as of now, you need to have [ffmpeg](https://ffmpeg.org/) installed to play audio files. ### Bindings | Key | Action | | ------------ | -------------------------- | | `?` | Show help screen | | `n` | Sort by name | | `p` | Sort by progress | | `a` | Show all/unfinished | | `enter` | Play the selected book | | `space` | Pause/resume the playback | | `left` | Seek backward 30 seconds | | `right` | Seek forward 30 seconds | | `ctrl+left` | Go to the previous chapter | | `ctrl+right` | Go to the next chapter | | `d` | Download/delete from cache | | `q` | Quit the application | ## Roadmap - [x] list your library - [x] list your unfinished books with progress information - [x] play/pause a book - [x] catppuccin mocha theme - [x] print chapter and progress in the footer of the app while a book is playing - [x] chapter progress bar in footer - [x] add a control to jump 30s earlier/later - [x] add control to go to the previous/next chapter - [x] save/resume playback of a book from the last position, regardless of which device was used previously - [x] download/remove a book in the cache without having to play it - [x] add a help screen with all the keybindings - [ ] increase/decrease reading speed - [ ] mark a book as finished or unfinished - [ ] get your stats in a separated pane - [ ] filter books on views - [ ] search in your book library And after that: - [ ] search the marketplace for books - [ ] add a book in your wishlist All of this, and of course: - [ ] installation setup - [ ] build a decent TUI interface using [Textual](https://textual.textualize.io/) - [ ] code cleanup / organization ## Auth / credentials Login is handled and credentials are stored in `~/.config/auditui/auth.json`. OTP is supported if you use a two-factor authentication device. ## License This project is licensed under the GPLv3+ License. See the [LICENSE](LICENSE) file for details.