Salut,
Non, a priori je ne vois pas d'erreur. Pourrais-tu envoyer ton script
complet (pense à effacer les mots de passe éventuels) ?
Voici le script qui génére les playlists, il s'excute via la cron toutes
les 5min.
#!/bin/bash
JOUR="lundi mardi mercredi jeudi vendredi samedi dimanche"
for DAY in $JOUR
do
DIRECTORY=`find /opt/webradio/musique/$DAY/* -type d`
for i in $DIRECTORY
do
PLAYLIST=`echo $i | sed 's/\/opt\/webradio\/musique\///g' | sed
's/\//_/g'`
FILE=`find $i/ -type f | egrep -i "mp3|ogg" | sort`
if [ -z "$FILE" ]; then
echo "/etc/liquidsoap/noise.mp3" >
/opt/webradio/playlist/$PLAYLIST.m3u
else
echo "$FILE" > /opt/webradio/playlist/$PLAYLIST.m3u
fi
done
done
Le résultat donne un fichier comme ci dessous (si aucun fichier n'a été
trouvé) :
# more /opt/webradio/playlist/lundi_23h_00h.m3u
/etc/liquidsoap/noise.mp3
Sinon la liste des musiques :
# more /opt/webradio/playlist/lundi_22h_23h.m3u
/opt/webradio/musique/lundi/22h_23h/01.mp3
/opt/webradio/musique/lundi/22h_23h/02.mp3
/opt/webradio/musique/lundi/22h_23h/03.mp3
Et tant qu'à faire, envoie aussi le log. Si tu vois le reload dans les logs,
c'est
d'autant plus louche.
Pour le log, voici ce que j'ai vu :
2008/02/24 23:00:57 [EMAIL PROTECTED]:3] switch to dimanche_23h_00h.m3u
with forgetful transition
2008/02/24 23:01:07 [dimanche_23h_00h.m3u:3] Finished with
"/etc/liquidsoap/noise.mp3"
...
2008/02/24 23:01:57 [dimanche_23h_00h.m3u:3] Prepared
"/etc/liquidsoap/noise.mp3" -- rid 9
2008/02/24 23:01:57 [dimanche_23h_00h.m3u:3] Loading playlist...
2008/02/24 23:02:07 [dimanche_23h_00h.m3u:3] Finished with
"/etc/liquidsoap/noise.mp3"
2008/02/24 23:02:07 [dimanche_23h_00h.m3u:3] Prepared
"/etc/liquidsoap/noise.mp3" -- rid 11
...
Pourtant la playlist dimanche_23h_00h.m3u contenait des mp3, et je vois
bien le loading playlist...
Ce que tu peux faire pour tester c'est ajouter
un timestamp dans les métadonnées via la playlist, pour voir à quelle
heure a été chargée la playlist dont le fichier passe. J'explique
cette longue phrase. Quand tu génères ta playlist, au lieu de mettre
un /path/to/fichier.ogg sur chaque ligne, tu transformes ça en
annotate:pouet="<heure actuelle>":/path/to/fichier.ogg. Ensuite il
faut récupérer cette info sur le fichier qui passe.
* Soit tu lances ton liquidsoap avec telnet activé et tu fais "telnet
liquidsoap 1234" puis "on_air" pour avoir l'identifiant de la requête
en cours de lecture, et enfin "metadata <identifiant>" -- là tu
retrouveras ton pouet="machin".
* Soit tu incorpores la metadonnée "pouet" dans le title (champ
"title") avec un rewrite_metadata pour voir l'information depuis ton
player préféré. Par exemple tu ferais ma_source =
rewrite_metadata([("title","$(pouet) $(title)")],ma_source).
Je vais essayé cela dès que je vais avoir un peu de temps.
Sinon, j'en profite pour te signaler qu'on peut passer un répertoire
directement au lieu d'un fichier playlist. Liquidsoap prend alors tous
les fichiers audio du répertoire. Ca t'évite de générer toi même cette
liste. Le seul petit risque est que le décodeur MP3 dise à liquidsoap
qu'un JPEG est du son, ce qui provoque des choses assez sales à
l'écoute -- ce problème est présent en 0.3.6, disparu a priori en
version SVN.
++
Merci de l'info, mais si le répertoire ne contient aucun fichier,
j'aimerai que le fichier "noise.mp3" soit lu.
A moins que l'on puisse lui dire, en paramètres, je vais également
regarder cela de plus près.
++