Article obsolète : voir l’article Quel podcast écouter
Premier article sur ma linux-box.
Pour situer rapidement les usages de cette machine (j’en reparlerais plus longuement plus tard), il s’agit d’un vieux PC (Duron 1GHz) avec Ubuntu minimal et qui me sert de HTPC, de serveur de backup et de download.
Le sujet de cet article se situe dans le cadre de ce dernier point.
Faisant pas mal de route, j’ai le temps d’écouter la radio mais je me suis vite rendu compte qu’avec 1h matin et soir les infos avait tendance à passer en boucle.
D’où l’idée d’écouter des émissions qui m’intéressent vraiment, et c’est là qu’intervient le podcast.
Je me suis donc mis en quête d’un logiciel de podcast tournant sous linux.
Le besoin est le suivant :
- Paramétrage facile et souple
- Pas d’interface graphique
Installation et paramétrage de podracer
Après quelque recherche j’ai trouvé podracer qui est disponible dans le dépôt Universe d’Ubuntu (Gutsy dans mon cas) :
http://packages.ubuntu.com/gutsy/podracer
L’installation se fait donc par un simple :
sudo aptitude install podracer
Il faut ensuite paramétrer les podcasts que l’on souhaite télécharger.
Là aussi c’est très simple il suffit d’éditer / de créer le fichier le fichier subscription :
vim ~/.podracer/subscriptions
Ce dernier à une structure très simple :
adresse_du_podcast sous_répertoire
exemple :
# France Inter - CO2 Mon Amour http://radiofrance-podcast.net/podcast09/rss_10006.xml CO2MonAmour
Les lignes commençant par # étant des commentaires.
(on verra l’usage du sous répertoire par la suite)
Il n’y a plus qu’à éditer le fichier podracer.conf pour indiquer au programme le répertoire de sauvegarde :
cp /etc/podracer.conf ~/.podracer/ vim ~/.podracer/podracer.conf
Dans mon cas :
# poddir is the directory where you want podcasts to be saved # Directory names may be created dynamically based on time, date and many other # possibilities. Directory names based on feeds are listed in the subscriptions # file. poddir=$HOME/downloads/podcast/temp
Et puis on lance podracer :
podracer
Au premier lancement cela peut être long, très long, on pourra donc exécuter
podracer --catchup
Podracer loguera tous les podcasts comme téléchargés mais n’en téléchargera aucun en réalité.
Dans notre exemple on devrait donc voir sous le répertoire $HOME/downloads/podcast/temp/CO2MonAmour un/des fichier(s) mp3 de l’émission de France Inter.
Traitement des podcasts téléchargés
Avec podracer, on télécharge rapidement et facilement des podcasts, mais vous vous en rendrez compte à chaque site / podcasts un nom de fichier ayant un format différent.
Certains avec la date (avec des formats différents entre les podcast) d’autre sans, certain avec le nom de l’émission, d’autre sans.
De plus le lecteur mp3 que j’utilise (lien), lorsqu’on l’arrête retient la piste à laquelle il est rendu mais pas l’endroit dans la piste.
Or les podcasts d’une émission se présentent le plus souvent (tout le temps) sous la forme d’un fichier mp3 unique et recommencer à écouter une émission complète parce que la dernière fois on s’est arrêté 10 minutes avant la fin, non merci.
Donc l’idée était de faire un script bash de renommage des podcasts et de découper ces dernier en tronçon de x minutes.
Après de nombreux tâtonnements (c’était mon premier script) et divers recherches et inspiration sur le web voici le scripts fonctionnel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #!/bin/bash # répertoire de travail PODPATH=~/downloads/podcast TEMPDIR=$PODPATH/temp DUREE=2.00 echo Téléchargement des podcasts [ -f ~/.podracer/tempsub ] && rm ~/.podracer/tempsub # lance podracer qui va télécharger les podcats podracer echo Ménage des anciens podcasts #vide les mp3 traité lors de la session précédente [ "$(find $TEMPDIR -maxdepth 1 -iname '*.mp3')" ] && rm $TEMPDIR/*.mp3 echo Renommage des podcasts téléchargés #pour tous les mp3 téléchargés par podracer on les renomes for i in `ls $TEMPDIR/*/*.mp3`; do # date de création du fichier creationTime=$(stat -c "%y" "$i"|awk -F - '{print substr($1,3,4)$2substr($3,1,2)}') # on déduit le nouveau nom de base du fichier en prenant le nom du répertoire le contenant (spécifié dans ~/.podracer/subscrition) podName=`dirname "$i"|awk -F/ '{print $NF}'` # renomme / deplace le fichier # si un fichier ayant le même nom existe déjà (cas où plusieurs podcast d'une même emission téléchargé le même jour) if [ -f $TEMPDIR/"$creationTime"_"$podName"".mp3" ]; then # on ajoute un compteur COUNT=1 while [ -f $TEMPDIR/"$creationTime"_"$podName"_"$COUNT"".mp3" ]; do let COUNT=COUNT+1 done mv "$i" $TEMPDIR/"$creationTime"_"$podName"_"$COUNT"".mp3" else mv "$i" $TEMPDIR/"$creationTime"_"$podName"".mp3" fi done echo Découpage des podcasts téléchargés # pour chacun des fichiers renomés et déplacés, on split le mp3 en section de for i in `ls $TEMPDIR/*.mp3`; do echo "$i" NICENAME=`basename $i .mp3` # Send both stderr and stdout to /dev/null so that this is a quiet cron job mp3splt -t $DUREE -aqd $PODPATH -o $NICENAME-@n $i > /dev/null 2>&1 done |
Le script est normalement pas trop mal commenté, mais voici ce qu’il fait :
- Suppression du répertoire ~/.podracer/tempsub, ce dernier contient les fichiers temporaires que podracer crée en cours de téléchargement. Si la précédente exécution ne s’est pas terminé correctement les fichiers temporaires ne sont pas detruits et leurs présence le téléchargment ultérieur du podcast.
- Pour tous les fichier mp3 présents dans un sous répertoire de ~/downloads/podcast/temp (paramétré dans podracer.conf) on les copie dans ~/downloads/podcast/temp en les renommant ainsi :
AAMMJJ_sousRepertoire_incrément.mp3
AAMMJJ : date
sousRépertoire : sous répertoire paramétré dans le fichier subscrition de podracer, d’où l’intérêt de mettre un nom caractérisant le podcast
incrément : optionnel au cas ou 2 podcasts de la même émission serait téléchargé le même jour
- Pour tous les fichier mp3 présents dans ~/downloads/podcast/tem, découpage du fichier en morceau de 2 minutes avec l’utilitaire mp3splt
Il faudra préalablement à l’exécution de ce script avoir installé mp3splt (sudo aptitude install mp3splt) et avoir fait un chmod 755 sur le script.
Ce script pourra ensuite être planifié dans une tache cron.