Karaoterm

Petit projet d’une demi-journée, Karaoterm vient du constat qu’il ne semble pas exister de quoi lire un fichier de sous-titres au format ''.srt''. En effet, la question s’est posée lorsque quelqu'un a demandé en ligne s’il n’existerait pas un format de fichier standard pour les karaokés, et de quoi lire des sous-titres contenant des paroles, le tout sans avoir de piste vidéo : actuellement VLC n’apprécie pas du tout lorsqu’on lui demande de lire un fichier de sous-titres sans vidéo associée.

Partant de ce constat, je me suis demandé dans quelle mesure il serait compliqué de faire un lecteur de fichiers de sous-titre dans le terminal, avec le langage de programmation Rust. En bonus, ça pourrait être bien de jouer l’audio en même temps que les paroles sont affichées à l’écran.

J’ai donc fait des recherches pour avoir de quoi lire les fichiers de sous-titre, contrôler l’affichage dans le terminal, et récupérer de la meilleure manière qui soit les arguments de la ligne de commande, et j’ai finalement pondu de quoi faire ce que j’avais en tête. C’est très simpliste, mais fonctionnel :

Pour les librairies utilisées, j’appelle à la barre :

  • srtparse pour la lecture des fichiers de sous-titres
  • termion pour le contrôle de la sortie terminal (coloration et déplacement du curseur)
  • clap pour la gestion des arguments en ligne de commande
  • rodio pour jouer un fichier audio au travers des haut-parleurs

Et au final, peu de problèmes de réalisation, juste des comportements bizarres de l’émulateur de terminal de macOS lors de l'utilisation de couleurs hors ANSI.

Je n’en ai aucune utilité, donc il n’y a que peu de chances que j’améliore significativement le code.