Magnétoscope pour arte.tv

Suite du post Magnétoscope pour arte.tv. En effet, le site arte.tv +7 évolue et l’ancien script ne marche plus.

J’avais commencé à refaire un script pour télécharger les vidéos sur arte +7. Je n’aidais notamment de ce site, lui aussi périmé par les derniers changements : How to save videos from ARTE +7 on your computer to watch them offline

Et puis je suis tombé sur un petit site fort sympathique : http://floriancrouzat.net/arte/
Le travail est déjà tout fait, et bien! Il suffit de copier l’URL de la page de la vidéo du site arte +7, et on se voit proposer des liens de téléchargement pour plusieurs qualités de visualisation.
Bref, j’ai laissé tomber mon script…

Cependant, je voulais aussi récupérer sur arte future, la série Que faire?
Voici donc un script bash pour télécharger toute la série :

#!/bin/bash
VIDEOS="http://future.arte.tv/fr/sujet/que-faire-des-reponses-aux-enjeux-de-demain"
echo " ---------------------------------------------------------------"
echo " > Lien : $VIDEOS"
PREV=$VIDEOS

HASH=$(echo "$VIDEOS" | md5sum | cut -d ' ' -f 1)
echo " > Hash lien : $HASH"
HTMLFILE=$(echo "$VIDEOS" | cut -d '/' -f 6)
HTMLSITE=$(echo "$VIDEOS" | cut -d '/' -f 3)
echo " > Fichier html : $HTMLFILE"
cd ~/temp
[ ! -d videos.arte.tv.$HASH ] && mkdir videos.arte.tv.$HASH
cd videos.arte.tv.$HASH
[ -f link.html ] && rm link.html
wget -q --header="Host: $HTMLSITE" --header "Referer: $PREV" --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0" "$VIDEOS" && mv "$HTMLFILE" link.html
[ ! -f link.html ] && echo "Pas de fichier html !" && exit 1

JURL=$(grep "arte_vp_url" link.html | cut -d '"' -f 2)
#JURL=$(echo $JURL | echo -e "$(sed 's/+/ /g; s/%/\x/g')")
for L in $JURL
do echo " > URL json : $L"
   JSONFILE=$(echo "$L" | cut -d '/' -f 6)
   [ -f $JSONFILE ] && rm $JSONFILE
   wget -q --header="Host: $HTMLSITE" --header "Referer: $PREV" --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0" $L
   if [ -f $JSONFILE ]
   then
      mv $JSONFILE $JSONFILE.json
      echo " > Fichier json : $JSONFILE.json"
#     VURL=$(cat $JSONFILE.json | echo -e "$(sed 's/"/n/g; s/\//g')" | grep http | grep mp4 | grep EQ | head -1)
      VURL=$(cat $JSONFILE.json | echo -e "$(sed 's/"/n/g; s/\//g')" | grep http | grep mp4 | grep EQ | tail -1)
      echo " > URL video : $VURL"
      MP4FILE=$(echo "$VURL" | cut -d '/' -f 9)
      echo " > Fichier video : $MP4FILE"
      HTMLSITE2=$(echo "$VURL" | cut -d '/' -f 3)
      [ ! -f "$MP4FILE" ] && wget --header="Host: $HTMLSITE2" --header "Referer: $PREV" --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0" $VURL
   else echo "Pas de fichier json !"
   fi
done

ls -Alh