Vos podcasts transférés automatiquement
Bonjour,
Cet article est intégralement issu de ce post sur le forum. Merci à Benjou.
Voici le but de ce tutorial :
- Téléchargement de vos podcasts toutes les deux heures
- Lors de la connexion de votre lecteur MP3 :
- Copie des nouveaux podcasts
- Suppression des podcasts de plus de deux jours
Voici comment cela fonctionne :
Toutes les deux heures, podracer va chercher vos nouveaux fichiers audio.
Lorsque vous connectez votre lecteur audio, un script lancé automatiquement va copier les fichiers puis supprimer les anciens fichiers.
L’installation et la configuration sont simples mais pas très agréables (que du code, pas d’interface graphique). Mais une fois que c’est fini, tout se fera automatiquement.
Récupération des fichiers audio de podcast
Installation
Nous allons commencer par installer le logiciel :
sudo apt-get install podracer
Configuration des flux
Définissons ensuite les flux de podcasts que vous voulez lire.
Pour ce faire, nous allons éditer le fichier
~/.podracer/subscriptions (si le dossier caché .podracer n’existe pas, créez-le)
La syntaxe est la suivante :
toute ligne commençant par autre chose qu’une adresse internet est considérée comme un commentaire (j’ai mis des # par habitude et pour les repérer plus facilement).
Un flux par ligne, sous la forme :
adresseFlux nomDossier
Les fichiers du flux seront copiés dans le dossier ~/podcasts/date/nomDossier.
Voici par exemple mon fichier subscriptions
# Bob and rob show
http://englishcaster.com/bobrob/wp-rss2.php BobRob# China 232
http://china232.libsyn.com/rss# Comme ca du Japon
http://feeds.feedburner.com/CommeCaDuJapon CommeCaDuJapon# Le grand débat
http://podcast.rtl.fr/legranddebat.xml Grand_debat# 2mn du peuple
http://www.rireetchansons.fr/podcasts/podcasts.php?id=40 2minPeuple# Jamzine
http://www.jamzine.net/share/feeds/podcast.xml Declencheur# Déclencheur
http://www.declencheur.com/clic/rss Declencheur#####################
###### PLONGEE ########
#####################
# Scubaradio
http://www.scubaradio.com/srpodcast.xml Scubaradio# Tek Pod diver
http://feeds.feedburner.com/PodDiverRadioTsc PodDiver# Beautiful oceans
http://blog.beautifuloceans.com/?feed=rss2 BeautifulOceans# The surface interval show
http://surfaceinterval.thepodcastnetwork.com/feed/
Conseil : pour un premier test, ne mettez qu’un seul flux !
Exécution du programme
Là, vous avez deux possibilités.
Dans le cadre de vos tests :
podracer
Et voilà, le téléchargement a commencé.
Si vous avez ajoutez des tonnes de flux, lancez plutôt la commande suivante :
podracer --catchup
Ceci ne téléchargera rien mais considèrera que les actuels flux ont été lus. Vous ne passerez pas trois heures à tout récupérer mais vous aurez seulement les futurs mises-à-jour (c’est à vous de voir ce que vous préférez).
Par la suite, les fichiers téléchargés seront dans le dossier ~/podcasts.
À présent, configurons le programme pour qu’il soit exécuté toutes les deux heures : c’est le rôle de crontab.
crontab -e
Et ajoutez la ligne
1 */2 * * * podracer
Branchement du lecteur MP3
Maintenant, travaillons l’interaction avec votre lecteur MP3.
Script de copie
Tout d’abord, créons un fichier exécutable qui permet de copier les fichiers à transférer dans un même dossier.
gedit ~/podcasts/datesorting
Copiez-y ce code :
#! /bin/sh
# récupère les derniers podcasts et liens dans le dossier Newer en changeant leur nom pour leur repertoire et leur date.
#vide les liens précédents
rm ~/podcasts/Newer/*
#trouve les derniers podcasts mp3 moins de 24h
for i in `find ~/podcasts/*/* -mtime -1|grep mp3`; do
creationtime=$(stat -c "%y" "$i"|awk '{print $1}') ## $2 $3}'|cut -c -17)
podpath=`echo $i|awk -F / '{print $6}'`
#cree des hards links en changeant le nom pour la date
cp -l $i ~/podcasts/Newer/"$podpath""$creationtime"".mp3"
done
#trouve les derniers podcasts ogg moins de 24h
for i in `find ~/podcasts/*/* -mtime -1|grep ogg`; do
creationtime=$(stat -c "%y" "$i"|awk '{print $1}') ## $2 $3}'|cut -c -17)
podpath=`echo $i|awk -F / '{print $6}'`
#cree des hards links en changeant le nom pour la date
cp -l $i ~/podcasts/Newer/"$podpath""$creationtime"".ogg"
#enleve les vieux podcasts
for i in `find ~/podcasts/ -mtime +2`; do
if [ "$i" != "/home/benoit/podcasts/datesorting" ]
then
rm -rf $i
fi
done
done
Rendons ce fichier exécutable
chmod +x ~/podcasts/datesorting
Créons le dossier Newer :
mkdir ~/podcasts/Newer
Allez, courage, on y est presque
Script de transfert sur le lecteur
Maintenant, on veut que, dès qu’on connecte notre lecteur, il copie les fichiers sur le lecteur et y supprime les fichiers trop anciens.
Récuépration de l’identifiant du lecteur
Connectez votre lecteur MP3 et allumez-le.
En ouvrant le fichier /etc/mtab, vous trouverez une ligne du type
/dev/sdXX /chemin/vers/votre/lecteur.......
Notez, la valeur de /dev/sdXX. Il s’agit du “chemin” où est connectez votre lecteur.
Supposons que c’est /dev/sdc1, pour la suite de notre exemple.
tapez en ligne de commande :
hal-find-by-property --key block.device --string /dev/sdc1 en remplaçant /dev/sdc1 par la valeur que vous avez trouvé précedemment.
Vous récupèrerez alors une ligne du type
/org/freedesktop/Hal/devices/volume_uuid_4640_3BE7
Il s’agit de l’identifiant unique de votre lecteur.
Mise en place du script
Nous allons maintenant créer un fichier autorun.sh à la racine du lecteur. Copiez-y ce script :
#!/bin/sh
#determine le point de montage
#MOUNTPOINT=$(awk 'END {print $2}' /etc/mtab)
MOUNTPOINT=$(hal-get-property --udi /org/freedesktop/Hal/devices/volume_uuid_4640_3BE7 --key volume.mount_point)
~/podcasts/datesorting
rsync -rtvu --copy-links --delete --stats ~/podcasts/Newer/ $MOUNTPOINT/podcasts | zenity --text-info --title="Updating Podcasts" --width=600 --height=600
en remplaçant
/org/freedesktop/Hal/devices/volume_uuid_4640_3BE7 par l’identifiant unique trouvé précédemment.
Rendez ce fichier exécutable.
Personnellement, la technique avec l’identifiant unique n’a pas fonctionné car le point de montage contient un espace dans son nom. Si c’est aussi votre cas, remplacez dans la ligne commençant avec rsync “$MOUNTPOINT” par le point de montage, par exemple /media/lecteur
Peaufinage
Allez dans Système > Préférences > Périphériques et médias amovibles.
Assurez-vous que, dans l’onglet Stockage, la case Lancer automatiquement des programmes sur les nouveaux périphériques et médias est cochée.
Déconnectez votre lecteur MP3, rebranchez-le et normalement, si tout s’est bien passé, une fenêtre s’ouvrira avec pour titre Updating Podcasts
Si ce n’est pas le cas, essayez de lancer le fichier autorun.sh se trouvant à la racine du lecteur depuis une ligne de commande pour voir les éventuels messages d’erreur.
trackback:
