Sommaire

Cocofy

Ma propre appli de streaming musical.

Chapitre 4Mergedcocofy into mainauto-hébergé · cloudLe code sur GitHub (s’ouvre dans un nouvel onglet)

Contexte

Pas de compte, pas de pub, pas d’abonnement. Juste ma musique, sur mon propre matériel.

On cherche un morceau ou un artiste, on clique sur un résultat, et la lecture démarre dès que le téléchargement est prêt. Chaque morceau reste ensuite sur le serveur, donc la bibliothèque grandit toute seule à mesure que j’écoute.

Ce que j’ai fait

  • Un backend FastAPI qui cherche dans le catalogue musical de YouTube, télécharge avec yt-dlp et diffuse le résultat.
  • Des MP3 dans la meilleure qualité disponible, avec toutes les métadonnées et la pochette intégrée.
  • Un frontend en un seul fichier, en HTML, CSS et JavaScript simples. Il marche bien sur téléphone via Tailscale et a des raccourcis clavier sur ordinateur.
  • Compatible Navidrome : les morceaux arrivent dans le dossier que Navidrome surveille, donc ils apparaissent aussi dans n’importe quelle appli Subsonic pour l’écoute hors ligne.

Déploiement

Chaque push sur main construit une nouvelle image Docker avec GitHub Actions et la pousse sur GHCR. Watchtower la récupère en moins de 30 secondes et redémarre le conteneur. Je n’ai jamais besoin de me connecter au serveur pour déployer.

La suite

La liste est longue : files d’attente avec lecture aléatoire et répétition, playlists, favoris, paroles, import de playlists YouTube, égaliseur, minuterie de mise en veille, vue « en cours de lecture » en plein écran, et support PWA hors ligne.

Tourner la pageChapitre 5: Shift