Auteur Sujet: Comment télécharger des vidéos sur TF1+, RMCBFMPlay ou M6+  (Lu 4855 fois)

0 Membres et 1 Invité sur ce sujet

calande

  • Abonné SFR fibre FttH
  • *
  • Messages: 103
  • Nantes, 44
Vous souhaitez télécharger des vidéos (films, séries, divertissement, émissions) depuis le site TF1+ (www.tf1.fr) dans le cadre de votre droit à la copie privée, pour pouvoir visionner vos vidéos quand bon vous semble ? Voici un tutoriel qui explique comment faire.

Le téléchargement des vidéos se fait en utilisant le logiciel WideFrog. Pour commencer, il faut installer Python, et ensuite installer le logiciel WideFrog. Je préfère renvoyer vers la section 2 de cette publication en Anglais, afin que les infos soient toujours à jour.

À l'avenir, avant d'utiliser le logiciel, vérifiez qu'il est bien à jour, en comparant la version sur votre ordi, avec la version donnée sur le forum.

Ouvrez le fichier config.json qui se trouve dans le sous-dossier C:\Users\Nom-Utilisateur\Sous-Dossier\Widefrog\widefrog_v3_2_0_python_source_code\app_files et modifiez la valeur de la variable OUTPUT_MEDIA_PATH en ligne 9 pour définir l'emplacement où enregistrer les vidéos, par ex. C:/Users/Nom-Utilisateur/Desktop/  (oui, il s'agit bien de forward slashes). Descendez aussi à la ligne 50 et fournissez vos identifiants M6+ le cas échéant, si vous souhaitez télécharger une vidéo de cette plateforme.  Descendez ensuite à la ligne 78 et fournissez vos identifiants RMCBFMPlay le cas échéant, si vous souhaitez télécharger une vidéo de cette plateforme. Descendez enfin à la ligne 89 et fournissez vos identifiants tf1.fr le cas échéant, si vous souhaitez télécharger une vidéo de cette plateforme. Puis, enregistrez vos modifications.

Une fois le logiciel installé et configuré, pour l'utiliser, il faut lancer le Windows PowerShell sur votre ordi (pas le terminal classique mais bien le Windows PowerShell, depuis le menu "Démarrer" de Windows, sinon les commandes ne fonctionnent pas comme prévu). Il faut exécuter les commandes suivantes, en modifiant le chemin pour correspondre à celui de votre ordinateur, changer aussi le N° de version de WideFrog pour que ça corresponde, et enfin, choisir l'URL de la vidéo vers l'émission TV que vous souhaitez télécharger:

cd C:\Users\Nom-Utilisateur\Sous-Dossier\Widefrog\widefrog_v3_2_0_python_source_code
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
venv\Scripts\activate
python widefrog.py "https://www.rmcbfmplay.com/video/rmc-decouverte/faites-entrer-laccuse/s3e21-pierre-chanal-les-disparus-de-mourmelon?contentId=Product::NEUF_RMCDEC_RMC00198801&universe=PROVIDER"

Le script va vous demander de taper yes dans le terminal pour confirmer le lancement du téléchargement, allez-y. Par défaut, la vidéo est enregistrée dans le sous-dossier C:\Users\Nom-Utilisateur\Sous-Dossier\Widefrog\widefrog_v2_11_0_python_source_code\media\ ou sinon, dans le sous-dossier de votre choix (cf. le fichier config.json édité ci-dessus).

À savoir, j'ai inclus des apostrophes autour de l'URL de la vidéo car si jamais l'URL comporte un "&", ça produit une erreur de synthaxe lors de l'exécution.*

Joyeux téléchargements !  8)

jeanloup

  • Abonné Free adsl
  • *
  • Messages: 1
  • 01
Comment télécharger des vidéos sur TF1+, RMCBFMPlay ou M6+
« Réponse #1 le: Aujourd'hui à 17:09:07 »
Bonjour et merci pour ce super post, j'en ai profité pour en faire une image Docker:
https://github.com/mycodedoesnotcompile2/widefrog_docker/

