Ik gebruik Ubuntu en het youtube-dl commando werkt prima.

Nu wil ik echter slechts een deel van een video downloaden dat te lang is. Dus ik wil slechts een paar minuten van die video downloaden, bijv. van minuut 13 tot minuut 17.

Is er een manier om dat te doen?

Antwoord

I geloof niet dat youtube-dl alleen zal doen wat je wilt. Je kunt het echter combineren met een opdrachtregelprogramma zoals ffmpeg.

Haal eerst de daadwerkelijke URL op met behulp van youtube -dl:

youtube-dl -g "https://www.youtube.com/watch?v=V_f2QkBdbRI" 

Kopieer de uitvoer van het commando en plak het als onderdeel van de -i parameter van de volgende opdracht:

ffmpeg -ss 00:00:15.00 -i "OUTPUT-OF-FIRST URL" -t 00:00:10.00 -c copy out.mp4 

De parameter -ss in deze positie geeft aan dat alle invoer tot 15 seconden in de video. De optie -t geeft aan dat er 10 seconden moet worden vastgelegd. De rest van de opdracht vertelt het om op te slaan als een mp4.

ffmpeg is een populaire tool en zou zich in een van de populaire OS-repositories / pakketbeheerders bevinden.

Reacties

  • Je moet dus in wezen nog steeds de hele video downloaden en zelf bijsnijden
  • U kunt t gebruiken hij -to optie in plaats van -t als je de tijd wilt specificeren voor het beëindigen van het videosegment. ffmpeg -i "OUTPUT-OF-FIRST URL" -ss 00:13:00.00 -to 00:17:00.00 -c copy out.mp4
  • @Antony ffmpeg zal eigenlijk alleen het gedeelte downloaden dat u specificeert.
  • @ Antony Zolang je de parameter -ss vóór de parameter -i plaatst, wordt het downloaden gestart vanaf het tijdstip dat je hebt opgegeven met -ss. Als je echter -ss na de parameter -i plaatst, wordt ffmpeg gedownload vanaf het allereerste begin van de video en begint het coderen vanaf waar -ss specificeert. Zie mijn bewerking van Johnnie ‘ s antwoord voor meer informatie.
  • gebruikmakend van de link van youtube-dl met de -g optie zal altijd 403 voor mij verboden teruggeven. Alleen youtube-dl gebruiken om de video te downloaden, werkt altijd als een zonnetje.

Antwoord

Toevoegen aan Johnnies antwoord:

Gebruik youtube-dl --youtube-skip-dash-manifest -g "URL" om de video- en audiostreams op te halen.

Gebruik nu:

ffmpeg -ss 12:15 -i "1st-URL" -ss 12:15 -i "2nd-URL" -t 5:15 -map 0:v -map 1:a -c:v libx264 -c:a aac output.mkv 

U “zult de -ss optie voor elke stream moeten gebruiken. Ik raad ook aan om het ongeveer 30 seconden eerder te doen en dan een andere -ss 30 te gebruiken om te voorkomen dat keyframes verloren gaan. Hier “een echt voorbeeld van een van mijn YouTube-videos.

Video

youtube-dl --youtube-skip-dash-manifest -g https://www.youtube.com/watch?v=gESHIrvIQQo 

Uitvoer:

https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/80448722bbc8410a/itag/298/source/youtube/requiressl/yes/mn/sn-mv-cvne/ei/BgifWfmmL4iE8wSlv47oCA/mm/31/pl/23/mv/m/ms/au/initcwndbps/11447500/ratebypass/yes/mime/video%2Fmp4/otfp/1/gir/yes/clen/5231968228/lmt/1502479662079137/dur/18575.164/key/dg_yt0/signature/4FFB9B0B7E1703B31F5D07DAD579B55F17EF7BAA.0CB63905C89DD4D33F90CF3AAD728F1ECDFCB9B3/mt/1503594423/ip/206.34.122.70/ipbits/0/expire/1503616102/sparams/ip,ipbits,expire,id,itag,source,requiressl,mn,ei,mm,pl,mv,ms,initcwndbps,ratebypass,mime,otfp,gir,clen,lmt,dur/ https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/80448722bbc8410a/itag/140/source/youtube/requiressl/yes/mn/sn-mv-cvne/ei/BgifWfmmL4iE8wSlv47oCA/mm/31/pl/23/mv/m/ms/au/initcwndbps/11447500/ratebypass/yes/mime/audio%2Fmp4/otfp/1/gir/yes/clen/295235970/lmt/1502480001536214/dur/18575.243/key/dg_yt0/signature/4CD42047D1D5C714377350905C1CC5CBA37C0009.6EED1FC92D17A096235C32E48F4B15DEF7DD99B0/mt/1503594423/ip/206.34.122.70/ipbits/0/expire/1503616102/sparams/ip,ipbits,expire,id,itag,source,requiressl,mn,ei,mm,pl,mv,ms,initcwndbps,ratebypass,mime,otfp,gir,clen,lmt,dur/ 

