#1 Le 17/05/2007, à 17:53
- alteo_gange
Balado-diffusion en ligne de commande
Salut à tous!
###############
descriptif
###############
Voici un script permettant de faire de la balado-diffusion (ou podcast pour les ricains du forum) en ligne de commande. Il s'appuie sur podracer ('$ podracer -c') qui extrait les url des fichiers audio des fils RSS sélectionnés, ainsi que sur le lecteur audio mplayer.
################
installation
################
1) La 1ère chose à faire est donc d'installer podracer et mplayer si ce n'est pas déjà fait:
$ sudo aptitude install podracer mplayer
2) Ensuite vous pouvez si vous le voulez, personnaliser la liste des fils RSS de ~/.podracer/subscriptions:
$ vi ~/.podracer/subscriptions
Je vous conseille de commencer par commenter ('#' au début de chaque ligne) toutes les lignes. Cela vous facilitera la tâche pour la suite.
Voici un ex. de ~/.podracer/subscriptions:
#"BFM : Atelier Numérique"
#http://www.1001podcast.com/podcast/BFM/channel9/BFMchannel9.xml
#"L'Atelier Numérique N°185"
#http://www.atelier.fr/syndication/xml-podcast.php
#"RMC : De quoi je me mail"
#http://www.1001podcast.com/podcast/RMCInfo/channel35/RMCInfochannel35.xml
#"France Culture - CONCORDANCE DES TEMPS"
#http://radiofrance-podcast.net/podcast/rss_16278.xml
#"France Culture - Continent sciences"
#http://radiofrance-podcast.net/podcast/rss_16256.xml
#"France Culture - Du grain à moudre"
#http://radiofrance-podcast.net/podcast/rss_10175.xml
#"France Culture - LA SUITE DANS LES IDEES"
#http://radiofrance-podcast.net/podcast/rss_16260.xml
#"France Culture - L'esprit public"
#http://radiofrance-podcast.net/podcast/rss_16119.xml
#"France Culture - Science et conscience"
#http://radiofrance-podcast.net/podcast/rss_10200.xml
#"France Culture - Science publique"
#http://radiofrance-podcast.net/podcast/rss_10192.xml
#"France Inter - 2000 ANS D'HISTOIRE"
#http://radiofrance-podcast.net/podcast/rss_14864.xml
#"France Inter - ECLECTIK"
#http://radiofrance-podcast.net/podcast/rss_17621.xml
#"France Inter - RENDEZ-VOUS AVEC X..."
#http://radiofrance-podcast.net/podcast/rss_14726.xml
#"France Inter - Rue des entrepreneurs"
#http://radiofrance-podcast.net/podcast/rss_14958.xml
#"RTL : Le Fait Politique"
#http://www2.rtl.fr/fournisseurs/podcasting/podcast_RTL_Politique.xml
#"RTL : Le Grand Jury"
#http://www2.rtl.fr/fournisseurs/podcasting/podcast_RTL_Grand_Jury.xml
#"RTL : Le Journal Economique"
#http://www2.rtl.fr/fournisseurs/podcasting/podcast_RTL_journaleco.xml
#"RTL : L'Invité de RTL"
#http://www2.rtl.fr/fournisseurs/podcasting/podcast_RTL_Invite.xml
#"RTL : On refait le Match"
#http://podcast.rtl.fr/onrefaitlematch.xml
#"ARTE Radio : Les nouveautés de la semaine"
#http://www.arteradio.com/makeRSS.do
3) Copier le code suivant:
#!/bin/bash
#
##########
# balado #
##########
#
# Balado est un logiciel GNU/Linux de balado-diffusion en ligne de
# commande basé sur podracer (http://podracer.sourceforge.net) et
# mplayer (http://www.mplayer.hq.hu).
#
# Il permet de lire ou télécharger des fichiers audio à partir de
# flux RSS.
#
# Avant d'utiliser 'balado' vous devez installer podracer et mplayer.
# De plus ~/.podracer/subscriptions (fichier de configuration de
# podracer contenant la liste des fils RSS) doit contenir au moins
# un fil RSS.
#
# La plupart des options de 'balado' utilisent les fils RSS actifs du
# fichier ~/.podracer/subscriptions. Un fil est considéré comme actif
# quand la ligne qu'il occupe ne commence pas par le caractère '#'.
#
# Lors de la 1ère utilisation de 'balado', par soucis de clarté il
# est conseillé de commenter ('#' en début de ligne) toutes les
# lignes de ~/.podracer/subscriptions.
#
# Liste des options:
# $ balado --help
# Fichier contenant la liste des fils RSS
rss=~/.podracer/subscriptions
# Fichier contenant les adresses de fichiers audios après lecture du ou des fils RSS
url=~/.podracer/podcast.log
# Répertoire de téléchargement des fichiers audio
perso=~/
case "$1" in
lst)
vi $rss
;;
mplayer)
vi ~/.podracer/subscriptions
rm ~/.podracer/podcast.log
podracer -c
mplayer `cat $url`
;;
mplayer2)
mplayer `cat $url`
;;
pre)
vi $rss
rm $url
podracer -c
cat $url
;;
rech)
rm $url
podracer -c
;;
sel)
mplayer `grep -i $2 $url`
;;
tel)
vi $rss
rm $url
podracer -c
cd $perso
wget `cat $url`
;;
tel2)
cd $perso
wget `grep -i $2 $url`
;;
voir)
cat $url
;;
*)
echo "Usage: balado [option] [argument]"
echo ""
echo " --help Affiche ce message d'aide"
echo " lst Edite les flux RSS contenus dans $rss"
echo " rech Met à jour les flux RSS actifs de $rss"
echo " voir Affiche les liens des fichiers audio de $url"
echo " mplayer Lit un ou des fichiers audio avec mplayer après avoir sélectionné un ou des flux RSS"
echo " mplayer2 Lit directement les fichiers audio listés dans $url avec mplayer"
echo " sel 'bout_d_url' Lit avec mplayer l'audio listé dans $rss contenant la chaîne de caractères 'bout_d_url'"
echo " tel Télécharge les fichiers listés dans $url"
echo " tel2 'bout_d_url' Télécharge directement l'audio répertorié dans $url contenant la chaîne de caractères 'bout_d_url'"
echo " pre Affiche les liens des fichiers audios après avoir sélectionné et mis-à-jour un ou des fils RSS"
exit 1
;;
esac
exit 0
puis:
$ gksu gedit /usr/local/bin/balado
sous gnome
ou
$ kdesu kate /usr/local/bin/balado
sous kde
et coller le contenu du presse papier dans l'éditeur de texte avant de sauvegarder.
4) Rendre actif le script balado:
$ sudo chmod 755 /usr/local/bin/balado
5) Lancer balado:
$ balado [option] [ARG]
########################
détail des commandes
########################
Les options sont détaillés par la commande:
$ balado --help
Elle renvoie à peu de choses près le message d'aide suivant:
Usage: balado [option] [argument]
--help Affiche ce message d'aide
lst Edite les flux RSS contenus dans ~/.podracer/subscriptions
rech Met à jour les flux RSS actifs de ~/.podracer/subscriptions
voir Affiche les liens des fichiers audio de ~/.podracer/podcast.log
mplayer Lit un ou des fichiers audio avec mplayer après avoir sélectionné un ou des flux RSS
mplayer2 Lit directement les fichiers audio listés dans ~/.podracer/podcast.log avec mplayer
sel 'bout_d_url' Lit avec mplayer l'audio listé dans ~/.podracer/subscriptions contenant la chaîne de caractères 'bout_d_url'
tel Télécharge les fichiers listés dans ~/.podracer/podcast.log
tel2 'bout_d_url' Télécharge directement l'audio répertorié dans ~/.podracer/podcast.log contenant la chaîne de caractères 'bout_d_url'
pre Affiche les liens des fichiers audios après avoir sélectionné et mis-à-jour un ou des fils RSS
###################################
2 examples d'utilisation
###################################
a) Lecture d'un fichier audio présent sur le réseau:
$ balado mplayer
'vi' s'ouvre. Appuyer sur la touche i. Vous devez alors décommenter une (voire plusieurs) ligne correspondant au fil RSS qui vous intéresse. Puis échap puis :wq puis entrée. Le lecteur mplayer lance un fichier audio. Si plusieurs url ont été récupérés, vous pouvez passer à l'audio suivant en appuyant sur la touche '>'.
b) Téléchargement d'un fichier audio présent sur le réseau
$ balado tel
'vi' s'ouvre. Appuyer sur la touche i. Vous devez alors décommenter une (voire plusieurs) ligne correspondant au fil RSS qui vous intéresse. Puis échap puis :wq puis entrée. Wget télécharge un fichier audio.
Rq: la lecture et le téléchargement peuvent être réalisés plus précisément par les commandes respectives '$ balado sel [argument]' et '$ balado tel2 [argument]'. Ces 2 commandes doivent alors être précédés par '$ balado pre' de façon à connaître [argument]. Ceci est utile quand plusieurs url sont répertoriés dans ~/.podracer/podcast.log.
Il y a certaines choses que je ne suis pas arrivé à réaliser:
- inverser toutes les lignes d'un fichier pour pouvoir lire les url avec mplayer en sens inverse (ou alors ne rien inverser du tout et faire en sorte que mplayer lise une liste en sens inverse - je n'ai pas vu l'otion dans '$ man mplayer');
- nommer une option de 2 façons différentes (ex: -m et --mplayer). Je pourrais le faire avec des copier-coller dans le script mais je n'aime pas les doublons.
- rendre valide une commande du type: '$ balado --sel=arg'.
- faire un 'if else' avec comme condition avoir un argument ($1) vide ou pas ($1=="" ne marche pas).
Voilà!
Hors ligne