Toutui - Écoutez vos livres audio et podcasts depuis votre terminal

par Korben ✨ -

Si vous passez vos journées, le nez dans un terminal, ce serait-y pas trop cool de pouvoir également y écouter vos livres audio et vos podcasts ?

On évite ainsi les interfaces flashy, les notifs et autres animations inutiles et on se concentre sur l’essentiel, à savoir la simplicité monacale du terminal. Bref, si vous êtes de ceux qui pensent qu’une journée sans taper une commande est une journée perdue, il faut que je vous présente Toutui !

Toutui (“être tout ouïe”) est un client en ligne de commande pour Audiobookshelf, le gestionnaire open-source de bibliothèque audio. Pour ceux qui ne connaîtraient pas encore Audiobookshelf, imaginez un Plex ou un Jellyfin, mais exclusivement dédié aux livres audio et podcasts, que vous pouvez auto-héberger. Codé en Rust, ce client TUI (Terminal User Interface) permet d’accéder à vos livres audio et podcasts directement depuis votre terminal, sans jamais quitter votre workflow de dev ou d’administration système.

L’application est actuellement en version beta, mais est déjà parfaitement fonctionnelle. Elle s’installe facilement sous Linux et macOS et a plein de super avantages :

  • Légèreté extrême comparée aux interfaces web ou applications lourdes (moins de 10 Mo en mémoire contre 100+ Mo pour un navigateur)
  • Rapidité d’exécution (démarrage en moins d’une seconde contre 5-10 secondes pour l’interface web)
  • Intégration parfaite dans un workflow 100% clavier
  • Possibilité d’utilisation sur des serveurs distants via SSH
  • Conservation des ressources système (idéal pour les machines anciennes ou peu puissantes)

Soutenir Korben

Toutui s’inscrit donc dans cette tendance du grand retour des interfaces TUI modernes, comme Spotify TUI, broot, lazygit ou btop, qui prouvent une fois encore que le terminal n’est pas seulement pour les nerds nostalgiques qui ont des fleurs dans la barbe.

Sous ses airs minimalistes, Toutui cache ainsi tout un tas de fonctionnalités comme moi : solides !

  • Gestion complète des livres audio ET des podcasts
  • Synchronisation du progrès de lecture avec le serveur Audiobookshelf
  • Streaming direct (pas besoin de télécharger les fichiers)
  • Contrôles de lecture avancés (chapitres, vitesse de lecture, volume)
  • Interface personnalisable via fichier de configuration
  • Recherche rapide dans votre bibliothèque

Côté technique, l’application est un petit bijou technique qui pourrait vous inspirer :

  • Écrite en Rust pour des performances optimales et une consommation mémoire réduite
  • Utilise le framework ratatui pour l’interface TUI
  • S’appuie sur VLC comme moteur de lecture
  • Stocke ses données dans une base SQLite locale
  • Communique avec l’API Audiobookshelf pour la synchronisation

Si vous jetez un œil au GitHub du projet, vous constaterez que le mainteneur, Alban DAVID, a clairement indiqué qu’il avait créé Toutui pour apprendre le Rust. Et franchement, pour un projet d’apprentissage, le niveau de finition est impressionnant.

Soutenir Korben

Pour utiliser Toutui, voici les prérequis :

  • Git
  • Rust (installé automatiquement si absent)
  • VLC (installé automatiquement si absent)
  • SQLite (installé automatiquement si absent)
  • Un serveur Audiobookshelf configuré

Ensuite, lancez les commandes suivantes :

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

Le script s’occupera automatiquement de :

  • Vérifier et installer les dépendances requises (VLC, netcat, SQLite, etc.)
  • Compiler l’application depuis les sources
  • Placer le binaire dans votre PATH (/usr/bin pour Linux, /usr/local/bin pour macOS)
  • Et de créer le répertoire de configuration avec les fichiers nécessaires

Une fois installé, il suffira alors de taper toutui dans votre terminal pour lancer l’application. À la première exécution, vous serez invité à saisir l’adresse de votre serveur Audiobookshelf ainsi que vos identifiants.

La personnalisation se fait via le fichier ~/.config/toutui/config.toml (Linux) ou ~/Library/Preferences/config.toml (macOS).

Soutenir Korben

Pour les utilisateurs macOS, assurez-vous simplement que Homebrew est installé au préalable, le script s’occupera du reste.

Notez que les contrôles clavier sont logiques et faciles à mémoriser :

  • Espace pour play/pause
  • p/u pour avancer/reculer
  • P/U pour chapitre suivant/précédent
  • o/i pour augmenter/diminuer le volume
  • O/I pour augmenter/diminuer la vitesse de lecture
  • Tab pour basculer entre les vues
  • / pour rechercher
  • R pour rafraîchir les données

Le temps de chargement des audios est quasi instantané, même avec une bibliothèque conséquente et la synchro avec le serveur se fait en arrière-plan sans jamais interrompre l’expérience d’écoute. Un truc particulièrement appréciable c’est la conservation de la progression entre les sessions d’écoute. Si je quitte l’app en plein milieu d’un chapitre, je me retrouve au même point de l’écoute dès que je reviens dedans, et cela même si entre-temps j’utilise l’application web ou mobile d’Audiobookshelf.

Pour les fans de podcasts, la navigation entre les épisodes est tout aussi fluide que pour les livres audio. On navigue facilement dans les saisons et épisodes, et les métadonnées (titre, description, durée) sont clairement affichées.

Soutenir Korben

Bref, que vous soyez un adepte d’Audiobookshelf à la recherche d’une expérience plus légère ou un amateur de CLI curieux d’étendre votre arsenal d’applications terminal, Toutui mérite le coupe d’oeil !

Bravo à Alban pour cette réalisation !