Ik wilde knippen van 43:00 naar 50:10, dus ik ga (wat me een paar seconden de tijd geeft om een goed keyframe op te halen) op beide inputs en dan een -ss 30 na de inputs om te beginnen om 43:00.

Ik “gebruik dan map om de video 0:v en audio 1:a (0 betekent eerste invoer, dat is de video en 1 betekent de tweede invoer, dat is de audio) en kies vervolgens mijn coderingsopties.

 # The first URL video_url="https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/80448722bbc8410a/itag/298/source/youtube/requiressl/yes/pl/23/ei/5wCfWY6dBeOj8gSSxZaACQ/mv/m/initcwndbps/5055000/ms/au/mm/31/mn/sn-mv-cvne/ratebypass/yes/mime/video%2Fmp4/otfp/1/gir/yes/clen/5231968228/lmt/1502479662079137/dur/18575.164/key/dg_yt0/beids/%5B9466591%5D/mt/1503592562/signature/8CCFBF5CAB97341D0CB1F34E85AB6EE20FC7A03E.7679F39A8603CF41A95F10232E2A921EB0774101/ip/206.34.122.70/ipbits/0/expire/1503614279/sparams/ip,ipbits,expire,id,itag,source,requiressl,pl,ei,mv,initcwndbps,ms,mm,mn,ratebypass,mime,otfp,gir,clen,lmt,dur/" # The second URL audio_url="https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/80448722bbc8410a/itag/140/source/youtube/requiressl/yes/pl/23/ei/5wCfWY6dBeOj8gSSxZaACQ/mv/m/initcwndbps/5055000/ms/au/mm/31/mn/sn-mv-cvne/ratebypass/yes/mime/audio%2Fmp4/otfp/1/gir/yes/clen/295235970/lmt/1502480001536214/dur/18575.243/key/dg_yt0/beids/%5B9466591%5D/mt/1503592562/signature/4AACC8E27F9036D36D4D623A771A9F2BAC4674BA.7E4F4FB4DC023E3FE491A991F0F9F2329648DE9D/ip/206.34.122.70/ipbits/0/expire/1503614279/sparams/ip,ipbits,expire,id,itag,source,requiressl,pl,ei,mv,initcwndbps,ms,mm,mn,ratebypass,mime,otfp,gir,clen,lmt,dur/" ffmpeg -ss 42:30 -i "$video_url" -ss 42:30 -i "$audio_url" -map 0:v -map 1:a -ss 30 -t 7:10 -c:v libx264 -c:a aac gog-vs-triv.mkv  

Met dank aan Jakub Vrána voor de --youtube-skip-dash-manifest oplossing.

Reacties

  • Bedankt. Ik wist niet zeker hoe ik geluid moest krijgen voor @Johnnie post. Jouw post beantwoordde het.
  • Hoe is het anders wilt u niet --postprocessor-args rechtstreeks in youtube-dl gebruiken?
  • @daGo – ik denk dat youtube-dl --postprocessor-args de hele video zal downloaden en bewerk het vervolgens tot in het geselecteerde bereik, terwijl dit antwoord youtube-dl gebruikt om een aantal speciale URLs te krijgen. ffmpeg gebruikt vervolgens die URLs om alleen het vereiste bereik te downloaden. Dus als je 2 minuten wilt extraheren uit een collegevideo van 2 uur, zal dit antwoord je veel downloaden besparen.
  • Dit werkt met de meeste YouTube-videos, maar ik probeer dit met een video van 9 uur die was eerder live gestreamd (en nu voltooid) en ik krijg ” Ongeldige gegevens gevonden bij het verwerken van invoer “. Het belangrijkste verschil is dat de uitvoer van youtube-dl -g anders is. Bij de meeste videos heeft het de struct. "https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/8..." maar voor deze video heeft het de struct. "https://manifest.googlevideo.com/api/manifest/dash/expire/15956..." (afgekapt vanwege spatie). Ideeën om dit te laten werken?
  • @LeftoverSalad één oplossing gevonden.

