Bon, j'en ai aussi fait un en m'inspirant des autres 😛.
Deux choses à noter : j'utilise wget plutôt que xmllint et je renomme les fichiers à la fin.
Le mien est plutôt fait pour tourner en tache cron.
#!/bin/bash
#
# Dépendances : wget flvstreamer
#
## Émissions :
#
# Action Discrète
# Groland MagZine
# Les Guignols
# SAV
# Stéphane Guillon
# Têtes à claques
# Zapping
#
## Variables :
#
# Répertoire où on stocke les vidéos :
REP="Emissions2"
# Changer séparateur de champs bash pour gérer les espaces
IFS=$'\n'
# Date :
d=1 # Charger les émissions d'il y a d jours
date=`date +%y%m%d --date ''$d' days ago'`
date2=`date +%y-%m-%d --date ''$d' days ago'`
fdate=`date +%d/%m/%y --date ''$d' days ago'`
## Pour télécharger les émissions :
#
function telecharger
{
echo "Téléchargement : "$2" du "`date +%A\ %d\ %B\ %Y --date ''$d' days ago'`" en cours..."
PAGE="http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/$1"
VIDEO=$( wget -q -O - $PAGE | grep -o -E 'rtmp[^<]*H.flv' | grep $date | grep $1 )
if [ ! -z "$VIDEO" ]
then
NOM=`echo "$VIDEO" | cut -d"/" -f 7`
flvstreamer -r $VIDEO -o $NOM
mv "$NOM" "$2 du ${date2}.flv"
echo "Fin du téléchargement de $NOM"
else
echo "Pas de vidéo trouvée pour ce jour"
fi
}
## Émissions à charger :
#
function emission
{
case "$1" in
1)
ID="DISCRETE"
NOM="Action Discrète"
telecharger $ID $NOM
;;
2)
ID="GROLAND"
NOM="Groland MagZine"
telecharger $ID $NOM
;;
3)
ID="GUIGNOLS"
NOM="Les Guignols"
telecharger $ID $NOM
;;
4)
ID="SAV"
NOM="SAV"
telecharger $ID $NOM
;;
5)
ID="GUILLON"
NOM="Stéphane Guillon"
telecharger $ID $NOM
;;
6)
ID="CLAQUES"
NOM="Têtes à claques"
telecharger $ID $NOM
;;
7)
ID="ZAPPING"
NOM="Zapping"
telecharger $ID $NOM
;;
*)
echo "L'émission n'existe pas"
exit 1
;;
esac
}
## Charger toutes les émissions :
#
cd $REP # Se placer dans le répertoire
for ((i=1;i<=7;i++))
do
emission $i
done
exit 0