An open API service indexing awesome lists of open source software.

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.

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!**

![๐ŸŽฌ Demo](assets/demo_1.gif)

## โœจ 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.