{MyCanal} – Télécharger les vidéos de la plateforme MyCanal.fr
Hello les amis,
Petit challenge que l’on m’a lancé récemment, est-il possible de télécharger les vidéos sur MyCanal.fr …
On parle de plus en plus souvent de DRM, et les plateformes mènent la vie dur à toutes les petites extensions qui permettent de télécharger les vidéos en ligne !
Alors comme tout bon challenger je me suis penché sur ce projet !!!
Est-il oui ou non possible de télécharger une vidéo sur MyCanal ?
Bien entendu, je n’aurais pas écrit cet article pour vous dire qu’il ne serait pas possible de le faire.
Cela étant dit, je tiens à dire à toute personne qui m’écrirait dans 3 ans que « ça ne marche pas / plus » … c’est « normal » …
Un « Hack » n’est pas fait pour durer dans le temps, il s’agit là d’une astuce temporaire, qui n’est pas vouée à être persistente.
Canal+ (myCanal aura certainement mis à jour sa plateforme d’ici quelques temps)
Alors la question c’est comment faire pour y parvenir ?
Reverse Engeenering – Step 1 :
La première étape consiste bien entendu à analyser un peu avec la console (touche F12 de votre clavier)
J’ai donc cherché dans le code source l’élément « video » avec le code suivant :
document.getElementsByTagName(‘video‘)
Et j’ai pu constater que … la source de la vidéo (url) était … un blob
Lorsque l’on sait ça … il faut s’attendre à ce qu’il y ait quelques contre-mesures pour empêcher de copier la vidéo !
Je prends donc quelques instants pour regarder dans l’onglet « network » (réseau) pour analyser les données envoyées et reçues par la plateforme !
Je recherche bien évidemment un petit .mp4 ou .m3u8 …
Bingo !
J’obtiens toutes les URL possibles pour la qualité de la vidéos … dont celles qui ne sont pas « sécurisés »
La requête qui permet de récupérer ces informations est la suivante :
https://secure-service.canal-plus.com/video/rest/<type>/cplus/<id>?format=json
Pour l’instant mes recherches m’ont permis de découvrir qu’il existait 2 types (il en a peut être d’autres) :
- getVideosLiees
- getRelancesVideo
Concernant l’id … il s’agit bien entendu de l’id de la vidéo que vous pourrez facilement retrouver dans l’url :
Ainsi, via cette requête, vous aurez accès à la liste des différents liens de téléchargement de la vidéos.
Cette liste contient notamment les fichiers mp4 …
Bien entendu, j’ai pu vérifier que cela fonctionnait !
Il est possible que vous ayez parfois un « Access Denied« .
Si c’est le cas, essayez juste une autre qualité.
Dans le cas où vous n’auriez que le .m3u8 de disponible, faites attention … il ne s’agit pas là d’un simple fichier vidéo … vous ne pourrez pas l’emmener partout où vous voulez, ni le consulter hors ligne …
Ce fichier, si vous l’ouvrez avec un bloc note, contient simplement des informations relatives aux différentes parties de la vidéo …
Un lecteur tel que VLC est parfaitement capable de l’utiliser pour lire une vidéo.
D’ailleurs, si vous utilisez VLC, allez dans le menu « Ouvrir un flux réseau » …
Récupérez ensuite l’url du .m3u8 et copiez là dans le champ prévu à cet effet :
Sur le bouton « lire » vous avez une petite flèche … choisissez « Convertir »
Et voilà, plus qu’à indiquer l’endroit où vous souhaitez sauvegarder votre petit mp4 et c’est parti !
Le Code
Pour mes lecteurs préférés, j’ai pris le temps de faire un script, qui vous fournira directement la liste des liens de téléchargement disponibles pour une vidéos de myCanal.
Il suffit simplement de le copier dans la console de votre navigateur lorsque vous serez sur la page de la vidéo que vous souhaitez télécharger ;)
Conclusion
Merci à tous pour vos encouragements, que ça soit par mail ou par commentaire !
J’espère pouvoir continuer à vous écrire sur de bons sujets ;)
Je ne peux malheureusement pas aider tout le monde sur tous les sujets, et je vous invite à exprimer vos demandes directement par commentaire, ce qui peut permettre à d’autres personnes de vous aider ^^
En attendant je tiens à vous dire que la plupart de mes articles sont tirés de mon quotidien, mais de plus en plus de sujets viennent de vos demandes ;)
Ce qui explique aussi pourquoi je ne peux pas aider tout le monde ^^
En tout cas je vous souhaite à tous un excellent Weekend !