Récupérer le lien d'une vidéo (M3U8, MP4)

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede Pulsar33 » Ven 16 Fév 2018 10:53

Bonjour,

ZedSoft a écrit:Si tu veux quelques choses de plus globales que cette méthode, il faut comprendre que tous les sites ont leur propre système pour générer les flux et en change plus ou moins régulièrement donc il me parait difficile de proposer une démarche universelle.

Merci pour ta réponse ZedSoft, même si elle ne va pas vraiment dans le sens de ce que j'espérais.
Je réfléchis au sujet ...

Bonne journée
Pulsar33


Windows XP / France / Firefox 52.0
Sur neonet.fr : téléchargez gratuitement VCTL v2.0 pour vos traitements vidéos ( à découvrir en lisant le Tutoriel ).
Pulsar33 ... Matériels : PCs MINT 18 & XP SP3, NAS Asustor, Disques Multimédia EMTEC, Tuner TNT TERRATEC, Camescope DV.
Avatar de l’utilisateur
Pulsar33
 
Messages: 1462
Inscription: Dim 30 Sep 2012 14:23
Localisation: Bordeaux

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede LittleWing » Ven 16 Fév 2018 12:52

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.html
C'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.html

1. 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
Dernière édition par LittleWing le Ven 16 Fév 2018 16:08, édité 1 fois.
LittleWing
 
Messages: 6
Inscription: Ven 16 Fév 2018 11:39

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede Pulsar33 » Ven 16 Fév 2018 15:50

Bonjour,

Voilà un niveau de détail formateur et constructif, bravo LittleWing :pouce:
A expérimenter, et compléter s'il y a lieu ...
Merci à tous de poursuivre la démarche

Bonne journée
Pulsar33


Windows XP / France / Firefox 52.0
Sur neonet.fr : téléchargez gratuitement VCTL v2.0 pour vos traitements vidéos ( à découvrir en lisant le Tutoriel ).
Pulsar33 ... Matériels : PCs MINT 18 & XP SP3, NAS Asustor, Disques Multimédia EMTEC, Tuner TNT TERRATEC, Camescope DV.
Avatar de l’utilisateur
Pulsar33
 
Messages: 1462
Inscription: Dim 30 Sep 2012 14:23
Localisation: Bordeaux

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede aazerty » Ven 16 Fév 2018 17:18

Bjr ,

> comment obtenir le lien ayant la terminaison "index_4_av.m4u9?null=0&id=...%3d%3d" <= m3u8 !!!
Si quelqu'un peut expliquer ?

Slt .


Windows XP / France / Firefox 52.0
!!! DUBITATIF !!!
Avatar de l’utilisateur
aazerty
 
Messages: 2086
Inscription: Sam 10 Déc 2011 14:41

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede BONE23 » Ven 16 Fév 2018 18:39

Pulsar33 a écrit:Merci à tous de poursuivre la démarche


Bonsoir

Malheureusement ce n'est pas à la porté de tous le monde ce genre manipulation :shock:


Windows 7 64 bits / France / Firefox 58.0 64 bits
Avatar de l’utilisateur
BONE23
 
Messages: 110
Inscription: Ven 9 Sep 2011 19:53

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede racacax » Ven 16 Fév 2018 18:55

Bonjour,
Merci :pouce:

@BONE23 : Avec ce tuto, même mon grand père a réussi tellement c'est bien expliqué alors qu'il sait à peine ouvrir son navigateur donc je pense que tu peux y arriver sans problème ;)


Windows 7 64 bits / France / Firefox 58.0 64 bits
Avatar de l’utilisateur
racacax
 
Messages: 870
Inscription: Mer 13 Nov 2013 17:57

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede BONE23 » Ven 16 Fév 2018 19:01

racacax a écrit:@BONE23 : Avec ce tuto, même mon grand père a réussi tellement c'est bien expliqué alors qu'il sait à peine ouvrir son navigateur donc je pense que tu peux y arriver sans problème


Re

Je ne parlais pas de moi... :D


Windows 7 64 bits / France / Firefox 58.0 64 bits
Avatar de l’utilisateur
BONE23
 
Messages: 110
Inscription: Ven 9 Sep 2011 19:53

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede Pulsar33 » Ven 16 Fév 2018 19:03

Bonsoir,

... et si ça devient suffisamment générique, on essayera d'automatiser ...

Bonne soirée
Pulsar33


Windows XP / France / Firefox 52.0
Sur neonet.fr : téléchargez gratuitement VCTL v2.0 pour vos traitements vidéos ( à découvrir en lisant le Tutoriel ).
Pulsar33 ... Matériels : PCs MINT 18 & XP SP3, NAS Asustor, Disques Multimédia EMTEC, Tuner TNT TERRATEC, Camescope DV.
Avatar de l’utilisateur
Pulsar33
 