N'hésitez pas si vous rencontrez des bugs

vivien

  • Administrateur
  • *
  • Messages: 53 635
    • Bluesky LaFibre.info
Comment télécharger des vidéos sur TF1+, RMCBFMPlay ou M6+
« Réponse #2 le: Aujourd'hui à 19:21:46 »
Je donne une alternative : yt-dlp

=> [TUTO] Installer et utiliser yt-dlp sur macOS

Ci-dessous, tutoriel sous Linux Debian / Ubuntu (pour une autre distribution linux, installez PIPX avant de suivre ce tutoriel)
On va installer yt-dlp avec pipx (le gestionnaire d'applications Python)  :
sudo apt update : Met à jour le gestionnaire de paquet de Debian / Ubuntu
sudo apt install ffmpeg pipx : Installation du paquet de pipx
pipx ensurepath : Configuration de pipx (ne pas faire cette commande avec les droits root)
Si vous venez d'installer pipx pour la première fois, fermez votre terminal et rouvrez-en un nouveau pour prendre en compte le chemin d'accès)
pipx install "yt-dlp[default,curl-cffi]" : Installe yt-dlp (ne pas faire cette commande avec les droits root)
curl -fsSL https://deno.land/install.sh | sh : Installe le moteur JavaScript Deno (sans les scripts de résolution yt-dlp-ejs, certains formats peuvent manquer et l’extraction peut échouer). Deno est le choix recommandé et, contrairement à Node.js, il est activé par défaut dans yt-dl

Mise à jour :
Il y a plusieurs mises à jour par mois pour s'adapter aux évolutions des plateformes (vous devez faire les mises à jour dès qu'un téléchargement échoue)

L'option classique yt-dlp -U (mise à jour intégrée) est désactivée lorsqu'on passe par un gestionnaire de paquets comme pipx. C'est toujours pipx upgrade yt-dlp qu'il faut utiliser.
yt-dlp --version (vérifier la version actuelle)
pipx upgrade yt-dlp (pour mettre à jour uniquement yt-dlp)
ou pipx upgrade-all (Mettre à jour tous les paquets installés via pipx en une seule fois)




Utilisation de yt-dlp

La commande est yt-dlp -F url_de_la_apge_avec_la_video

Un exemple avec la vidéo gqIa-kW9R8g sur YouTube. De nombreuses définitions et encodages sont proposés si la plateforme en a plusieurs.

J'ai colorié en vert les encodages AV1.


