#1 Le 19/01/2013, à 15:50
- Krrf
[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, à 13:27
- mecanotox
Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)
Merci pour le scripte.
Hors ligne
#3 Le 22/01/2013, à 00:08
- cracolinux
Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)
Hors ligne
#4 Le 22/01/2013, à 13:36
- Vergeylen
Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)
Hello Krrf,
Merci pour ton script.
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).
Dernière modification par Vergeylen (Le 22/01/2013, à 13:37)
Hors ligne
#5 Le 10/04/2013, à 19:35
- Cyrille_tux
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
#6 Le 14/12/2013, à 13:58
- anton_suarez
Re : [Script/Bash] Récupérer chaque jour le podcast de Canteloup (Europe1)
One-line :
wget -qO- http://www.europe1.fr/MediaCenter/Emissions/La-revue-de-presque-de-Nicolas-Canteloup |grep \.mp3|sed "s/.*\(http\%3A.*\.mp3\).*/\1/g" | sed "s,%3A,:,g" | sed "s,%2F,/,g" | xargs -n 1 wget -nc -q
Hors ligne