Answer

ffmpeg $(youtube-dl -g "https://www.youtube.com/watch?v=oHg5SJYRHA0" | sed "s/.*/-ss 00:05 -i &/") -t 01:00 -c copy out.mkv 

Bewerk de URL en de -ss, -t keer om dit commando te gebruiken. Het creëert de argumenten, gebruikmakend van zowel video- als audio-URLs, vergelijkbaar met dit antwoord door @godofgrunts.Er worden geen aanhalingstekens gebruikt voor $() omdat dit twee gescheiden argumenten oplevert voor ffmpeg.

Opmerkingen

  • Kunt u uitleggen wat het doet en hoe het werkt?
  • Het ‘ is gewoon een meer beknopte versie van @ godofgrunts antwoord, gebruik sed om wat tijd te besparen met het handmatig pakken van de URLs en het kopiëren / plakken in de starttijden (-ss 00:05). @godofgrunts heeft een aantal extra vlaggen -map 0:v -map 1:a -c:v libx264 -c:a aac die de kwaliteit zouden kunnen verbeteren. Ik wil ook graag youtube-dl -f bestvideo+bestaudio toevoegen om er zeker van te zijn dat ik ‘ de versie van de hoogste kwaliteit krijg.
  • ffmpeg.zeranoe.com/builds voor Windows.
  • De ” extra vlaggen ” omgaan met de twee streams (video en audio) waarvan ik denk dat je ze verkeerd behandelt – IIUC ze hebben niets te maken met het verbeteren van de kwaliteit (nou ja, geluid is waarschijnlijk een teken van verbeterde kwaliteit :-)) antwoord door @godofgrunts hieronder lijkt correct te zijn.

Antwoord

youtube-dl ondersteunt het doorgeven van argumenten aan de onderliggende postprocessor (getest met versie 2017.08.27.1):

youtube-dl -x --postprocessor-args "-ss 00:13:00.00 -t 00:04:00.00" https://youtu.be/...

Dit is in principe hetzelfde als de nabewerking met ffmpeg zelf doen nadat je het bestand eerst hebt gedownload.

Opmerkingen

  • maar dit zal nog steeds moeten gebeuren wnload de hele video en knip het gewenste deel af.
  • Ik krijg een unable to obtain file audio codec with ffprobe -fout. Kun je me daar alsjeblieft mee helpen? Ik gebruik CentOS 7
  • Merk op dat de vlag -x alleen de audio downloadt. Laat het weg van de opdracht als u zowel audio als video wilt. 🙂
  • Dit zal niet betrouwbaar werken, aangezien —postprocessor-args in sommige gevallen meerdere keren wordt toegepast. Zie github.com/ytdl-org/youtube-dl/issues/26863

Antwoord

Dit functieverzoek is nog niet geïmplementeerd in youtube-dl. Zie # 622 issue en veel duplicaten ervan op github.

Answer

Gebruik de parameter --postprocessor-args om de audio- / video-uitvoer door te geven aan ffmpeg om te worden bewerkt (de processor). De postprocessor moet ffmpeg geïnstalleerd zijn.

--postprocessor-args accepteert 3 argumenten & waarden (er is bijvoorbeeld meer, bekijk de handmatige pagina van ffmpeg):

  • -ss HH:MM:SS: starttijd voor opname
  • -to HH:MM:SS: eindtijd
  • -t HH:MM:SS: tijd te nemen lengte

Voorbeelden:

  • Begin met coderen na 15 seconden en stop na 1 minuut en 20 seconden
    $ youtube-dl --postprocessor-args "-ss 0:0:15 -to 0:1:20" "[video_URL]" 
  • Begin met coderen na 15 seconden en neem de volgende 3 minuten en 5 seconden
    $ youtube-dl --postprocessor-args "-ss 0:0:15 -t 0:3:5" "[video_URL]" 

PS: youtube-dl downloadt de volledige media voordat deze wordt verwerkt en verwijdert deze daarna.