[info] Available formats for gqIa-kW9R8g:
ID      EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3     mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2     mhtml 80x45        1    │                  mhtml │ images                                  storyboard
sb1     mhtml 160x90       1    │                  mhtml │ images                                  storyboard
sb0     mhtml 320x180      1    │                  mhtml │ images                                  storyboard
139-drc m4a   audio only      2 │    1.54MiB   49k https │ audio only          mp4a.40.5   49k 22k [fr] low, DRC, m4a_dash
249-drc webm  audio only      2 │    1.72MiB   55k https │ audio only          opus        55k 48k [fr] low, DRC, webm_dash
139     m4a   audio only      2 │    1.54MiB   49k https │ audio only          mp4a.40.5   49k 22k [fr] low, m4a_dash
249     webm  audio only      2 │    1.72MiB   55k https │ audio only          opus        55k 48k [fr] low, webm_dash
140-drc m4a   audio only      2 │    4.08MiB  130k https │ audio only          mp4a.40.2  130k 44k [fr] medium, DRC, m4a_dash
251-drc webm  audio only      2 │    4.49MiB  142k https │ audio only          opus       142k 48k [fr] medium, DRC, webm_dash
140     m4a   audio only      2 │    4.08MiB  130k https │ audio only          mp4a.40.2  130k 44k [fr] medium, m4a_dash
251     webm  audio only      2 │    4.49MiB  142k https │ audio only          opus       142k 48k [fr] medium, webm_dash
91      mp4   256x144     25    │ ~  6.01MiB  191k m3u8  │ avc1.4D400C         mp4a.40.5           [fr]
160     mp4   256x144     25    │    2.12MiB   67k https │ avc1.4d400c     67k video only          144p, mp4_dash
278     webm  256x144     25    │    3.69MiB  117k https │ vp9            117k video only          144p, webm_dash
394     mp4   256x144     25    │    1.25MiB   40k https │ av01.0.00M.08   40k video only          144p, mp4_dash
92      mp4   426x240     25    │ ~ 12.03MiB  382k m3u8  │ avc1.4D4015         mp4a.40.5           [fr]
133     mp4   426x240     25    │    4.53MiB  144k https │ avc1.4d4015    144k video only          240p, mp4_dash
242     webm  426x240     25    │    3.58MiB  114k https │ vp9            114k video only          240p, webm_dash
395     mp4   426x240     25    │    2.25MiB   71k https │ av01.0.00M.08   71k video only          240p, mp4_dash
93      mp4   640x360     25    │ ~ 24.12MiB  767k m3u8  │ avc1.4D401E         mp4a.40.2           [fr]
134     mp4   640x360     25    │    8.79MiB  279k https │ avc1.4d401e    279k video only          360p, mp4_dash
18      mp4   640x360     25  2 │   11.86MiB  376k https │ avc1.42001E         mp4a.40.2       44k [fr] 360p
243     webm  640x360     25    │    7.02MiB  223k https │ vp9            223k video only          360p, webm_dash
396     mp4   640x360     25    │    5.12MiB  163k https │ av01.0.01M.08  163k video only          360p, mp4_dash
94      mp4   854x480     25    │ ~ 43.26MiB 1375k m3u8  │ avc1.4D401E         mp4a.40.2           [fr]
135     mp4   854x480     25    │   18.99MiB  603k https │ avc1.4d401e    603k video only          480p, mp4_dash
244     webm  854x480     25    │   13.48MiB  428k https │ vp9            428k video only          480p, webm_dash
397     mp4   854x480     25    │    9.20MiB  292k https │ av01.0.04M.08  292k video only          480p, mp4_dash
95      mp4   1280x720    25    │ ~ 81.00MiB 2574k m3u8  │ avc1.64001F         mp4a.40.2           [fr]
136     mp4   1280x720    25    │   39.85MiB 1265k https │ avc1.64001f   1265k video only          720p, mp4_dash
247     webm  1280x720    25    │   30.93MiB  982k https │ vp9            982k video only          720p, webm_dash
398     mp4   1280x720    25    │   20.67MiB  656k https │ av01.0.05M.08  656k video only          720p, mp4_dash
96      mp4   1920x1080   25    │ ~167.44MiB 5320k m3u8  │ avc1.640028         mp4a.40.2           [fr]
137     mp4   1920x1080   25    │   79.12MiB 2511k https │ avc1.640028   2511k video only          1080p, mp4_dash
248     webm  1920x1080   25    │   64.72MiB 2054k https │ vp9           2054k video only          1080p, webm_dash
399     mp4   1920x1080   25    │   42.05MiB 1335k https │ av01.0.08M.08 1335k video only          1080p, mp4_dash
271     webm  2560x1440   25    │  216.88MiB 6883k https │ vp9           6883k video only          1440p, webm_dash
400     mp4   2560x1440   25    │  137.39MiB 4360k https │ av01.0.12M.08 4360k video only          1440p, mp4_dash


Pour faire le téléchargement de la vidéo, il faut taper yt-dlp -f suivi du code du flux vidéo et le code du flux audio avec le symbole + entre les deux suivi de l'URL.

Exemple pour le flux 1080p en AV1 + audio Opus du tableau proposé plus haut : yt-dlp 399+251 url_de_la_video

Pour le codec AV1, le fichier sera au format .mkv. Pour l'avoir au format .mp4, il faut rajouter l'option --merge-output-format mp4 avant l'URL de la vidéo.




Autre exemple avec le JT de TF1 d'hier :

