Salut à tous !
Etant donné que Captvty ou VideoDownloadHelper ne permettent pas de télécharger directement les épreuves des JO en replay depuis le site de FranceTV, voilà une méthode qui fonctionne :
- pour les replays de France2/3/4 : charger la page dans votre navigateur, ouvrir l'explorateur réseau (F12 ou Ctrl-Maj-E), filtrer pour chercher un fichier .m3u8 (index_xxx_av), clic-droit > "ouvrir dans un nouvel onglet" pour le télécharger, puis le charger dans VLC > clic-droit > "Enregistrer" > Cocher "Enregistrer le flux brut" et lancer l'enregistrement pour obtenir le fichier intégral.
(ou bien : ffmpeg -i input.m3u8 -vcodec copy -c copy -bsf:a aac_adtstoasc output.mp4)
- pour les replays des épreuves individuelles sur :
https://pyeongchang2018.sport.francetvi ... index.htmlC'est un peu moins direct mais voilà comment j'ai fait, je vais prendre l'exemple de la finale du snowboard dames pour illustrer mon propos :
https://pyeongchang2018.sport.francetvi ... -2018.html1. Charger la page dans votre navigateur et ouvrir l'Explorateur Réseau (F12 / Ctrl-Maj-E)
2. Commencer par filtrer sur "manifest" pour avoir les différents flux, choisir une des qualités proposées (pour l'exemple j'ai pris 14000000), ouvrir dans un nouvel onglet pour le télécharger.
On obtient un fichier avec les différents fragments :
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:1973-02-16T03:08:14Z
#EXTINF:6.000000,no-desc
Fragments(video=986800940000000,format=m3u8-aapl-v3,audiotrack=audio_1)
#EXTINF:6.000000,no-desc
Fragments(video=986801000000000,format=m3u8-aapl-v3,audiotrack=audio_1)
...
#EXTINF:2.000000,no-desc
Fragments(video=986842640000000,format=m3u8-aapl-v3,audiotrack=audio_1)
#EXT-X-ENDLIST
Repérer les indices de début, de fin et l'incrément
3. filtrer pour trouver des fichiers "Fragments", en choisir un, clic-droit > Copier le lien cURL
Par exemple, on obtient ça :
curl 'https://dvr-i-jo2018-francetv.akamaized.net/dvr/559ef675-87b7-4cfb-a2c8-d6d4b6c28dae/559ef675-87b7-4cfb-a2c8-d6d4b6c28dae.ism/
QualityLevels(1400000)/Fragments(video=986802020000000,format=m3u8-aapl-v3,audiotrack=audio_1)' -H 'Pragma: no-cache' -H 'Origin:
https://pyeongchang2018.sport.francetvinfo.fr' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/64.0.3282.140 Chrome/64.0.3282.140 Safari/537.36' -H 'Accept: */*' -H 'Referer:
https://pyeongchang2018.sport.francetvi ... 0f1a022bf' -H 'Connection: keep-alive' -H 'Cache-Control: no-cache' --compressed
C'est la syntaxe à respecter pour récupérer chaque fragment de vidéo.
4. Il ne reste plus qu'à faire un script qui va récupérer les différents fragments indiqués dans le Manifest.m3u8 et les concaténer
Pour vous donner une idée, ça donne un truc de ce genre :
url_deb="https://dvr-i-jo2018-francetv.akamaized.net/dvr/
559ef675-87b7-4cfb-a2c8-d6d4b6c28dae/559ef675-87b7-4cfb-a2c8-d6d4b6c28dae.ism/QualityLevels(1400000)/Fragments(video="
url_fin="0000000,format=m3u8-aapl-v3,audiotrack=audio_1)"
for i in {
98680094..
98684264..
6}
do
URL=$url_deb$i$url_fin ;
curl $URL -H 'Pragma: no-cache' -H 'Origin:
https://pyeongchang2018.sport.francetvinfo.fr' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/64.0.3282.140 Chrome/64.0.3282.140 Safari/537.36' -H 'Accept: */*' -H 'Referer:
https://pyeongchang2018.sport.francetvi ... =4173&cs6=0466179b-3cea-4760-8eaa-67f0f1a022bf' -H 'Connection: keep-alive' -H 'Cache-Control: no-cache' --compressed >> Part$i ;
cat Part$i >> outfile ;
rm Part$i ;
done
En couleurs, les variables à remplacer selon la vidéo (a priori)
Bon, le principe est de récupérer chaque fragment et de les concaténer pour obtenir la vidéo complète, chacun adaptera la syntaxe à son OS et on doit pouvoir facilement récupérer les infos depuis la page Web (en Javascript?) pour générer ce script (mais j'ai pas cherché plus loin)
Le code (à lancer dans un interpréteur bash) :
- Code: Tout sélectionner
url_deb="https://dvr-i-jo2018-francetv.akamaized.net/dvr/559ef675-87b7-4cfb-a2c8-d6d4b6c28dae/559ef675-87b7-4cfb-a2c8-d6d4b6c28dae.ism/QualityLevels(1400000)/Fragments(video="
url_fin="0000000,format=m3u8-aapl-v3,audiotrack=audio_1)"
for i in {98680094..98684264..6}
do
URL=$url_deb$i$url_fin ;
curl $URL -H 'Pragma: no-cache' -H 'Origin: https://pyeongchang2018.sport.francetvinfo.fr' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/64.0.3282.140 Chrome/64.0.3282.140 Safari/537.36' -H 'Accept: */*' -H 'Referer: https://pyeongchang2018.sport.francetvinfo.fr/divaPlayer/html5/divaplayer.html?videoid=37588&configurationFileUrl=https://pyeongchang2018.sport.francetvinfo.fr//divaplayer/settings/settings-replay-fr.xml&cs1=www.francetvsportjo2018.fr&cs2=www.francetvsportjo2018.fr/video&cs3=html5&cs5=4173&cs6=0466179b-3cea-4760-8eaa-67f0f1a022bf' -H 'Connection: keep-alive' -H 'Cache-Control: no-cache' --compressed >> Part$i ;
cat Part$i >> outfile ;
rm Part$i ;
done
Hope this helps ...
Ubuntu Linux / France / Firefox 56.0