https://github.com/albandavid/toutui
๐ฆ Toutui is a TUI Audiobookshelf Client for Linux.
https://github.com/albandavid/toutui
audiobooks audiobookshelf linux-app podcast ratatui rust tui
Last synced: about 2 months ago
JSON representation
๐ฆ Toutui is a TUI Audiobookshelf Client for Linux.
- Host: GitHub
- URL: https://github.com/albandavid/toutui
- Owner: AlbanDAVID
- License: gpl-3.0
- Created: 2025-01-18T16:40:49.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-28T11:49:04.000Z (about 2 months ago)
- Last Synced: 2025-03-02T03:55:52.279Z (about 2 months ago)
- Topics: audiobooks, audiobookshelf, linux-app, podcast, ratatui, rust, tui
- Language: Rust
- Homepage:
- Size: 3.44 MB
- Stars: 32
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฆ 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!**

## โจ 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`)## ๐ฎ Future Features
๐ง **Soon: Check the TODO list for upcoming improvements.**## โ ๏ธ Caution: Beta Version
This beta app is still **hardly in development and contain bugs**.
โPlease check [here](https://github.com/AlbanDAVID/Toutui/blob/main/known_bugs.md) 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](https://github.com/AlbanDAVID/Toutui/blob/main/known_bugs.md), 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
### ๐ฌ **Discussion**
For general feedback/questions than can't be in issues, use [discussions](https://github.com/AlbanDAVID/Toutui/discussions).### ๐ **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`**
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](https://github.com/AlbanDAVID/Toutui?tab=readme-ov-file#git).
โThis is a beta app, please read [this](https://github.com/AlbanDAVID/Toutui?tab=readme-ov-file#%EF%B8%8F-caution-beta-version).
โmacOS user: read [this](https://github.com/AlbanDAVID/Toutui/blob/main/README.md#-macos).#### **Install**
```bash
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.
```bash
./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](https://github.com/AlbanDAVID/Toutui?tab=readme-ov-file#%EF%B8%8F-caution-beta-version).
โmacOS user: read [this](https://github.com/AlbanDAVID/Toutui/blob/main/README.md#-macos).#### **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**
```bash
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`)
```bash
echo TOUTUI_SECRET_KEY=secret >> ~/.config/toutui/.env
``````bash
cargo run --release
```To install in a custom location, provide the path like this:
```console
./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.
```bash
chmod +x hello_toutui.sh
./hello_toutui.sh update
```
OR
```bash
git pull https://github.com/AlbanDAVID/Toutui
cargo run --release
```#### **Notes**
##### Exec the binary:
```bash
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.