web-dev-qa-db-fra.com

Télécharger des fichiers TS à partir d'un flux vidéo

Les vidéos sur la plupart des sites utilisent le téléchargement progressif, ce qui signifie que la vidéo est téléchargée sur mon ordinateur et facile à suivre. Il existe de nombreuses extensions pour cela, et même dans les dev-tools, cela se fait facilement.

Sur certains sites Web, les vidéos sont diffusées en streaming. ce qui signifie que nous ne téléchargeons pas qu'un fichier, nous téléchargeons beaucoup de petits paquets. Dans les outils de développement, ces paquets peuvent être tracés. Le site Web qui m'intéresse est le suivant: http://www.rtlxl.nl/#!/goede-tijden-slechte-tijden-10821/c8e2bff7-5a5c-45cb-be2b-4b3b3e866ffb .

-Les paquets ont une extension .TS.

-Les paquets peuvent être sauvegardés en copiant l'URL de la demande

-Je ne peux pas lire ces fichiers.

J'ai dû faire quelque chose de mal ou il me manque quelque chose. Je veux savoir ce que je fais mal. Je veux créer une extension chrome à usage personnel qui capture les URL de tous les paquets. Lorsque j'ai toutes les URL, je souhaite les transmettre à un script php qui les télécharge et utilise ffmpeg. pour les coller dans un fichier mp4.

S'il vous plaît aidez-moi à obtenir les colis.

37
Nicky Smits

Mise à jour :

Stream Video Dowloader L’extension Chrome permet de télécharger des flux m3u8 de manière transparente. Installez et appuyez sur play on video pour identifier le flux.

Ajout à @aalhanane et @ Micheal Espinola Jr

Comme m3u8x est uniquement disponible pour les fenêtres. Une fois que vous avez identifié l'URL m3u8, vous pouvez également utiliser Jdownloader2 ou VLC Media Player pour télécharger et concaténer le flux.

Jdownloader2: Copiez simplement l'URL m3u8 quand il est ouvert. Il reconnaîtra le flux dans l'onglet Linkgrabber.

VLC 3:

Ouvrir le réseau -> Coller m3u8 url -> Checkmark Flux de sortie -> Sélectionner les paramètres. Choisissez le fichier de sortie, le conteneur, l'encodage vidéo et audio. (par exemple, output.mp4, conteneur: mpeg4, vidéo: h264, audio: mp4a) Démarrer le flux. La vidéo ne sera pas lue, mais encodée, montrant la progression de l'encodage en déplaçant la barre de progression de la lecture de la vidéo.

22
dre-hh

---> Ouvrir Firefox

---> ouvrir la vidéo

---> Lire la vidéo

Cliquez ---> Ouvrir le menu

Cliquez sur ---> ouvrir les outils de développement Web

Cliquez sur ---> barre d'outils développeur

Cliquez ---> Réseau

---> Aller à Filtrer les URL ---> Ecrire "M3u8" -> pour Trouver "m3u8"

---> Copier l'URL ".m3u8"

=========================

Maintenant, téléchargez le logiciel "m3u8x" ----> https://tajaribsoft-en.blogspot.com/2016/06/m3u8x.html#downloadx12

---> logiciel ouvert "m3u8x"

---> coller l'URL "m3u8"

---> a choisi l'option "One ... One"

---> Cliquez sur Télécharger

---> Démarrer le téléchargement

=========================

image "Ouvrir le menu" ===>

a busy cat

image "Developer Toolbar" ===>

a busy cat

image "m3u8x" ===>

enter image description here

enter image description here

15
aalhanane

Vous devez télécharger tous les fichiers de flux de transport (.ts) et les concaténer dans un seul fichier mpeg pour la lecture. Les flux de transport tels que celui-ci sont associés à des fichiers de playlist (.m3u8) qui répertorient tous les fichiers .ts que vous devez télécharger et concaténer. Si disponible, il peut y avoir une liste de lecture secondaire .m3u8 qui listera séparément les fichiers Steam de sous-titres (.vtt).

10
Micheal Espinola

en utilisant this post

  • Ouvrez Firefox/chrome

  • ouvrir la page la vidéo

  • Lire la vidéo

  • cliquez sur F12 sur le clavier -> network

  • dans Filter URLs ts

  • copier le lien de ts

  • supprimer l'index et l'extension ts du lien

    par exemple:

    http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000_454.ts
    

    sera copié comme

     http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000
    

insérer dans le script ci-dessous sous LINK

#!/bin/bash

# insert here urls
LINK=(

'http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000' # replace this with your url 

)

mkdir my-videos
cd mkdir my-videos

CNT=0

for URL in ${LINK[@]}
do
  # create folder for streaming media
  CNT=$((CNT + 1))
  mkdir $CNT
  cd $CNT

  (

   DIR="${URL##*/}"

   # download all videos
   wget $URL'_'{0..1200}.ts

   # link videos
   echo $DIR'_'{0..1200}.ts | tr " " "\n" > tslist
   while read line; do cat $line >> $CNT.mp4; done < tslist

   rm -rf media* tslist
   ) &
   cd ..

done

wait

