Skip to content

AlbanDAVID/Toutui

๐Ÿฆœ Toutui: A TUI Audiobookshelf client for Linux

In French, being "tout ouรฏe" (toutui) means being all ears.

๐Ÿš€ Be toutui and enjoy audiobookshelf from your terminal!

๐ŸŽฌ Demo

โœจ Features

โœ… Lightweight & Fast โ€“ A minimalist, terminal-based UI (TUI) written in Rust ๐Ÿฆ€
โœ… Supports Books & Podcasts โ€“ Enjoy both audiobooks and podcasts
โœ… Sync Progress & Stats โ€“ Keep your listening progress in sync
โœ… Streaming Support โ€“ Play directly without downloading
โœ… Customizable Color Theme โ€“ A config file will allow you to customize the color theme
โœ… VLC Command Line Option โ€“ By default, the VLC GUI will be launched, but you can choose, into the config file, to use VLC in the command line (cvlc)

๐Ÿ› ๏ธ Roadmap

Short-term Goals

  • Since this is a beta version, the main focus is on tracking and fixing bugs.
  • Implementation of an integrated media player
  • Currently working on the next release: v0.3.0-beta

Mid-term Goals

  • CI/CD Implementation
  • Add future features described bellow.

๐Ÿ”ฎ Future features

Here are some features that could be added in future releases:

  • Ability to add new podcasts from the app
  • Add stats
  • Offline mode

โš ๏ธ Caution: Beta Version

This beta app is still in heavy development and contains bugs.
โ—Please check here for known bugs especially MAJOR BUGS before using the app, so you can use it with full awareness of any known issues.
If you encounter any issues that are not yet listed in the Issues section or into known bugs, please open a new issue to report them.

๐Ÿ” Although it's a beta version, you can use this app with minimal risk to your Audiobookshelf library.
At worst, you may experience sync issues, but there is no risk of data loss, deletion, or irreversible changes (API is just used to retrieve books and sync them).

๐Ÿ“ Notes

๐Ÿค Contributing

Do not hesitate to contribute to this project by submitting your code, ideas, or feedback. Please make sure to read the contributing guidelines first.

๐Ÿ macOS

The app is developed and tested on Linux distributions, so it may be difficult to use on macOS. However, we are working to make it compatible with macOS. Known issues:

  • cvlc option is not available.

๐ŸŽจ UI

The font and emojis may vary depending on the terminal you are using. To ensure the best experience, it's recommended to use terminals that support emoji rendering properly (e.g., Kitty, Alacritty).

๐ŸŽง Using cvlc

  • Type help to see commands
  • When using cvlc (command-line VLC), make sure to use the shutdown command when you want to quit the listening session. This helps ensure that your books are successfully synced and prevents any potential issues.

๐Ÿšจ Installation Instructions

โš ๏ธ If you follow all the instructions but installation fails, please open an installation issue.

Automatic install

โ—It's quite challenging to create a script that is exhaustive for all distributions and OS. If you encounter difficulties, leave an installation issue and install the app manually.
โ—This is a beta app, please read this.
โ—macOS user: read this.

Install

git clone https://github.com/AlbanDAVID/Toutui
cd Toutui/
chmod +x hello_toutui.sh
./hello_toutui.sh install

Once the installation is complete, type toutui in your terminal to launch the app.

Update

The script will detect if a new release is available and install it if any.

./hello_toutui.sh update

Notes

Files installed:

in /usr/bin

  • toutui โ€” The binary file (you can execute it from anywhere).

in ~/.config/toutui

  • .env โ€” Contains the secret key.
  • config.toml โ€” Configuration file.
  • toutui.log โ€” Log file.
  • db.sqlite3 โ€” SQLite database file.

For Arch Users

๐Ÿšง Soon

Git

โ—This is a beta app, please read this.
โ—macOS user: read this.

Requirements

  • Rust
  • VLC
  • SQLite3
  • libsqlite3-dev (for some OS, Debian for example)
  • libssl-dev
  • Your terminal must support emojis
  • Optional, only if you use cvlc:
  • Netcat
  • Kitty terminal emulator

โš ๏ธ If you had to install a package that is not listed above, please open an installation issue.

Install

git clone https://github.com/AlbanDAVID/Toutui
cd Toutui/
mkdir -p ~/.config/toutui
cp config.example.toml ~/.config/toutui/config.toml

Token encryption in the database (NOTE: replace secret)

echo TOUTUI_SECRET_KEY=secret >> ~/.config/toutui/.env
cargo run --release

To install in a custom location, provide the path like this:

./hello_toutui.sh install /usr/bin

Update

When a new release is available, follow these steps:

The script will detect if a new release is available and install it if any.

chmod +x hello_toutui.sh
./hello_toutui.sh update

OR

git pull https://github.com/AlbanDAVID/Toutui
cargo run --release

Notes

Exec the binary:
cd target/release
./Toutui
Files installed:

After installation, you will have the following files in ~/.config/toutui

  • .env โ€” Contains the secret key.
  • config.toml โ€” Configuration file.
  • toutui.log โ€” Log file.
  • db.sqlite3 โ€” SQLite database file.

About

๐Ÿฆœ Toutui is a TUI Audiobookshelf client for Linux.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages