Vos podcasts transférés automatiquement

Logo podcastsBonjour,

Cet article est intégralement issu de ce post sur le forum. Merci à Benjou.

Voici le but de ce tutorial :

  1. Téléchargement de vos podcasts toutes les deux heures
  2. Lors de la connexion de votre lecteur MP3 :
    1. Copie des nouveaux podcasts
    2. 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.

Articles similaires:


6 réponses to “Vos podcasts transférés automatiquement”

  1. AvatarJJL
    1

    Si j’ai bien compris ce que tu cherche à faire, amaroK permet déjà tout cela.
    - téléchargement automatique des podcasts (au choix)
    - mise en file d’attente de ceux que tu veux copier vers ton baladeur
    - détection du branchement et copie des fichiers (je crois qu’il peut le faire tout seul, mais je le fait à la main, j’aime pas les trucs trop automatiques :) )
    Le tout à coup de clicks de souris ;)

    Reply to this comment.
  2. Avatarszdavid
    2
    Author Comment

    Arf, peut être, je ne sais pas ; je dois avouer que je ne connais pas Amarok pour les Podcasts et le transfert, je ne l’ai jamais utilisé pour recevoir les podcasts.

    Là, les avantages que je trouve :
    1) pas besoin de lancer un logiciel, ça se fait en tâche de fond
    2) le script est peut être chiant à mettre en place mais une fois que c’est fait, plus de clics nécessaires
    3) je ne connaissais pas d’autre solution et ne m’étais pas posé la question avant de trouver ce truc sur le forum :D

    Reply to this comment.
  3. Avatarbenjou
    3

    Hello,

    @JJL. Le grand interêt, c’est effectivement que ça tourne en tâche de fond et que tes podcasts sont toujours prêts. Pas besoin de lancer Amarok (ou listen, ou Rhythmbox), d’attendre que les podcasts se downloadent: ils sont déjà downloadés.

    @szdavid: Si le uuid ne fonctionne pas, tu peux utiliser cette commande:

    MOUNTPOINT=$(awk ‘END {print $2}’ /etc/mtab)

    (elle est commentée dans le script plus haut). Elle prends le dernier point de montage du mtab. Comme ton lecteur vient d’être branché au moment ou ce script se lance, il doit correspondre à la dernière entrée du mtab. C’est moins élégant que le uuid mais plus sûr que d’utiliser un mountpoint fixe: Si tu as déjà une clé usb branchée ou tout autre UMS, le point de montage de ton lecteur va changer et tu risque d’updater tes podcasts sur le mauvais périphérique…

    J’espère que c’est clair
    Merci pour ton article

    Reply to this comment.
  4. Avatarnicopatch
    4

    Hello sdavid, merci encore pour tout cela, j’en avais entendu parlé il y a déjà un moment, et c’est vraiment nickel comme procédure.

    Petite question dont j’ai l’impression d’avoir déjà la réponse : est-ce que le petit script qui permet la copie automatique sur le lecteur mp3 est utilisable sur un ipod nano 4Go?

    Merci de ta réponse, et bonne fête de la musique!

    Reply to this comment.
  5. Avatarszdavid
    5
    Author Comment

    Salut,

    à moins que des détails techniques ne m’échappent, je ne vois aucune raison pour laquelle ça ne marcherait pas

    A++

    Reply to this comment.
  6. trackback trackback:
    6
    OpenPlanete.fr

    Gestion des podcasts…

    Un petit script qui permet de gérer des podcast ( téléchargement, copie sur le baladeur…) sans lancer un logiciel spécifique….

    Reply to this comment.

Laissez un commentaire

Login Method

OpenID

Anonymous

Vous pouvez utilisez les balises suivantes dans vos commentaires:

<a href=""></a> <strong></strong> <em></em> <blockquote></blockquote>

Votre commentaire :

|Top | Content|


|Top | FarBar|



Attention: This is the end of the usable page!
The images below are preloaded standbys only.
This is helpful to those with slower Internet connections.