Ecouter fip dans un terminal - retour accueil
git clone git://bebou.netlib.re/fip
Log | Files | Refs | README |
commit b9ac214ec15798f2f1fb7742d48fe0129291a95f Auterice: arthur <arthur.pons@unistra.fr> Date: Tue, 6 Sep 2022 16:40:14 +0200 Stream de la station principale, affichage des infos Diffstat:
A | README | | | 36 | ++++++++++++++++++++++++++++++++++++ |
A | fip | | | 41 | +++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 77 insertions(+), 0 deletions(-)
diff --git a/README b/README @@ -0,0 +1,36 @@ +Petit script pour écouter FIP sans navigateur + +Dépendances + + jq + https://stedolan.github.io/jq/ + https://github.com/stedolan/jq + mpv + https://mpv.io/ + https://github.com/mpv-player/mpv + +Le script est suffisament simple pour pouvoir remplacer les deux dépendances à +la main si vous le voulez + +Le script laisse la possibilité d'utiliser les raccourcis clavier mpv pour +revenir en arrière par exemple + +Les informations du morceau en cours sont affichées en dernier dans la liste + +TODO ajouter des options pour écouter les radios thématiques de FIP +TODO progression dans la chanson ? + + +Pourquoi ce script ? + +Les navigateurs web modernes sont extrêment gourmands en calcul et en mémoire +en plus d'être très difficiles à maintenir. Ils sont à tout point de vue des +logiciels non soutenables. De façon à pouvoir écouter cette radio sur du +matériel modeste - qui ne soit pas une radio puisque FIP n'émet pas partout - +il faut les court-circuiter. + +En utilisant ce script l'information que vous écoutez transite toujours via une +stack web mais vous vous affranchissez au moins de la partie la plus impactante +pour vos terminaux. A noter, les deux dépendances utilisés par défaut sont +elles-mêmes des logiciels conséquents. Si vous avez des alternatives plus +conviviales au sens Illichien je suis preneur. diff --git a/fip b/fip @@ -0,0 +1,41 @@ +#! /bin/sh + +# On lance le stream de fip en qualité moyenne +mpv --volume=50 --really-quiet https://icecast.radiofrance.fr/fip-midfi.aac& + +while : +do + # On récupère les infos via l'api de radiofrance + json=$(curl -s https://www.radiofrance.fr/api/v1.9/stations/fip/webradios/fip) + + # On filtre pour récupérer le titre du morceau, de l'artiste, de l'album + song=$(echo $json | jq ".now.firstLine,.now.song.release.title,.now.secondLine") + + # On filtre pour récupérer l'url vers la couverture de l'album + cover=$(echo $json | jq .now.cover.src) + + # On récupère la quantité de secondes écoulées depuis le premier janvier 1970 + now=$(date "+%s") + + # On récupère le quantité de secondes écoulées depuis le premier janvier 1970 + # à partir duquel le morceau va changer + songendtime=$(echo $json | jq .media.endTime) + + # On soustrait l'un à l'autre pour savoir dans combien de secondes le + # morceau va changer en y ajoutant quelques secondes le temps pour l'api de + # renvoyer à nouveau des timestamps valides sinon on récupère des undefined + # et j'ai la flemme de faire les tests pour gérer ces cas Le 12 a été + # choisi de façon purement empirique, je trouve ça colle pas mal avec le + # changement effectif de morceau + # A modifier si ce n'est plus le cas + secondsuntilsongend=$(($songendtime-$now+12)) + + # On affiche les informations + # Oui je sais pas gérer la sortie de jq alors je fais ce que je peux + echo $song | sed -e 's:\(^"\|"$\)::g' -e 's:" ": - :' -e 's:" ":\n:' + echo $cover | sed -e 's:\(^"\|"$\)::g' + + # On attend la fin du morceau en cours pour boucler + sleep $secondsuntilsongend + echo "-------" +done