Reacties

Antwoord

Dit beantwoordt de vraag van OP niet volledig, maar er is een manier om een stream te downloaden van het begin tot een bepaalde duur zonder de volledige stream te hoeven downloaden. Aangezien YouTube cv-ondersteuning biedt, kunnen we om gedeeltelijke inhoud vragen met behulp van de Range -header.

We halen eerst de stream-URLs op:

$ youtube-dl -g https://www.youtube.com/watch?v=yysk8s2vih8 https://r1---sn-npoeenee.googlevideo.com/videoplayback?source=youtu... https://r1---sn-npoeenee.googlevideo.com/videoplayback?source=youtu... 

Dit zou twee URLs moeten opleveren (elk voor video- en audiostreams).

Stuur nu een hoofdverzoek naar de eerste URL (die naar de videostream linkt) naar haal de totale inhoudslengte van deze stream op:

$ curl "1st-URL" -sI | grep Content-Length Content-Length: 64380504 

Nu delen we deze totale inhoudslengte door het totale aantal seconden in video (de YouTube-video heeft een duur van 4 min en 7 seconden, wat 247 seconden is.) om ongeveer de inhoudslengte van 1 seconde te krijgen:

64380504 / 247 ≈ 260650

We vermenigvuldigen deze waarde met (aantal seconden dat we vanaf het begin willen ophalen + 1)

(we voegen er een toe om ook ongeveer rekening te houden met extra ruimte die wordt ingenomen door metadata die aan het begin van de stream wordt geplaatst)

Als u bijvoorbeeld ongeveer de eerste 10 seconden wilt ophalen, moet u de eerste 260650 * 11 = 2867150 bytes, dus we doen een verzoek met de Range header:

$ curl "1st-URL" -H "Range: bytes=0-2867150" -o ten_secs.mp4 

Dit zou alleen de eerste moeten downloaden 10 sec.Het gedownloade bestand moet kunnen worden afgespeeld, maar laat FFmpeg het beste de onjuiste metadata herstellen:

$ ffmpeg -i ten_secs.mp4 -c copy corrected_ten_secs.mp4 

We kunnen ook alleen het eerste deel van de audio downloaden (2e- URL) op een vergelijkbare manier (de lengte van de inhoud zou verschillen, maar het totale aantal seconden zou hetzelfde blijven).

Het downloaden van een middengedeelte van de video zou ook op deze manier mogelijk moeten zijn, maar gaat waarschijnlijk veel lastiger omdat YouTube plaatst de metadata aan het begin van de stream (in de eerste paar bytes) en zonder dat ze aanwezig zijn in de gedownloade media, wordt de stream “helemaal niet afgespeeld.

BEWERKEN: Dit werkt alleen op websites met cv-ondersteuning, bijvoorbeeld YouTube. Het werkt niet voor andere websites.

Antwoord

U kunt vanaf het begin tot een punt downloaden zonder het hele ding downloaden en bewerken. Dat is de helft van wat deze vraag stelt:

onderbreek de download met ^C

  • Ik “heb dit alleen geprobeerd met mp4
  • zal niet werken met aparte video en audio heb je een indeling nodig met beide. Standaard krijgt ytdl vaak aparte video en audio, en voegt ze vervolgens samen. Gebruik -F om de beschikbare indelingen te zien en kies een mp4 die beide heeft. bijv. -f18 of -f22 zijn er meestal.
  • jij “Ik zal een schatting moeten maken op basis van het gedownloade percentage (wat niet lineair is; de compressieverhouding varieert in de tijd).

Ja. Het is een hack .

Verdere vraag: als je de afzonderlijke video- en audioformaten wilt, zou je dan een deel van elk afzonderlijk kunnen downloaden (met ^c zoals hier), en ze dan handmatig samenvoegen? Ik denk niet dat het voor sommige formaten zal werken.

Answer

