Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 19/01/2013, à 16:50

[Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)

Bonjour à tous.
Je vous livre ici un script qui me permet de récupérer chaque jour sur ma machine la "Revue de presque" de Nicolas Canteloup depuis le site d'Europe 1. Il y a sans doute mieux ailleurs mais celui-ci a le mérite d'être léger et facilement adaptable.

Il faut juste remplacer le 'toto' de la seconde ligne par votre homedir. Les fichiers mp3 se retrouveront dans votre dossier ~/Musique

#!/bin/bash
DOWNLOAD_DIR="/home/toto/Musique/"
URL_EUROPE1='http://www.europe1.fr/MediaCenter/Emissions/La-revue-de-presque-de-Nicolas-Canteloup/'

# isoler le premier téléchargement de la page $URL_EUROPE1
url1=`wget -q -O- $URL_EUROPE1 | grep 'btn-telechargement' | 	head -n 1`
# isoler l'URL de son fichier mp3
url2=`echo $url1 | sed 's/.*media_url=\([^ ]*\)".*/\1/'`
# url_decode basique mais suffisant
url3=`echo $url2 | sed 's/%3A/:/gi' | sed 's/%2F/\//gi'`
#echo $url3

# générer la date du jour
today=`date -d '0 day ago' +'%Y-%m-%d'`
# extraire et tronquer le nom de fichier...
#filename=`echo $url3 | sed 's/.*\/\(.*\)\-.*\.mp3/\1/'`
filename=`echo $url3 | sed 's/.*\/\(.*\)\-[0-9]*\.mp3/\1/'`
#echo $filename
# ... et le préfixer avec la date de la veille
filename=$DOWNLOAD_DIR$today"_"$filename".mp3"
#echo $filename
# télécharger le fichier
wget -O $filename $url3

Ensuite,
- j'ai appelé ce fichier recup_podcast_canteloup.sh
- je lui ai donné les droits d'exécution
- je l'ai placé en root dans un nouveau répertoire /opt/canteloup/
- j'ai planifié son exécution à 11h55 du lundi au vendredi:

sudo crontab -e

avec la ligne

55 11 * * 1-5 /opt/canteloup/recup_podcast_canteloup.sh > /opt/canteloup/log.txt

Et voilà, tout est prêt pour mon jogging du week-end. Bon amusement!

Hors ligne

#2 Le 20/01/2013, à 14:27

Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)

Merci pour le scripte.

Hors ligne

#3 Le 22/01/2013, à 01:08

Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)

cool


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

http://act.freepress.net/sign/internetdeclaration

Hors ligne

#4 Le 22/01/2013, à 14:36

Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)

Hello Krrf,

Merci pour ton script. smile

Pour le répertoire home, tu peux remplacer /home/toto par $HOME:

[danv@sheeva ~]$ echo $HOME
/home/danv

Pour le crontab, pas besoin d'être root pour le lancer, ni même que le script se trouve dans /opt. Tu peux avoir (crontab -e):

55 11 * * 1-5 cd /home/toto && ./recup_podcast_canteloup.sh > ./log.txt

sinon tes fichiers générés risquent d'avoir root comme owner (ce qui n'est pas un problème avec sudo chown login:group fichiers pour les changer de propriétaire mais bon, c'est une manip de moins). smile

Dernière modification par Vergeylen (Le 22/01/2013, à 14:37)

Hors ligne

#5 Le 10/04/2013, à 20:35

Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)

url3=`echo $url2 | sed 's/%3A/:/gi' | sed 's/%2F/\//gi'`
url3=`echo $url2 | sed -e 's/%3A/:/gi' -e 's/%2F/\//gi'`

==> Une autre façon d'écrire

filename=`echo $url3 | sed 's/.*\/\(.*\)\-[0-9]*\.mp3/\1/'`
filename=`echo $url3 | sed -e "s/.*\///" -e "s/-[0-9].*//"`

==> Une autre façon d'écrire

Quelle est la différence entre  :

today=`date -d '0 day ago' +'%Y-%m-%d'`

et

today=`date +"%Y-%m-%d"`

Hors ligne

Haut de page ↑