Télécharger les Guignols de l’Info v2
En avril nous publiions notre script bash pour télécharger les Guignols de l’Info. Malheureusement, et comme chaque année, Canal+ a changé les technologies de son site web, et notre méthode ne fonctionne plus aujourd’hui.
Nous sommes donc fiers de vous présenter la version entièrement réécrite de ce script pour télécharger les Guignols de l’Info en cette rentrée 2009!
La technique
Vous vous souviendrez peut-être que notre précédente technique profitait d’une faille de sécurité sur le site de Canal+ : bien que le player exploitait le RTMP, les fichiers étaient toujours accessibles en HTTP. Nous en profitions donc pour simplement wget les différentes vidéos. Évidemment cette année le HTTP est entièrement bloqué et il faut donc passer par le RTMP.
Le hic, c’est que récupérer une URL RTMP relève du parcours du combattant. Mais il y a quelques jours jeantube est passé nous signaler une URL très, très intéressante : http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/guignols. Celle-ci correspond, je pense, au résultat AJAX des recherches de vidéo sur le site de Canal+.
Ce qui est génial avec ce fichier, c’est qu’il comporte en clair les URL rtmp://. Il ne nous reste plus qu’à utiliser un petit logiciel nommé rtmpdump pour enregistrer localement le fichier.
Le script
Pour automatiser la tâche, je vous ai rédigé un petit script bash très simple qui à coups de sed et grep récupère l’URL d’un épisode et lance le rtmpdump dessus. Il essaye toujours de prendre la plus haute qualité disponible et s’utilise comme le précédent:
./getGuignols.sh 0 #Télécharge l'épisode d'aujourd'hui
./getGuignols.sh 3 #Télécharge l'épisode d'il y a trois jours
Le script est publié sous GPLv3 et j’ai inclu dans l’archive le binaire rtmpdump distribué sous GPLv2. Le tout se télécharge ici
A noter que le code est très facile à comprendre et devrait être aisément adapté à d’autres émissions publiées sur le site de Canal+.
Remerciements
Je remercie jeantube sans qui nous ne serions nulle part et les quelques acharnés de Chrogeek.com qui ont permis de démêler le schmilblik.
Tu roxes sévère du boudin
)
Des que j’ai un peu de temps, je vais inspecter tout ça
Merci !
HUm ! Parfait ! ça marche à merveille !!!
Récupéré aujourd’hui le flux d’hier (normal vu l’heure)
Merci beaucoup !!!
Salut, G-E-N-I-A-L ! Vite adapté/adopté pour prendre les guignols/le zapping et réencoder le tout pour mon baladeur. Merci
Bonjour tout le monde. Alors là je dois être débile, mais bon, j’ai le lien rtmp, mais impossible de faire marcher le logiciel “rtmpdump” car ça me donne une archive tar.gz dont je ne comprend pas le fonctionnement… J’ai décompressé cette archive, et je me retrouve avec un dossier plein de fichiers a extensions inconnues dont je ne sais pas quoi faire
@Alex Il y a trois fichiers dans le .tar.gz : getGuignols.sh, rtmpdump et LICENSES. Je ne sais pas ce que tu utilises pour décompresser ça mais l’erreur doit venir de là
Oh, et c’est un logiciel pour systèmes Linux (quoique probablement compatible avec tous les Unix). Si tu es sous Windows et que tu ne sais même pas ce que veut dire Unix, passe ton chemin.
et sous windows on fait comment?
@asran298 http://doc.ubuntu-fr.org/debutant
version Mac:
#!/bin/bash
# Script getGuignols.sh permettant de télécharger l’épisode des Guignols de l’Info en HTTP
# Écrit par Tito pour Geekfault (http://geekfault.org)
# Distribué sous license GNU/GPLv3
# UTILISATION :
# $ ./getGuignols.sh #Récupère l’épisode de la veille
# $ ./getGuignols.sh 0 #Récupère l’épisode d’aujourd’hui
# $ ./getGuignols.sh 3 #Récupère l’épisode d’il y a 3 jours
# Plus d’infos : http://geekfault.org/...
if [ -z $1 ]; then # Par défaut, télécharge l’épisode de la veille
DATE=1
else
DATE=$1
fi
echo -e “33[1m * Recherche de l'épisode des Guignols de l'Info du date `date -v-"$DATE"d +%d/%m/%y`33[0m"
IDATE=`date -v-"$DATE"d +%y%m%d`
RTMP=$(wget http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/guignols -O data)
RTMP=$(sed -e "s/[]/\\”$’\n’”/g” data|grep ‘^rtmp’ |grep ‘LES_GUIGNOLS’|grep $IDATE |grep ‘_HD\.’)
EXT=”mp4″
if [ -z "$RTMP" ]; then
33[0m”
RTMP=$(sed -e “s/[]/\\”$’\n’”/g” data|grep ‘^rtmp’ |grep ‘LES_GUIGNOLS’|grep $IDATE |grep ‘_H\.’)
EXT=”flv”
fi
if [ -z "$RTMP" ]; then
RTMP=$(sed -e “s/[]/\\”$’\n’”/g” data|grep ‘^rtmp’ |grep ‘LES_GUIGNOLS’|grep $IDATE |grep ‘_L\.’)
fi
if [ -z "$RTMP" ]; then
echo -e “33[1;31m * Désolé, nous n’avons pas trouvé d’épisode des Guignols de l’Info pour le `date -v-”$DATE”d +%d/%m/%y`33[0m”
else
echo -e “33[1m * L’épisode du `date -v-”$DATE”d +%d/%m/%y` a été trouvé ! Lancement du téléchargement…33[0m”
echo -e ” $RTMP”
./rtmpdump -r $RTMP -o “Guignols_”$IDATE.$EXT
echo -e “33[1m * Le fichier téléchargé est enregistré en `date -v-”$DATE”d +%d/%m/%y`.$EXT ! Bon visionnage
fi
Merci Alex! La seule incomatibilité avec Mac serait donc la commande date?
Oh et désolé pour le délai, le système anti-spam a trouvé ton commentaire suspect, j’ai dû le valider à la main ^^
Pour la version Mac, il faut compiler ça avec quoi?
@Martin
C’est un script, il ne faut pas le compiler, il est directement exécutable
Oui mais non, faut pas abuser non plus:
rtmpdump: Taille totale des paquets (installation): 101,19 Mo
Ça ‘boost’ peut-être mais il prend ça place le cochon!
Dommage, merci quand même…
Je ne sais pas comment tu t’en sors… Je founis rtmpdump compilé dans l’archive et il fait 126ko.
Et pour les idiots qui utilise encore windows, pas moyen?
Roooh
Bon ça va j’avoue tout.
Il y a un logiciel qui s’appelle Canaille Plus qui permet de le faire. Toutes les infos ici : http://www.chrogeek.com/2009/10/canaille-plus-ou-comment-telecharger-les-videos-du-site-canal-plus/
Merci bien
@jeantube
salut ,
aparement depuis vendredi 13 il ne marche plus , vendredi il s’obstinais a prendre l’emission de jeudi , j’ai rententé aujourd’hui , il ne marche plus du tout :/
ils ont encore du changer leurs routines
@psychik
Testé pour la première fois aujourd’hui et ça marche !
Je le rajoute à ma crontab.
Merci
Oui le disfonctionnement était dû à un bug chez Canal+, pas dans le script