Ik heb een script gemaakt voor het implementeren van @godofgrunts answer hier

 #!/bin/bash #taken from https://unix.stackexchange.com/a/388148/48971 if [ $# -lt 4 ]; then echo "Usage: $0 <youtube"s URL> <HH:mm:ss from time> <HH:mm:ss to time> <output_file_name>" echo "e.g.:" echo "$0 https://www.youtube.com/watch?v=T1n5gXIPyws 00:00:25 00:00:42 intro.mp4" exit 1 fi echo "processing..." from=$(date "+%s" -d "UTC 01/01/1970 $2") to=$(date "+%s" -d "UTC 01/01/1970 $3") from_pre=$(($from - 30)) if [ $from_pre -lt 0 ] then from_pre=0 fi from_pre_command_print=$(date -u "+%T" -d @$from_pre) from_command_print=$(date -u "+%T" -d @$(($from - $from_pre)))$(grep -o "\..*" <<< $2) to_command_print=$(date -u "+%T" -d @$(($to - $from_pre)))$(grep -o "\..*" <<< $3) command="ffmpeg " for uri in $(youtube-dl -g $1) do command+="-ss $from_pre_command_print -i $uri " done command+="-ss $from_command_print -to $to_command_print $4" echo "downloading with the following command:" echo "$command" $command  

Ik heb het ook geüpload naar Gitlab “s fragmenten

Answer

Ik heb een fles-app gemaakt die kan naar wat je wilt. Ik weet dat het bericht oud is, maar het probleem blijft bestaan.

Je vindt het hier

Het kan parseren tekst voor YouTube-links. U geeft gewoon bijv .:

YouTube.com/blahblah start-1:20 

Hiermee wordt een video gedownload van 0-1: 22 (er kunnen kleine verschillen optreden vanwege keyframes). Het kan ook hele videos downloaden, laat in dat geval het tijdsinterval weg.

Antwoord

Voor alle luie jongens die niet “Als je niet meer dan één commando wilt gebruiken, doe dan het volgende:

youtube-dl.exe https://www.youtube.com/watch?v=MJD39Aja1Is --external-downloader ffmpeg --external-downloader-args "-ss 00:00:10.00 -t 00:01:00.00" 

Je kunt nu de opties van youtube-dl.exe en ffmpeg zoals het formaat kiezen, de video verwijderen en het audiobestand knippen enz. (misschien het videobestand knippen en dan converteren naar een audiobestand, wat er ook gebeurt)

youtube-dl.exe -f 251 https://www.youtube.com/watch?v=MJD39Aja1Is -x --external-downloader ffmpeg --external-downloader-args "-ss 00:00:10.00 -t 00:01:00.00" 

Reacties

  • je commando werkt niet op GNU / Linux: we gebruiken youtube-dl in plaats van youtube-dl.exe. En ffmpeg vertelde me Invalid duration specification for ss: 00.00.10.00, het moet -ss 00:00:30.00 zijn met dubbele punten in plaats van punten behalve de laatste.
  • @ ewin-goisot Het spijt me, dit gebeurde omdat ik het niet deed ‘ t heeft het hele commando gekopieerd en geplakt na tes ting het. Nu zou het moeten werken. het probleem was de definitie van de tijd. het moet 00: 00: 00.00 2 keer dubbel punt zijn, dan slechts 1 punt. zoals hh: mm: ss.ms
  • met 00:00:00.0 werkt het beter, ik kan een deel van de video downloaden. Ik heb nog steeds een probleem (met jouw commando en de meeste andere): het downloadt 5 of 10 seconden te veel. De oplossing wordt gegeven op @godofgrunts ‘ s antwoord: -ss 42:30 -i "$video_url" -ss 42:30 -i "$audio_url" -map 0:v -map 1:a -ss 30 beginnend 30 seconden voordat het gedeelte begint en een aan het einde. Dus ik moet verschillende keren de optie -ss gebruiken voor dezelfde opdracht. Is er een manier om hetzelfde te doen met --external-downloader-args?
  • Sorry, ik ben niet zo bekend met het mixen van verschillende streams. maar als je alleen het beste audio- en videomateriaal van dezelfde video wilt gebruiken, dan kun je dat in plaats daarvan doen met youtube-dl

Answer

Om toe te voegen aan @hyperpallium antwoord: OP vermeldde niet dat de video die hij aan het downloaden was van YouTube moest zijn.

YouTube is belachelijk restrictief met hun videos, ze splitsen de audio- en videostreams naar verschillende bestanden, en ze volgen u / verkopen uw gegevens; daarom zou men problemen kunnen hebben met de methode om het gedeeltelijk te downloaden en vervolgens op Ctrl + C te drukken.

