====== Playlist de webradios anime ====== Le répertoire Xiph, résultats pour « anime »: et si on se faisait une compil’ de ces webradios, tout dans une liste de lecture, 1 seul stream par radio ? J’ai un peu tâtonné jusqu’à obtenir exactement ce que je voulais. Mais voilà: Une fois exécuté, ce script sort un fichier "Anime_mix.xspf" contenant 1 stream par webradio, à ouvrir dans un lecteur comme VLC :) Au moment où j'écris ça, c'est une playlist de 25 streams qu'on obtient. - on récupère les 2 pages de résultats avec wget (on peut ajouter le téléchargement de 3, 4... autant de pages de résultats qu'il faut) - on fusionne ces pages en 1 seule, et on enlève les 2 pages individuelles - on "attrape" le lien vers les listes de lecture dans la page, et on le transforme en lien absolu - on crée un dossier et on y récupère avec wget toutes les listes de lecture trouvées - pour chaque liste de lecture dans le dossier, on extrait uniquement la première référence de piste (track) car beaucoup de radios ont plusieurs pistes sur des serveurs différents - on "reconstruit" une liste de lecture avec toutes les références de pistes - et on nettoie les fichiers de travail Le fichier de sortie est un peu barbare (pas de retour à la ligne entre les pistes, pas de titre ni info,..) mais VLC le traite sans problème ;) Adaptez selon vos besoins (mot clé de la page de résultats, nombres de pages à scanner, type de playlist à sortir...). #!/bin/bash wget -O page1 "http://dir.xiph.org/search?search=anime" wget -O page2 "http://dir.xiph.org/search?search=anime&page=1" cat page1 page2 > page rm page1 page2 grep -o /listen/[^[:space:]]*/listen.xspf page | sed -e "s/\/listen/http:\/\/dir.xiph.org\/listen/" > radios mkdir temp while read line; do wget -O "temp/`date +%s%N`" "$line" ; done < radios for file in temp/*; do grep -m 1 -o "[^[:space:]]*" $file >> track ; done streams=`cat track` echo 'Mix'$streams'' > Anime_mix.xspf rm track radios page rm -rf temp