Reinhardt, lecteur de musique pour le web
Nommé en hommage au musicien Django Reinhardt et en clin d'oeil au framework Django, Reinhardt est une application de streaming audio basée sur le Web, sous license GPL v3, vous permettant d'accéder à votre musique de n'importe où, en utilisant presque n'importe quel appareil connecté à Internet (téléphone, tablette, etc).
Le principe est similaire à Ampache, mais avec nettement moins de fonctionnalités et une interface pensée avant tout pour une utilisation mobile.
Quelques fonctionnalités :
- support des fichiers
*.mp3
et*.mp4
- multi-utilisateurs
- morceaux favoris
- moteur de recherche
- index des genres, index des artistes
- étiquettes pour regrouper les morceaux
- file d'attente
- lecture aléatoire
- téléchargement de morceaux
- thème sombre/lumineux suivant le réglage du système d'exploitation
Pré-requis pour l'installation
- Quelques notions d'utilisation d'un système compatible Unix
- Accès à un terminal
- Python 3.12
- Poetry
Téléchargement
Installation
Décompressez l'archive téléchargée
unzip reinhardt-0.1.0.zip && cd reinhardt-0.1.0
Copiez le fichier .env-dist
vers .env
cp .env-dist .env
Modifiez les variables dans .env
en fonction de votre installation,
en particulier la variable SECRET_KEY
qui devra contenir une chaine aléatoire.
Installez les dépendances et créez la base de données:
poetry install
poetry run python manage.py migrate
Utilisation basique
Ajoutez un dossier contenant vos musiques à indexer:
poetry run python manage.py addmusicdir /chemin/vers/votre/dossier/musique
Lancez l'indexation:
poetry run python manage.py indexmusic
Ajoutez un accès utilisateur:
poetry run python manage.py giveaccess johndoe
La commande retourne une URL de ce type:
http://127.0.0.1:8000/invite/?q=Vlu2cBs67xTlCWSyk5vi7LMDJQF2F1HwR9wdnhdr51oqDRxKrAzB8juX4b8XXJdl
Cette URL est à communiquer à l'utilisateur. Elle lui permet d'accéder à l'interface avec son compte personnalisé (ses étiquettes, ses favoris, etc).
Problèmes connus
- les boutons de navigation ("back button") coupent la lecture audio et cassent l'exécution du Javascript.
Captures d'écran