Met youtube-dl versie 2020.11.17 in Microsoft Windows versie 10.0.17134.1304 heb ik een deel van een video gedownload van archive.org:

E:\cs>youtube-dl --abort-on-unavailable-fragment https://archive.org/download/beastars-season-1-1080p/%5BHCS%5D%20Beastars%20-%2003%20%5B1080p%5D.mkv [generic] [HCS] Beastars - 03 [1080p]: Requesting header [redirect] Following redirect to https://ia601504.us.archive.org/14/items/beastars-season-1-1080p/%5BHCS%5D%20Beastars%20-%2003%20%5B1080p%5D.mkv [generic] [HCS] Beastars - 03 [1080p]: Requesting header WARNING: Falling back on generic information extractor. [generic] [HCS] Beastars - 03 [1080p]: Downloading webpage WARNING: URL could be a direct video link, returning it as such. [download] Destination: [HCS] Beastars - 03 [1080p]-[HCS] Beastars - 03 [1080p].mkv [download] 2.3% of 513.77MiB at 839.68KiB/s ETA 10:12 ERROR: Interrupted by user E:\cs>ren "[HCS] Beastars - 03 [1080p]-[HCS] Beastars - 03 [1080p].mkv.part" "[HCS] Beastars - 03 [1080p]-[HCS] Beastars - 03 [1080p].mkv" E:\cs>ffmpeg -i "[HCS] Beastars - 03 [1080p]-[HCS] Beastars - 03 [1080p].mkv" "[HCS] Beastars - 03 [1080p].mp4" ffmpeg version N-91990-g49c67e79ca Copyright (c) 2000-2018 the FFmpeg developers built with gcc 8.2.1 (GCC) 20180813 [stdout text] Stream #0:1(jpn): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: encoder : Lavc58.30.100 aac [matroska,webm @ 0000020c8f28a2c0] Read errorme=00:00:33.96 bitrate=2099.5kbits/s speed=0.0185x frame= 823 fps=0.3 q=-1.0 Lsize= 9677kB time=00:00:34.56 bitrate=2293.8kbits/s speed=0.0147x video:9134kB audio:519kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.248960% [libx264 @ 0000020c8f3423c0] frame I:25 Avg QP:14.71 size: 56865 [stdout] E:\cs>youtube-dl -v [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ["-v"] [debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252 [debug] youtube-dl version 2020.11.17 [debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17134 [debug] exe versions: ffmpeg 3.4, ffprobe N-91990-g49c67e79ca [debug] Proxy map: {} Usage: youtube-dl [OPTIONS] URL [URL...] 

Het MKV-bestand waarmee ik eindigde was ” 00:22:57 ” in ” totale duur “, maar het eindigde na 34 seconden. De MP4-video waarmee ik eindigde was in totaal 00:00:34 seconden, eindigde na 34 seconden en de video en audio speelden prima / zoals bedoeld.

Volledig cmd.exe log is hier

Dus samenvattend, run

youtube-dl --abort-on-unavailable-fragment [URL to video file] 

(optie --abort-on-unavailable-fragment kan belangrijk zijn aangezien u de download uiteindelijk onderbreekt met Ctrl + C ), laat het een tijdje downloaden en druk dan op Ctrl + C .

Optioneel: hernoem de [file].mkv.part bestand naar [file].mkv. Het omzetten van de MKV naar MP4 is waarschijnlijk ook optioneel.

Antwoord

Iemand heeft een batch-script (voor Windows) dat het bestand downloadt en het gewenste gedeelte extraheert:

@ECHO off :Input ECHO. SET url= ECHO Enter Youtube-url: SET /P url= IF "%url%" EQU "" GOTO End IF "%url: =%" NEQ "%url%" GOTO Input ECHO Enter start time (in seconds, or in hh:mm:ss[.xxx] form): SET /P start= ECHO Enter duration (in seconds, or in hh:mm:ss[.xxx] form): SET /P dur= ECHO. FOR /F "delims==" %%A IN ("youtube-dl.exe --no-warnings --get-filename "%url%"") DO SET filename=%%A FOR /F %%B IN ("youtube-dl.exe -g "%url%"") DO ( ffmpeg.exe -hide_banner -ss "%start%" -i "%%B" -c copy -t "%dur%" "%filename%" ) GOTO Input :End 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *