Skip to content

🦜 Listen to your audiobooks and podcasts from your terminal. TUI Audiobookshelf client for Linux and macOS.

License

Notifications You must be signed in to change notification settings

AlbanDAVID/Toutui

GitHub release AUR Version Release

🦜 Toutui: A TUI Audiobookshelf client for Linux and macOS

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

🎬 Demo

🎨 Explore and try various themes here.

✨ Features

Cross-platform: Tux (Linux) Linux and Apple (macOS) macOS
Lightweight & Fast: A minimalist terminal user interface (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. Explore and try various themes here.

📰 Media

Korben Featured on Korben, a well-known French tech blog covering open source and technology.

🛠️ Roadmap

Short-term Goals

  • Since this is a beta version, the main focus is on tracking and fixing bugs.
  • Improve the design of the integrated player.
  • Currently working on the next release: [v1.0.0-stable].

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

🐛 Issues

For any issues, check first the wiki and issues. Otherwise, open a new one.

🤝 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.

🔁 Branching workflow

This project follow this branching workflow.

🎨 UI

Explore and share themes here.
The font and emojis may vary depending on the terminal you are using.
To ensure the best experience, it's recommended to use Kitty or Alacritty terminal.

🚨 Installation Instructions

Warning

  • This is a beta app, please read this.
  • For any issues, check first the wiki and issues. Otherwise, open a new one.

(Arch Linux) Arch Linux

GitHub release AUR Version

Installation and initial configuration

yay -S toutui
mkdir -p ~/.config/toutui
cp /usr/share/toutui/config.example.toml ~/.config/toutui/config.toml
# Token encryption in the database (NOTE: replace 'secret'):
echo 'TOUTUI_SECRET_KEY=secret' >> ~/.config/toutui/.env

Update

yay -S toutui

Uninstall

yay -R toutui-bin

⚡ Easy installation

Run the following in your terminal, then follow the on-screen instructions:

GitHub release

bash -c 'expected_sha256="b5c41bcd3c480fd2ca6ec0031ccecf2cf7cf4ae01f591cad64a320fa7d72331d" export expected_sha256 tmpfile=$(mktemp) && curl -LsSf https://github.com/AlbanDAVID/Toutui/raw/stable/hello_toutui.sh -o "$tmpfile" && bash "$tmpfile" install && rm -f "$tmpfile"'

Update

Important

toutui --update is not working. You can do this instead:

bash -c 'expected_sha256="b5c41bcd3c480fd2ca6ec0031ccecf2cf7cf4ae01f591cad64a320fa7d72331d" export expected_sha256 tmpfile=$(mktemp) && curl -LsSf https://github.com/AlbanDAVID/Toutui/raw/stable/hello_toutui.sh -o "$tmpfile" && bash "$tmpfile" update && rm -f "$tmpfile"'

Quit the app and run the following in your terminal

bash -c 'expected_sha256="b5c41bcd3c480fd2ca6ec0031ccecf2cf7cf4ae01f591cad64a320fa7d72331d" export expected_sha256 tmpfile=$(mktemp) && curl -LsSf https://github.com/AlbanDAVID/Toutui/raw/stable/hello_toutui.sh -o "$tmpfile" && bash "$tmpfile" update && rm -f "$tmpfile"'

Uninstall

Important

toutui --uninstall is not working. You can do this instead:

bash -c 'expected_sha256="b5c41bcd3c480fd2ca6ec0031ccecf2cf7cf4ae01f591cad64a320fa7d72331d" export expected_sha256 tmpfile=$(mktemp) && curl -LsSf https://github.com/AlbanDAVID/Toutui/raw/stable/hello_toutui.sh -o "$tmpfile" && bash "$tmpfile" uninstall && rm -f "$tmpfile"'

Quit the app and run the following in your terminal

bash -c 'expected_sha256="b5c41bcd3c480fd2ca6ec0031ccecf2cf7cf4ae01f591cad64a320fa7d72331d" export expected_sha256 tmpfile=$(mktemp) && curl -LsSf https://github.com/AlbanDAVID/Toutui/raw/stable/hello_toutui.sh -o "$tmpfile" && bash "$tmpfile" uninstall && rm -f "$tmpfile"'

Notes

Files installed:

In /usr/local/bin (option 1, from install script) or ~/.cargo/bin (option 2, from install script) or /usr/bin (yay) :

  • toutui - The binary file.

In ~/.config/toutui for Linux or ~/Library/Preferences for macOS:
Note: This is the default path if XDG_CONFIG_HOME is empty.

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

In ~/.local/share/applications (option 1, from install script) or /usr/share/applications (yay) for Linux:

  • toutui.desktop - Config file to launch Toutui from a launcher app.

In /usr/share/toutui (yay):

  • config.example.toml - Configuration file.

Install from source

Warning

This is a beta app, please read this.

Requirements

  • Rust
  • Netcat
  • VLC

GitHub release

Note: main might be unstable. Prefer git clone --branch stable --single-branch https://github.com/AlbanDAVID/Toutui if you want to have the last stable release.

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

Update

When a new release is available, follow these steps:

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

🦜 Listen to your audiobooks and podcasts from your terminal. TUI Audiobookshelf client for Linux and macOS.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors 4

  •  
  •  
  •  
  •  

Languages