[~ # ~] éditer [~ # ~]

ajout de script dans python - fonctionne sous windows et linux

import urllib2
import os
import shutil

my_lessons = [
   #  http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000_454.ts
    "http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000" # replace this with your url 


]

lesson_dir = "my_vids"
try:
    shutil.rmtree(lesson_dir)
except:
    print "ok"

os.makedirs(lesson_dir)
os.chdir(lesson_dir)

for lesson, dwn_link in enumerate(my_lessons):
    print ("downloading lesson  %d.. " % (lesson), dwn_link)
    file_name = '%d.mp4' % lesson
    f = open(file_name, 'ab')
    for x in range(0, 1200):
        try:
            rsp = urllib2.urlopen(dwn_link + "_%d.ts" % (x) )
        except:
            break
        file_name = '%d.mp4' % lesson
        print "downloading  %d.ts" % (x)
        f.write(rsp.read())
    f.close()



print "done good luck!! ==================  "

si le script échoue ou télécharge un fichier vide, essayez de supprimer le test d'emballage pour voir ce qui échoue.

8
dina

J'avais besoin de télécharger des flux vidéo et audio HLS depuis un portail e-learning avec un contenu protégé par une session avec application/mp2t Type de contenu MIME.

Copier manuellement tous les en-têtes d'authentification dans les scripts de téléchargement serait trop fastidieux.

Mais la tâche est devenue beaucoup plus facile avec l’aide de Video DownloadHelper Extension de Firefox et c’est Companion App . Il permettait de télécharger à la fois les listes de lecture m3u8 avec les listes de morceaux TS et les flux vidéo et audio dans des fichiers mp4 en un clic de bouton tout en préservant correctement les en-têtes d'authentification.

Les fichiers vidéo et audio séparés qui en résultent peuvent être fusionnés avec ffmpeg :

ffmpeg -i video.mp4 -i audio.mp4 -acodec copy -vcodec copy video-and-audio.mp4 

ou avec mp4box :

mp4box -add audio.mp4#audio video.mp4 -out video-and-audio.mp4

Essayé Video DownloadHelper Chrome) aussi, mais cela n'a pas fonctionné pour moi.

4
Vadzim

Facile youtube-dl exemple sur macOS (dans la ligne de commande Terminal; Windows également pris en charge):

$ youtube-dl -F https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8
[generic] f08e80da-bf1d-4e3d-8899-f0f6155f6efa: Requesting header
[generic] f08e80da-bf1d-4e3d-8899-f0f6155f6efa: Downloading m3u8 information
[info] Available formats for f08e80da-bf1d-4e3d-8899-f0f6155f6efa:
format code           extension  resolution note
audio-English_stereo  mp4        audio only [en] 
628                   mp4        320x180     628k , avc1.42c00d, video only
928                   mp4        480x270     928k , avc1.42c00d, video only
1728                  mp4        640x360    1728k , avc1.42c00d, video only
2528                  mp4        960x540    2528k , avc1.42c00d, video only
4928                  mp4        1280x720   4928k , avc1.42c00d, video only
9728                  mp4        1920x1080  9728k , avc1.42c00d, video only (best)

$ youtube-dl --format 628 https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8
...
frame= 5257 fps=193 q=-1.0 Lsize=    6746kB time=00:03:30.16 bitrate= 263.0kbits/s speed=7.73x    
video:6679kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.998669%
[ffmpeg] Downloaded 6907810 bytes
[download] 100% of 6.59MiB in 00:29

$ open f08e80da-bf1d-4e3d-8899-f0f6155f6efa-f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mp4

Utilisez les outils de développement> Réseau du navigateur pour obtenir l'URL m3u8 (manifeste HLS) lors du démarrage d'une vidéo en streaming.

2
Peter Tseng

Copiez et collez l'un des fichiers vidéo .ts dans un nouvel onglet de Chrome. Supprimez le numéro d'identification du fichier .ts (0,1,2,3, etc., ou quel que soit son numéro) et remplacez l'extension ".ts" par ".mp4". Cela devrait faire apparaître le fichier vidéo dans votre navigateur comme d'habitude.

1
Connor

J'ai apporté quelques modifications à la réponse de Dina pour éviter d'essayer de télécharger/combiner 1200 pièces s'il n'y en a pas autant.

J'ai aussi trouvé utile de trier waterfall dans l'onglet réseau de chrome. Cela triera en fonction du moment où les fichiers sont téléchargés. Ainsi, lorsque vous diffusez une vidéo, les parties les plus récemment téléchargées apparaissent en haut, ce qui facilite la recherche du fichier .ts liens.

#!/bin/bash

# Name of the containing folder
GROUP="My Videos"

# Example link: https://vids.net/ABCAED/AADDCDE/m3u8/AADDCDE/AADDCDE_0.ts
# Insert below as: https://vids.net/ABCAED/AADDCDE/m3u8/AADDCDE/AADDCDE

# INSERT LINKS TO VIDEOS HERE
LINK=(
'Title for the video link'
'https://vids.net/ABCAED/AADDCDE/m3u8/AADDCDE/AADDCDE'
'Title for the next video'
'https://vids.net/EECEADFE/EECEADFE/m3u8/EECEADFE/EECEADFE'
)

# ------------------------------------------------------------------------------
mkdir "$GROUP"
cd "$GROUP"

I=0
while [ $I -lt ${#LINK[@]} ]
do
  # create folder for streaming media
  TITLE=${LINK[$I]}
  mkdir "$TITLE"
  cd "$TITLE"
  mkdir 'parts'
  cd 'parts'

  J=$((I + 1))
  URL=${LINK[$J]}

  I=$((I + 2))

  DIR="${URL##*/}"

  # download all streaming media parts
  VID=-1
  while [ $? -eq 0 ];
  do
    VID=$((VID + 1))
    wget $URL'_'$VID.ts
  done

  # combine parts
  COUNTER=0
  while [  $COUNTER -lt $VID ]; do
    echo $DIR'_'$COUNTER.ts | tr " " "\n" >> tslist
    let COUNTER=COUNTER+1
  done
  while read line; do cat $line >> $TITLE.ts; done < tslist

  rm -rf tslist
  mv "$TITLE.ts" "../$TITLE.ts"

  cd ..
  rm -rf 'parts'
  cd ..

done
1
Cyrus