14/09/2009

Télécharger les Guignols de l’Info v2

"Nous, le téléchargement, on est pour! Si si, ça fait 50 fois qu'on télécharge le moment à l'Assemblée où la droite est ridicule!" (François Hollande)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    #Télécharge l'épisode de la veille
./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.

Tito Création Geekfault, internet , , , ,
  1. 14/09/2009 à 16:23 | #1

    Tu roxes sévère du boudin :) )

    Des que j’ai un peu de temps, je vais inspecter tout ça :)

    Merci !

  2. 14/09/2009 à 18:38 | #2

    ;) :) :)

  3. 14/09/2009 à 18:39 | #3

    HUm ! Parfait ! ça marche à merveille !!!
    Récupéré aujourd’hui le flux d’hier (normal vu l’heure)
    Merci beaucoup !!!

  4. Uytko
    15/09/2009 à 22:53 | #4

    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

  5. Alex
    16/09/2009 à 02:53 | #5

    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 :(

  6. 18/09/2009 à 22:43 | #6

    @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à :D

    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.

  7. asran298
    20/09/2009 à 03:23 | #7

    et sous windows on fait comment?

  8. Alex D
    27/09/2009 à 22:34 | #9

    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
    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 ;) 33[0m”
    fi

  9. 01/10/2009 à 18:14 | #10

    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 ^^

  10. Martin
    09/10/2009 à 23:43 | #11

    Pour la version Mac, il faut compiler ça avec quoi?

  11. 10/10/2009 à 14:32 | #12

    @Martin
    C’est un script, il ne faut pas le compiler, il est directement exécutable ;)

  12. groslourd
    05/11/2009 à 02:41 | #13

    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…

  13. 05/11/2009 à 07:15 | #14

    Je ne sais pas comment tu t’en sors… Je founis rtmpdump compilé dans l’archive et il fait 126ko.

  14. Olorin
    06/11/2009 à 19:49 | #15

    Et pour les idiots qui utilise encore windows, pas moyen?

  15. 06/11/2009 à 21:50 | #16

    Roooh :D 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/

  16. Olorin
    07/11/2009 à 10:06 | #17

    Merci bien ;)

  17. psychik
    17/11/2009 à 19:01 | #18

    @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

  18. lb
    18/11/2009 à 22:44 | #19

    @psychik
    Testé pour la première fois aujourd’hui et ça marche !
    Je le rajoute à ma crontab.
    Merci

  19. 20/11/2009 à 18:13 | #20

    Oui le disfonctionnement était dû à un bug chez Canal+, pas dans le script ;-)

  1. Pas encore de trackbacks