Les titres de OuiFM en OSD

J'aime beaucoup écouter la radio parisienne OuiFM. Pour les provinciaux, il est possible de l'écouter directement sur le site via une animation flash qui affiche le titre en cours ou avec son lecteur préféré viale flux MP3 qui est probablement capable d'en faire de même, mais il n'est pas très pratique devoir remettre au premier plan le lecteur (et/ou de changer de bureau virtuel). Je trouve aussi pénible que le lecteur affiche systématiquement le titre comme le font certains, je préfère avoir le titre à la demande. J'ai donc écrit un petit script shell qui va récupèrer le titre sur le site de OuiFM comme le fait l'animation flash et l'affiche en OSD. Pour l'utiliser sous Ubuntu (et probablement Debian), il faut installer le paquet xosd-bin et php (4 ou 5) en mode ligne de commande avec la commande suivante :

$ sudo apt-get install xosd-bin php5-cli

Le paquet xosd-bin fournit le programme osd_cat qui permet de lire un fichier à la manière de cat en affichant le résultat en OSD selon différents paramètres (couleur, police, position, ...). J'ai associé l'exécution de ce script à la touche F9 dans Openbox, ainsi si un titre passe et je ne connais pas l'artiste, je peux connaître rapidement le titre en pressant cette touche.

#! /bin/sh
 
URL_DATA="http://www.ouirock.com/data1.php"
 
TMP_FILE="/tmp/ouifm_data"$$".txt"
DATA_OSD=""
 
OSD_FONT='-bitstream-dejavu sans-bold-r-*-*-17-*-*-*-*-*-*-*'
OSD_VER_POS="bottom"
OSD_HOR_POS="right"
OSD_COLOR="#95b9c8"
OSD_DELAY=30
OSD_LINE_FROM_BOTTOM=2
 
get_infos ()
{
    DATA_SHELL=`wget "$1" -q -O - | sed 's/&/ /g'`
    eval $DATA_SHELL
    DATA_OSD=`echo '<?php echo utf8_decode(urldecode("'$artiste' - '$titre'"))."\n"; ?>' | php`
}
 
display_infos ()
{
    get_infos $URL_DATA
    echo "$DATA_OSD" > $TMP_FILE
    osd_cat -l $OSD_LINE_FROM_BOTTOM  -f "$OSD_FONT" -p "$OSD_VER_POS" -A "$OSD_HOR_POS" -c "$OSD_COLOR" -d "$OSD_DELAY" $TMP_FILE
}
 
touch $TMP_FILE
display_infos $URL_DATA
rm -f $TMP_FILE

Le seul point particulier concerne la fonction get_infos qui récupère les données sur le site de OuiFM puis crée les variables avec eval et les décode avec un tout petit morceau de PHP passé directement à l'interprèteur.

Billet rédigé en écoutant entre autres "Hey Gravity - Risen (She Said)", "Rinocerose - Cubicle", "Green Day - Basket Case", ... :-)

» Commentaires

- Amarok (#65467) par dkf le 13 mai 2007 à 18:32
En recuperant les .pls de la radio, il est possible (sur le flux hebergé chez OVH il me semble) d'avoir ses informations dans Amarok.

Il y a alors l'OSD (changement de track et a la demande) ainsi que l'historique qui est sauvegarde.
- Même chose pour FIP (#65753) par Hermogene le 15 juin 2007 à 10:43
Salut,
Je me suis inspiré de ton script pour afficher la popup de FIP, mais c'est assez rudimentaire, vu que je n'y connais rien en perl ni php…
<code>
#! /bin/sh

URL_DATA="http://www.radiofrance.fr/chaines/fip/endirect/popprog.php?first=0"

TMP_FILE="/tmp/fip_data"$$".txt"
DATA_OSD=""
OSD_FONT='-b&h-lucida-medium-r-normal-sans-34-240-100-100-p-191-iso8859-1'
OSD_VER_POS="middle"
OSD_HOR_POS="center"
OSD_COLOR="#ff3333"
OSD_DELAY=5
OSD_LINE_FROM_BOTTOM=6
OSD_SHADOW=1

touch "$TMP_FILE"
brut=`wget "$URL_DATA" -q -O -`
artiste=`echo "$brut"|perl -ne 'if(/(B.*?)".*>(.+)<\/B>/) { print $2}'`
titre=`echo "$brut"|perl -ne 'if(/(\/B>)(.+)<\/SPAN>/) { print $2}'`
album=`echo "$brut"|perl -ne 'if(/(Album : )(.+)<br>Label/) { print $2}'`
annee=`echo "$brut"|perl -ne 'if(/(e : )(.+)<\/td>/) { print $2}'`
# echo "Artiste ""$artiste"
# echo "Titre ""$titre"
# echo "Album ""$album"
# echo "Année ""$annee"
DATA_OSD=`echo '<?php echo utf8_decode(urldecode("'$artiste'\n'$titre'»\n\n'$album'\n'$annee'"))."\n"; ?>' | php`

echo "$DATA_OSD" > $TMP_FILE
osd_cat -l $OSD_LINE_FROM_BOTTOM -f "$OSD_FONT" -p "$OSD_VER_POS" -A "$OSD_HOR_POS" -c "$OSD_COLOR" -d "$OSD_DELAY" -s "$OSD_SHADOW" $TMP_FILE

rm -f $TMP_FILE
</code>
- Bravo et rebravo (#68025) par legrosschmoll le 04 novembre 2009 à 18:28
Depuis plus d'un an que j'utilise votre script (celui pour FIP), je ne dois que m'en féliciter et vous remercier. Vraiment excellent. Je voudrais essayer de le faire tourner en continu sur l'un de mes bureau mais mes connaissances sur bash sont plus que rudimentaires! Encore merci!

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login