samedi 20 mai 2006

Réparation des radios blogs

Suite à des modifications de Free le FAI bien-aimé, les scripts PHP ne peuvent plus obtenir d'informations sur les fichiers plus gros que 5 Mo. En quoi cela affecte-t-il les Radios blogs, et comment contourner le problème ?

Radioblog, Flash, et PHP

Le moteur de la radioblog, ce sont les fichiers "radioblog.swf" et "rbcore.swf", qui sont des applets Flash ShockWave. Ce sont ces petits programmes qui lisent les fichiers musicaux et qui en jouent la musique. Le PHP, en fait, n'est utilisé que pour fabriquer la "playlist", c'est-à dire pour indiquer au moteur quels sont les fichiers musicaux à lire, et dans quel ordre les jouer.

Playlist en PHP

Par défaut, le fichier qui est responsable de la playlist, c'est "playlist.php". Ce script PHP liste les fichiers RBS présents dans son répertoire, les trie selon la date de modification, et fournit cette liste au moteur, sur le principe du "dernier arrivé, premier joué", c'est-à dire, "fichier le plus récent=musique jouée en premier". C'est ce fichier que j'avais modifié pour que la RadioJazz fonctionne en ordre inverse "fichier le plus récent=musique jouée en dernier", et pour que RadioDark fonctionne en ordre aléatoire.
Pour trier les morceaux dans le bon ordre, "playlisyt.php" demande pour chaque fichier la date de modification. C'est cette requête que Free désormais interdit pour les fichiers de plus de 5 Mo, ce qui empêche "playlist.php" de fournir la playlist au moteur Radioblog, qui du coup ne peut plus marcher.
Une solution est donc de supprimer tous les fichiers plus gros que 5 Mo de ses fichiers musicaux, afin que "playlist.php" puisse continuer à marcher. Pour mon PotPourri, c'est assez inenvisageable...

Playlist en XML

L'autre solution, c'est de gérer la playlist à la main, au lieu de la laisser être générée automatiquement par le script PHP. Il faut pour cela écrire un fichier "playlist.xml", à la main, par Notepad ou quelque équivalent, et déposer ce fichier dans le répertoire contenant les fichiers RBS. A chaque dépot ou suppression de fichiers RBS de ce répertoire, il faudra modifier le fichier "playlist.xml" pour qu'il corresponde au nouveau contenu.
Voic un exemple de fichier "playlist.xml" :

<?xml version="1.0" encoding="UTF-8"?>
<tracks>
<track trackMod="1099324928" title="Titre du morceau 1" path="sounds/morceau1.rbs"/>
<track trackMod="1099325058" title="Titre du morceau 2" path="sounds/morceau2.rbs"/>
</tracks>

Il ne faut pas modifier les 2 lignes de début et la ligne de fin du fichier, et il faut ajouter une ligne pour chaque morceau, qui contient les informations suivantes :
- "trackMod" donne la date du fichier (en nombre de secondes depuis le 01/01/1970), et sert à indiquer dans la RadioBlog le "[now]" ou "[-18j]" au début du morceau. Il faut donc mettre la date actuelle dans ce format venu d'Unix ; vous pouvez utiliser cette page d'une absolue magnificence pour la récupérer.
- "title" sert à indiquer le titre du morceau, tel qu'il apparaîtra dans la fenêtre du lecteur Radioblog
- "path" sert à donner le nom du fichier, avec son chemin, donc il ne faut pas oublier le nom du répertoire "sounds/", et l'extension ".rbs"

Config.xml


Il faut aussi indiquer au moteur comment il doit récupérer sa playlist. Par défaut, il utilise "playlist.php", maintenant il doit utiliser "playlist.xml", cela doit lui être indiqué ! Il récupère cette information dans le fichier "config.xml", qu'il faut donc modifier :
<!-- PLAYLIST PATH -->
<playlist path="sounds/playlist.php" />
doit devenir
<!-- PLAYLIST PATH -->
<playlist path="sounds/playlist.xml" />

Déposez votre fichier "playlist.xml" dans le répertoire des RBS, et le fichier modifié "config.xml" dans le répertoire de la radio, et ça devrait bien se passer, quelque soit la longueur des morceaux.

Caveat

Tout cela a été fait avec la version 2.2 de la radioblog. Ils en sont à la version 2.5, et une 3.0 est en béta, j'ignore si tout fonctionne exactement pareil en fonction des versions, j'espère que vous saurez vous débrouiller ...

Plus de détails chez hannaxbear, un des modérateurs des forums Radioblog.

Aucun commentaire: