Les composants suivants sont écrits en Python :
- La gestion de la radio (dossier
sunflower
) - Le serveur de l'API exposant les informations (dossier
server
)
Le projet nécessite Python 3.8 ou supérieur, il est recommandé d'utiliser
pyenv
pour gérer les différentes
installations de Python.
Pour installer les dépendances, il est recommandé (et pour l'instant nécessaire)
d'utiliser poetry
.
poetry install
Pour encoder le flux radio, il faut installer Liquidsoap. Ce composant est écrit en OCaml.
Il est recommandé d'utiliser opam
pour gérer les
installations d'OCaml.
Pour installer Liquidsoap et les différents modules nécessaires au traitement des fichiers audio :
opam depext taglib mad vorbis cry opus samplerate faad liquidsoap
opam install taglib mad vorbis cry opus samplerate faad liquidsoap
Ces modules sont spécifiques à Radio Pycolore, on peut en installer d'autres pour gérer d'autres formats audio.
Une fois le composant installé, il faut générer la configuration Liquidsoap :
poetry run make generate-liquidsoap-config
Liquidsoap est configuré pour envoyer les flux audio sur Icecast. Il est donc nécessaire d'installer Icecast au préalable.
Pour persister des données temporairement, Radio Tournesol utilise la base de données Redis. Il est nécessaire de l'installer et de démarrer le serveur Redis avant de démarrer la radio.
Le fichier sunflower/settings.py
contient différentes variables qui vont être
utilisées par le projet.
ICECAST_SERVER_URL
: L'url du serveur Icecast, utilisée par Liquidsoap.CHANNELS
: Liste des endpoints des chaînes définies. Nécessaire pour faire diverses vérifications.BACKUP_SONGS_GLOB_PATTERN
: Chemin vers le dossier des chansons utilisées par la playlist Pycolore.LIQUIDSOAP_TELNET_PORT
: Port à utiliser pour se connecter au server telnet de Liquidsoap.LIQUIDSOAP_TELNET_HOST
: Hôte à utiliser pour se connecter au serveur telnet de Liquidsoap.