$ yt-dlp -F https://www.tf1.fr/tf1/jt-20h/videos/le-jt-de-20-heures-de-tf1-du-samedi-24-octobre-2026-13375461.html
[TF1] Extracting URL: https://www.tf1.fr/tf1/jt-20h/videos/le-jt-de-20-heures-de-tf1-du-samedi-24-octobre-2026-13375461.html
[TF1] le-jt-de-20-heures-de-tf1-du-samedi-24-octobre-2026-13375461: Downloading JSON metadata
[wat.tv] Extracting URL: wat:14582882
[wat.tv] 14582882: Downloading JSON metadata
[wat.tv] 14582882: Downloading MPD manifest
[info] Available formats for 14582882:
ID                    EXT RESOLUTION FPS │   FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
dash-audio_fra=64000  m4a audio only     │ ~ 19.29MiB   64k dash  │ audio only        mp4a.40.2   64k 48k [fr] DASH audio, m4a_dash
dash-audio_fra=128000 m4a audio only     │ ~ 38.57MiB  128k dash  │ audio only        mp4a.40.2  128k 48k [fr] DASH audio, m4a_dash
dash-video=517696     mp4 640x360     25 │ ~156.01MiB  518k dash  │ avc1.4D401E  518k video only          DASH video, mp4_dash
dash-video=1472026    mp4 1024x576    25 │ ~443.61MiB 1472k dash  │ avc1.4D401F 1472k video only          DASH video, mp4_dash


Exemple pour télécharger la vidéo du JT de TF1 hier en 576p + audio 128 Kb/s : yt-dlp -f dash-video=1472026+dash-audio_fra=128000 https://www.tf1.fr/tf1/jt-20h/videos/le-jt-de-20-heures-de-tf1-du-samedi-24-octobre-2026-13375461.html

Si le site demande une authentification pour télécharger la vidéo : l'option --cookies-from-browser firefox peut être utile (personnellement je n'en ai pas besoin, même sur TF1+)

numel1

  • Abonné Orange Fibre
  • *
  • Messages: 9
Comment télécharger des vidéos sur TF1+, RMCBFMPlay ou M6+
« Réponse #3 le: Aujourd'hui à 21:02:08 »
Je donne une alternative : yt-dlp

=> [TUTO] Installer et utiliser yt-dlp sur macOS



Je m'en sers depuis des années, et elle est aussi vieille que populaire (comme VLC)
À noter que yt-dlp est aussi populaire que controversée, et très régulièrement bloquée sur ftvinfo, sur TF1 (impossible de DL depuis 2025 chez eux), et sur youtube depuis la merdification de l'année dernière : il faudra deno (JS obligatoire, avant ca l'était pas)
https://github.com/yt-dlp/yt-dlp/issues/15012

vivien

  • Administrateur
  • *
  • Messages: 53 635
    • Bluesky LaFibre.info
Comment télécharger des vidéos sur TF1+, RMCBFMPlay ou M6+
« Réponse #4 le: Aujourd'hui à 21:25:01 »
yt-dlp fonctionne parfaitement sur France TV, TF1 ou YouTube.

Si cela ne fonctionne pas, c'est soit que yt-dlp n'est pas à jour ou qu'il n'a pas de moteur JavaScript (cf mon tutoriel pour l'installation, ce n'est pas livré avec et c'est nécessaire dans quelques cas).

yt-dlp peut avoir plusieurs versions publiées par semaine pour s'adapter aux évolutions des plateformes qui tentent de le bloquer, il faut impérativement lancer la mise à jour dès le premier échec ou si on n'a pas accès à toutes les définitions proposées.
Il y a plusieurs mises à jour par mois pour s'adapter aux évolutions des plateformes (vous devez faire les mises à jour dès qu'un téléchargement échoue)
La version livré dans un paquet DEB avec la distribution Linux n'a pas les mises à jour nécessaires, d'où mon tutoriel qui passe par PIPX pour avoir la dernière version de yt-dlp. Il existe une version communautaire snap, mais elle n'a pas toutes les mises à jour, je déconseille.