Video’s op de meeste sites maken gebruik van progressief downloaden, wat betekent dat de video naar mijn computer wordt gedownload en gemakkelijk te traceren is. Er zijn veel extensies om dit te doen, en zelfs in de dev-tools is dit eenvoudig te doen.
Op bepaalde websites worden video’s gestreamd. wat betekent dat we niet slechts 1 bestand downloaden, we downloaden veel kleine pakketten. In de dev-tools zijn deze pakketten te traceren. De website waarin ik geïnteresseerd ben is: http://www.rtlxl.nl/#!/goede-tijden-slechte-tijden-10821/c8e2bff7-5a5c-45cb-be2b-4b3b3e866ffb.
-De pakketten hebben de extensie .TS.
-Pakketten kunnen worden opgeslagen door de url van het verzoek te kopiëren
-Ik kan deze bestanden niet afspelen.
Ik moet iets verkeerd hebben gedaan, of ik mis iets. Ik wil weten wat ik fout doe. Ik wil een Chrome-extensie maken voor persoonlijk gebruik die de url’s van alle pakketten vastlegt. als ik alle url’s heb, wil ik ze doorgeven aan een php-script dat ze downloadt en ffmpeg gebruikt om ze in een mp4-bestand te plakken.
Help me alsjeblieft om de pakketten te krijgen.
Antwoord 1, autoriteit 100%
Toevoeging aan @aalhanane en @Micheal Espinola Jr
Als m3u8x is alleen beschikbaar voor Windows.
Zodra je de m3u8-url hebt geïdentificeerd, kun je ook Jdownloader2 of VLC Media Player gebruiken om de stream te downloaden en samen te voegen.
Jdownloader2:
Kopieer gewoon de m3u8-url wanneer de Jdownloader is geopend. Het herkent de stream op het tabblad Linkgrabber.
VLC 3:
Open netwerk -> Plak m3u8 url -> Vinkje Streamoutput -> Selecteer Instellingen.
Kies uitvoerbestand, container, video- en audiocodering.
(bijv. output.mp4, container: mpeg4, video: h264, audio: mp4a)
Stream starten. De video wordt niet afgespeeld, maar gecodeerd, waarbij de voortgang van de codering wordt weergegeven door de voortgangsbalk voor het afspelen van de video te verplaatsen.
WAARSCHUWING: eerder voorgestelde Chrome-extensie Stream Video Downloaderbevat malware. Zie reddit-bericht
Antwoord 2, autoriteit 98%
Eenvoudig youtube-dlvoorbeeld op macOS (in de opdrachtregel Terminal; Windows ook ondersteund):
# List variants (resolutions/bitrates)
$ 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)
# Choose a variant to download, and use its format code below
$ 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
Gebruik de ontwikkelaarstools van de browser > Netwerk om de m3u8 (HLS-manifest) URL te krijgen bij het starten van een streaming video.
Antwoord 3, autoriteit 68%
—> Firefox openen
—> open pagina de video
—> Video afspelen
Klik —> Menu openen
Klik —> open hulpprogramma’s voor webontwikkelaars
Klik —> Ontwikkelaarswerkbalk
Klik —> Netwerk
—> Ga naar URL’s filteren —> Schrijf “M3u8” –> voor Zoek “m3u8”
—> Kopieer URL “.m3u8”
========================
Download nu software “m3u8x” —-> https://tajaribsoft-en.blogspot.com/2016/06/m3u8x .html#downloadx12
—> open software “m3u8x”
—> plak URL “m3u8”
—> koos optie “One…One”
—> Klik op Downloaden
—> Download starten
========================
afbeelding “Menu openen” ===>
afbeelding “Ontwikkelaarswerkbalk” ===>
afbeelding “m3u8x” ===>
Antwoord 4, autoriteit 58%
met behulp van ditbericht
-
Firefox / chrome openen
-
open de video
-
Video afspelen
-
klik op
F12
op toetsenbord ->network
-
in
Filter URLs
ts -
link van ts kopiëren
-
index en ts-extensie uit link verwijderen
bijvoorbeeld:
http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000_454.ts
wordt gekopieerd als
http://vid.com/vod/mp4:vod/PRV/Yg0WGN_6.mp4/media_b180000
voeg in onderstaand script in onder 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
BEWERKEN
script toevoegen in python – draait op Windows en Linux
import urllib.request
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 = '%04d.mp4' % lesson
f = open(file_name, 'ab')
for x in range(0, 1200):
try:
rsp = urllib.request.urlopen(dwn_link + "_%04d.ts" % (x) )
except:
break
file_name = '%d.mp4' % lesson
print "downloading %d.ts" % (x)
f.write(rsp.read())
f.close()
print "done good luck!! ================== "
Als het script faalt of een leeg bestand downloadt, probeer dan de try-wrap te verwijderen om te zien wat er niet lukt
Antwoord 5, autoriteit 28%
Je moet alle transportstream-bestanden (.ts) downloaden en ze samenvoegen tot een enkele mpeg om ze af te spelen. Transportstreams zoals deze hebben bijbehorende afspeellijstbestanden (.m3u8) die alle .ts-bestanden weergeven die u moet downloaden en samenvoegen. Indien beschikbaar, is er mogelijk een secundaire .m3u8-afspeellijst die de stoombestanden met ondertitels (.vtt) afzonderlijk vermeldt.
Antwoord 6, autoriteit 25%
Ik moest HLS-video- en audiostreams downloaden van een e-learningportal met sessiebeveiligde inhoud met application/mp2t
MIME-inhoudstype.
Het handmatig kopiëren van alle authenticatieheaders naar de downloadscripts zou te omslachtig zijn.
Maar de taak werd veel eenvoudiger met behulp van Video DownloadHelperFirefox-extensie en het is Companion-app.
Het mag zowel M3U8-afspeellijsten met TS Chunks-lijsten en daadwerkelijke video- en audiostreams downloaden in MP4-bestanden via een klik op de knop, terwijl het correct behoud van authenticatiekoppen.
De resulterende afzonderlijke video- en audiobestanden kunnen samengevoegd met ffmpeg :
ffmpeg -i video.mp4 -i audio.mp4 -acodec copy -vcodec copy video-and-audio.mp4
of met mp4box :
mp4box -add audio.mp4#audio video.mp4 -out video-and-audio.mp4
geprobeerd video-downloadhelper chromen extensie ook, maar het is niet werk voor mij.
Antwoord 7, Autoriteit 20%
Hoewel dit niet ooit op zou zijn gevraagd en door de VETTER-verwerking door de eerste plaats door de eerste plaats, heb ik geen idee … maar ik geef toch mijn antwoord.
Na het verkennen van eigenlijk alle opties die hier worden gepresenteerd, blijkt dat de eenvoudigste vaak de beste is.
FFMPEG eerst downloaden van: https://evermeet.cx/fmpeg/
Nadat u uw .m3u8-afspeellijstbestand hebt (hoogstwaarschijnlijk van de webpagina of netwerkverkeer), voert u deze opdracht uit:
ffmpeg -i "http://host/folder/file.m3u8" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 file.mp4
Ik heb geprobeerd het van een lokaal opgeslagen M4U8-bestand te laten werken en het werkte niet, omdat de downloadprocedure van FFMPEG de brokken downloadt die ten opzichte van de URL zijn, dus zorg ervoor dat u de website van de website gebruikt.
Antwoord 8, Autoriteit 10%
- Download VLC-speler
- media
- Converteren/Opslaan
- Netwerk (tabblad)
- Voer de URL in van [afspeellijst].m3u8
- Volg de resterende stappen van de wizard om de streambestemming (Bestand) in te stellen
- Stel het juiste transcoderingsprofiel in (MP4 op het moment van dit antwoord)
- Bekijk video
Antwoord 9, autoriteit 5%
Veel websites verpakken hun video’s als meerdere Transport Stream-bestanden (.ts). Als u de volledige video wilt uitvoeren, moet u alle .ts-bestandsstukken downloaden en samenvoegen. Het samenstellen kan eenvoudig worden gedaan met behulp van de FFmpeg-opdrachtregeltool.
Voor het geval iemand op zoek is naar een Java-manier om TS-bestanden van een videostream te downloaden, hier is een goed voorbeeld van een hulpprogramma en een artikel dat ook in detail gaat over hoe TS- en M3U8-bestanden werken >> https://jet-cabral.medium.com/java-ts- video-downloader-a0fcf23ab84a
Zodra alle .ts-bestanden zijn gedownload, ziet het ffmpeg-commando om de video’s te assembleren/aaneenschakelen er als volgt uit:
ffmpeg -i "concat:C:\users\your-name\file_0.ts|C:\users\your-name\file_1.ts|C:\users\your-name\file_2.ts|C:\users\your-name\file_3.ts
Als u de url van het .m3u8-bestand al weet dat de .ts-bestanden bevat die u wilt downloaden. Vervolgens downloadt de volgende opdracht alle .ts-bestanden en voert een enkel .mp4-bestand uit
ffmpeg -i "http://www.some-website.com/video/someM3U8_file.m3u8" -c copy -bsf:a aac_adtstoasc "full_video.mp4"
Antwoord 10, autoriteit 5%
Zo simpel als deze twee commando’s:
kat tschunks_{0..10}.ts > video.mp4
* – Waar “https://example.com/videos/tschunks_{0..10}” -part is te vinden in m3u8 bestand
Antwoord 11, Autoriteit 2%
Kopieer en plak een van de .ts-videobestanden in een nieuw tabblad in Chrome. Verwijder het identificerende nummer van het .ts-bestand (0,12,3 enz. Of welk nummer het ook is) en de uitbreiding van “.ts” naar “.mp4” wijzigen. Dat moet het videobestand in uw browser zo gebruikelijk inbrengen.
Antwoord 12, Autoriteit 2%
Ik heb enkele wijzigingen aangebracht in het antwoord van Dina om te voorkomen dat ik 1200 delen te downloaden / combineren als er niet zoveel zijn.
Ik heb het ook nuttig gevonden om te sorteren op waterfall
op het tabblad Netwerk van Chrome. Dit zal op de tijd sorteren op de tijd dat de bestanden worden gedownload, dus wanneer u een video streamt, staan de meest recent gedownloade onderdelen bovenaan, waardoor het gemakkelijk is om de .ts
koppelingen te vinden.
#!/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
Antwoord 13
1) Lees de instructies van @aalhanane (na de stap “URL m3u8 plakken” moet u de naam van het bestand typen, bijv. “video” en vervolgens op het pictogram “hand” naast “kwaliteit” klikken en pas daarna moet u selecteer “één op één” en “download”).
2) De stream splitst video en audio, dus je moet ze afzonderlijk downloaden en vervolgens dezelfde m3u8x gebruiken om ze samen te voegen https://youtu.be/he-tDNiVl2M(optioneel converteren naar mp4).
3) m3u8x kan zonder problemen video downloaden, maar in mijn geval kan het geen audiolinks extraheren. Dus ik downloadde gewoon het *.m3u8-bestand en zocht naar de regel die GROUP-ID=”audio-0″ bevat en scrolde vervolgens naar rechts en kopieerde de link (!inclusief token!) en plakte deze rechtstreeks in het veld “Quality URL” van m3u8x app. Dan “één op één” en download het vergelijkbaar met videostream.
Toen ik zowel video als audio had, deed ik mee en succes =)
ps. in het geval dat automatische extractie in de toekomst niet meer werkt, kunt u dezelfde methode gebruiken om videolinks handmatig te extraheren.
Antwoord 14
- Haal één link op het tabblad Netwerk van ontwikkelaarstools
- Verwijder index en ts-extensie uit link
Met het volgende script kun je de film opslaan in de map Video’s
Voorbeeld van gebruik:
download-video.sh https://url.com/video.mp4 video-name
download-video.sh
#!/bin/bash
LINK=$1
NAME=$2
START=0
END=2000
help()
{
echo "download-video.sh <url> <output-name>"
echo "<url>: x.mp4 (without .ts)"
echo "<output-name>: x (without .mp4)"
}
create_folders()
{
# create folder for streaming media
cd ~/Videos
mkdir download-videos
cd download-videos
}
print_variables()
{
echo "Execute Download with following parameters"
echo "Link $LINK"
echo "Name $NAME"
}
check_video()
{
i=$START
while [[ $i -le $END ]]
do
URL=$LINK'-'$i.ts
STATUS_CODE=$(curl -o /dev/null --silent --head --write-out '%{http_code}\n' $URL)
if [ "$STATUS_CODE" == "200" ]; then
break
fi
((i = i + 1))
done
if [ "$STATUS_CODE" == "200" ]; then
START=$i
echo "START is $START"
else
echo "File not found"
fi
}
download_video()
{
i=$START
e=$END
while [[ $i -le $END ]]
do
URL=$LINK'-'$i.ts
STATUS_CODE=$(curl -o /dev/null --silent --head --write-out '%{http_code}\n' $URL)
if [ "$STATUS_CODE" != "200" ]; then
break
fi
wget $URL
e=$i
((i = i + 1))
done
END=$e
}
concat_videos()
{
DIR="${LINK##*/}"
i=$START
echo "i is $i"
while [[ $i -le $END ]]
do
FILE=$DIR'-'$i.ts
echo $FILE | tr " " "\n" >> tslist
((i = i + 1))
done
while read line;
do
echo "gugu"$line
cat $line >> $NAME.mp4;
done < tslist
rm *.ts tslist
}
if [ "$1" == "" ]; then
echo "No video url provided"
help
else
LINK=$1
if [ "$2" == "" ]; then
echo "No video output-name provided"
help
else
NAME=$2
create_folders
print_variables
check_video
download_video
concat_videos
fi
fi
Antwoord 15
U kunt hiervoor de Xtreme Download Manager(XDM)-software gebruiken. Deze software kan van elke site in dit formaat worden gedownload.
Zelfs deze software kan het ts-bestandsformaat wijzigen. U hoeft alleen het formaat te wijzigen tijdens het downloaden.
zoals:https://www.videohelp.com/software/Xtreme- Downloadmanager-
Antwoord 16
Ik bedacht een efficiënte parallelle regel met één regel die een reeks .ts
-bestanden samenvoegt tot één .mp4
-bestand met behulp van GNU Parallel:
parallel -k curl https://example.com/video/seg-{}-f4-v1-a1.ts ::: {1..279} >> result.mp4
De sleutel is om het variantgedeelte van uw url te vervangen door {}
en om {a..b}
in te stellen met de onder- en bovengrens. Dat is het!