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.

Les commentaires sont fermés.