Messages: 1462
Inscription: Dim 30 Sep 2012 14:23
Localisation: Bordeaux

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede LittleWing » Ven 16 Fév 2018 22:29

aazerty a écrit:Bjr ,
> comment obtenir le lien ayant la terminaison "index_4_av.m4u9?null=0&id=...%3d%3d" <= m3u8 !!!
Si quelqu'un peut expliquer ?

Eh bien ... tout compte fait, la question est pertinente :oops:
Encore ce matin, c'était trivial ...
J'ai refait le test (France2/3/4) et j'ai l'impression qu'ils ont changé leur protocole, maintenant, il y a des liens en f4m (manifest)
(et mon Chromium me dit qu'il lui manque un plugin pour lire la vidéo, maintenant)
Mais tu peux encore avoir les m3u8 en passant par fetchfile.net
Tout cela est très étrange.

Edit: bon, du coup, maintenant que c'est en f4m, ça fonctionne nickel avec KSV HDS Downloader et le plugin HDS Link Detector dans Firefox 8-)

Code: Tout sélectionner
php AdobeHDS.php --manifest "https://replayftv-vh.akamaihd.net/z/streaming-adaptatif_media-secure_france-dom-tom/2018/S07/J5/171485090-5a86c7dcdc095-,standard1,standard2,standard3,standard4,standard5,.mp4.csmil/manifest.f4m?audiotrack=0:fra:Francais&hdnea=exp=1518823617~acl=/z/streaming-adaptatif_media-secure_france-dom-tom/2018/S07/J5/171485090-5a86c7dcdc095-,standard1,standard2,standard3,standard4,standard5,.mp4.csmil*~hmac=bef8186c58caede0e9be7bdf718d446adb792bc803d4df71f902418bb778676e&hdcore=3.10.0&plugin=aasp-3.10.0.29.28" --delete --auth "pvtoken=exp%3D9999999999%7Eacl%3D%252f%252a%7Edata%3DZXhwPTE1MTg5MDk0MTh+YWNsPSUyZip+ZGF0YT1wdmMsc35obWFjPTZmNzgzMzc4ODMwM2I5MmJmZjlhZDVmNDcxYjA2ZDU4MDkzMDIwYjhmYTE1NWVhYzEwMmEwNTMwYTI0ZGE1ZmE%3D%21VMDyitlpwrkBYLvGBUZHtLl7f/lHc1eEiIMQg0EOxC8%3D%7Ehmac%3D2A295089154523ACF018F7F93B394EA72D3C4766EC04CD05852E733437708B28&hdntl=exp=1518909418~acl=%2fz%2fstreaming-adaptatif_media-secure_france-dom-tom%2f2018%2fS07%2fJ5%2f171485090-5a86c7dcdc095-,standard1,standard2,standard3,standard4,standard5,.mp4.csmil*~data=hdntl~hmac=452131bb6a35eec5cc38c009f72fdd244a008a90427ff44569cd7e450151db06&audiotrack=0:fra:Francais&als=0,3,NaN,2,0,NaN,0,0,0,41,f,0,4261.46,f,s,UPKQGGVOYNBY,3.10.0,41&hdcore=3.10.0&plugin=aasp-3.10.0.29.28" --useragent "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:56.0) Gecko/20100101 Firefox/56.0"

KSV Adobe HDS Downloader

Processing manifest info....
Quality Selection:
Available: 1526 876 614 333 210
Selected : 1526
Fragments Total: 710, First: 1, Start: 1, Parallel: 8
SessionKey: 21668d04f65ba66e514ea07a8f135c78
Downloading 710/710 fragments
Found 710 fragments
Finished

Ubuntu Linux / France / Firefox 56.0
LittleWing
 
Messages: 6
Inscription: Ven 16 Fév 2018 11:39

Re: Récupérer le lien d'une vidéo (M3U8, MP4)

Messagede aazerty » Ven 16 Fév 2018 23:24

Bjr ,

Voï , voï ! Il faut savoir comment trouver "index_..." . "fetchfile.net" et zedeo savent le trouver !!!
Il suffirait que ZedSoft , nous indique la procédure ( il doit y avoir à paramètrer "Mozilla/5.0 (iPhone..." ) .
Ensuite streamlink , fait le reste .

Slt .

PHP non fonctionnel :
===
KSV Adobe HDS Downloader
Processing manifest info....
Access Denied! Unable to download the manifest.
!!! DUBITATIF !!!
Avatar de l’utilisateur
aazerty
 
Messages: 2086
Inscription: Sam 10 Déc 2011 14:41

Précédente

Retourner vers Tuto

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités