Käytän Ubuntua, ja youtube-dl
-komento toimii aivan oikein.
Haluan kuitenkin nyt ladata vain osan videosta, joka on liian pitkä. Joten haluan ladata vain muutaman minuutin videosta, esim. minuutista 13 minuuttiin 17.
Onko keino tehdä niin?
Vastaa
I älä usko, että youtube-dl
yksin tekee mitä haluat. Voit kuitenkin yhdistää sen komentorivin apuohjelmaan, kuten ffmpeg.
Hanki todellinen URL-osoite ensin YouTubesta -dl:
youtube-dl -g "https://www.youtube.com/watch?v=V_f2QkBdbRI"
Kopioi komennon lähtö ja liitä se osana parametrin -i
parametria seuraava komento:
ffmpeg -ss 00:00:15.00 -i "OUTPUT-OF-FIRST URL" -t 00:00:10.00 -c copy out.mp4
Tämän sijainnin parametri -ss
sanoo, että kaikki syötteet hylätään 15 sekuntiin asti. video. -t
-vaihtoehdon mukaan tallennetaan 10 sekunnin ajan. Loput komennot käskevät sen tallentamaan mp4: nä.
ffmpeg on suosittu työkalu, ja sen pitäisi olla missä tahansa suosituista käyttöjärjestelmän arkistoista / paketinhallinnoijista.
Kommentit
Vastaa
Lisätään Johnnien vastaus:
Käytä youtube-dl --youtube-skip-dash-manifest -g "URL"
saadaksesi video- ja äänivirrat.
Käytä nyt:
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
Sinun on käytettävä -ss
-vaihtoehtoa kullekin streamille. Suosittelen myös tekemään sen noin 30 sekuntia aiemmin ja käyttämään sitten toista -ss 30
, jotta et menetä mitään avainkehyksiä. Tässä on todellinen esimerkki yhdestä YouTube-videostani.
youtube-dl --youtube-skip-dash-manifest -g https://www.youtube.com/watch?v=gESHIrvIQQo
Tulos:
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/
Halusin leikata 43: sta 50: 10: een, joten aion tehdä -ss 42:30
(antaa minulle muutaman sekunnin hyvän avainkehyksen saamiseksi) molemmista tuloista ja tee sitten -ss 30
tulojen jälkeen aloittaaksesi kello 43:00.
Tämän jälkeen käytän map
-sovellusta videon 0:v
ja äänen 1:a
(0 tarkoittaa ensimmäistä tuloa, joka on video ja 1 tarkoittaa toista tuloa, joka on ääni) ja valitse sitten koodausvaihtoehtoni.
# 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
Kiitos Jakub Vránalle osastolle --youtube-skip-dash-manifest
ratkaisu.
Kommentit
- Kiitos. En ollut varma, kuinka saada ääntä @Johnnie-viestille. Viestisi vastasi siihen.
- Miten se eroaa Etkä käytä
--postprocessor-args
suoraan YouTube-dl: ssä? - @daGo – Uskon, että
youtube-dl --postprocessor-args
lataa koko videon ja muokkaa sitä sitten valitulle alueelle, kun taas tämä vastaus käyttääyoutube-dl
vain saadakseen erityisiä URL-osoitteita.ffmpeg
käyttää sitten näitä URL-osoitteita vain vaaditun alueen lataamiseen. Joten jos haluat poimia 2 minuuttia 2 tunnin luentovideosta, tämä vastaus säästää paljon lataamista. - Tämä toimii useimpien YT-videoiden kanssa, mutta yritän tätä 9 tunnin videolla, joka lähetettiin aiemmin suorana suoratoistona (ja nyt valmis) ja saan ” virheellisiä tietoja, kun syötettä ” käsitellään. Tärkein ero on, että
youtube-dl -g
-lähtö on erilainen. Useimpien videoiden kanssa sillä on rakenne."https://r3---sn-mv-cvne.googlevideo.com/videoplayback/id/8..."
, mutta tälle videolle sillä on rakenne."https://manifest.googlevideo.com/api/manifest/dash/expire/15956..."
(katkaistu tilalle). Ideoita miten tämä toimii? - @LeftoverSalad Found yksi ratkaisu .
Vastaa
ffmpeg $(youtube-dl -g "https://www.youtube.com/watch?v=oHg5SJYRHA0" | sed "s/.*/-ss 00:05 -i &/") -t 01:00 -c copy out.mkv
Muokkaa URL-osoitetta ja -ss
, -t
kertaa tämän komennon käyttämiseksi. Se luo argumentit käyttämällä video- ja ääni-URL-osoitteita, samanlaisia kuin tämä @ div id = ”2efeccfc97”>
vastauksen käyttäjältä @godofgrunts.Kohdassa$()
ei käytetä lainausmerkkejä, koska tämä tuottaa kaksi erillistä argumenttia parametrilleffmpeg
.
Kommentit
- Voisitko selittää, mitä se tekee, miten se toimii?
- Se ’ on vain suppeampi versio @ godofgrunts vastaa, säästämällä aikaa sedillä käyttämällä aikaa URL-osoitteiden nappaamiseen manuaalisesti ja kopioimiseen / liittämiseen aloitusajoissa (-ss 00:05). @godofgruntsilla on joitain ylimääräisiä lippuja
-map 0:v -map 1:a -c:v libx264 -c:a aac
, jotka saattavat parantaa laatua. Haluan myös lisätäyoutube-dl -f bestvideo+bestaudio
varmistaakseni, että ’ saan laadukkaimman version. - ffmpeg.zeranoe.com/builds Windowsille.
- ” ylimääräiset liput ” käsittelevät kahta virtaa (video ja ääni), joita luulen väärin käsittelevän – IIUC: llä ei ole mitään tekemistä laadun parantamisen kanssa (no, äänen saaminen on todennäköisesti merkki laadun parantamisesta :-)) Alla olevan vastaus käyttäjältä @godofgrunts näyttää olevan oikea.
Vastaa
youtube-dl
tukee argumenttien välittämistä taustaprosessorille (testattu versiolla 2017.08.27.1):
youtube-dl -x --postprocessor-args "-ss 00:13:00.00 -t 00:04:00.00" https://youtu.be/...
Tämä on periaatteessa sama kuin jälkikäsittely ffmpeg
-toiminnolla itse, kun olet ensin ladannut tiedoston.
Kommentit
- mutta tämä on silti tehtävä lataa koko video ja leikkaa sitten haluttu osa
- Saan
unable to obtain file audio codec with ffprobe
-virheen. Voitteko auttaa minua siinä. Käytän CentOS 7: ää. - Huomaa, että
-x
-lippu lataa vain äänen. Jätä se pois komennosta, jos haluat sekä ääntä että videota. 🙂 - Tämä ei toimi luotettavasti, koska
—postprocessor-args
käytetään joissakin tapauksissa useita kertoja. Katso github.com/ytdl-org/youtube-dl/issues/26863
vastaus
Tätä ominaisuuspyyntöä ei ole vielä otettu käyttöön youtube-dl: ssä. Katso # 622 -asia ja monia sen kaksoiskappaleita githubissa.
Vastaa
Käytä --postprocessor-args
-parametria siirtääksesi ääni- / videolähdön muokkaamaan ffmpeg
(prosessori). Jälkikäsittelijä on asennettava ffmpeg
.
--postprocessor-args
kestää 3 argumenttia & arvot (esimerkiksi siellä on enemmän, tarkista ffmpeg
-sivun manuaalinen sivu):
-
-ss HH:MM:SS
: alkamisaika -
-to HH:MM:SS
: lopetusaika -
-t HH:MM:SS
: aika otettava pituus
Esimerkkejä:
- Aloita koodaus 15 sekunnissa ja lopeta 1 minuutissa 20 sekunnissa
$ youtube-dl --postprocessor-args "-ss 0:0:15 -to 0:1:20" "[video_URL]"
- Aloita koodaus 15 sekunnista ja ota vain seuraavat 3 minuuttia 5 sekuntia
$ youtube-dl --postprocessor-args "-ss 0:0:15 -t 0:3:5" "[video_URL]"
PS: youtube-dl
lataa koko median ennen sen käsittelyä ja poistaa sen jälkeen.
Kommentit
- Kyllä! Erittäin puhdas ja helppo muistaa.
- Tämä ei toimi luotettavasti, koska
—postprocessor-args
käytetään joissakin tapauksissa useita kertoja. Katso github.com/ytdl-org/youtube-dl/issues/26863
vastaus
Tämä ei vastaa täysin OP: n kysymykseen, mutta on olemassa tapa ladata stream alusta tiettyyn kestoon ilman, että sinun tarvitsee ladata koko streamia. Koska YouTube tarjoaa jatkatukea, voisimme pyytää osittaista sisältöä Range
-otsikon avulla.
Haemme ensin striimin URL-osoitteet:
$ 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...
Tämän pitäisi antaa kaksi URL-osoitetta (kukin video- ja äänivirroille).
Lähetä nyt pääpyyntö ensimmäiseen URL-osoitteeseen (joka linkittää videovirtaan) osoitteeseen noudata tämän streamin kokonaispituutta:
$ curl "1st-URL" -sI | grep Content-Length Content-Length: 64380504
Jaamme tämän sisällön kokonaispituuden videon sekunteilla (YouTube-videon kesto on 4 min ja 7 sekuntia, mikä on 247 sekuntia.) saadaksesi likimäärin yhden sekunnin pituuden:
64380504 / 247 ≈ 260650
Kerrotaan tämä arvo kanssa (sekuntien määrä, jonka haluat noutaa alusta + 1)
(lisäämme yhden, jotta karkeasti otettaisiin huomioon myös metatietojen ylimääräinen tila, joka on sijoitettu virran alkuun)
Jos esimerkiksi haluat hakea suunnilleen ensimmäiset 10 sekuntia, sinun on haettava ensimmäinen 260650 * 11 = 2867150
tavua, joten teemme pyynnön otsikolla Range
:
$ curl "1st-URL" -H "Range: bytes=0-2867150" -o ten_secs.mp4
Tämän pitäisi ladata vain ensimmäinen 10 sekuntiaLadatun tiedoston pitäisi pystyä toistamaan, mutta anna FFmpegin korjata virheelliset metatiedot:
$ ffmpeg -i ten_secs.mp4 -c copy corrected_ten_secs.mp4
Voimme myös ladata vain äänen alkuosan (2.- URL) samalla tavalla (sisällön pituus poikkeaisi, mutta sekuntien kokonaismäärä pysyisi samana).
Minkä tahansa keskiosan lataamisen videosta pitäisi olla mahdollista myös tällä tavalla, mutta se on todennäköisesti paljon hankalampaa, koska YouTube sijoittaa metatiedot streamin alkuun (muutaman ensimmäisen tavun kohdalla) ja ilman että sitä olisi läsnä ladatussa mediassa, stream ei toistu ollenkaan.
MUOKKAA: Tämä toimii vain verkkosivustoilla, joilla on jatkotuki, sanotaan YouTube. Se ei toimi muille verkkosivustoille.
Vastaa
Voit ladata alusta pisteeseen ilman koko jutun lataaminen ja muokkaaminen. Se on puolet siitä, mitä tämä kysymys kysyy:
keskeytä lataus
^C
- Olen kokeillut tätä vain
mp4
- ei toimi erillisen videon kanssa ja ääni, tarvitset muodon molemmilla. Oletuksena ytdl saa usein erilliset videot ja äänet ja yhdistää ne sitten. Käytä
-F
nähdäksesi käytettävissä olevat muodot ja valitsemp4
, jolla on molemmat. Esimerkiksi-f18
tai-f22
ovat yleensä siellä. - sinä ”Ll on arvioitava ladattujen prosenttiosuuksien perusteella (mikä ei ole lineaarista; pakkaussuhde vaihtelee ajan myötä).
Kyllä. Se on hakata .
Lisäkysymys: jos haluat erilliset video- ja äänimuodot, voisitko ladata osan niistä erikseen (käyttämällä ^c
kuten täällä) ja sitten yhdistää ne manuaalisesti? En usko, että se toimii joissakin muodoissa.
Vastaus
Tein komentosarjan, joka toteuttaa @godofgrunts vastauksen täällä
#!/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
Latasin sen myös Gitlab ”-katkelmiin
Answer
Tein pullo-sovelluksen, joka voi tehdä mitä haluat. Tiedän, että viesti on vanha, mutta ongelma jatkuu.
Löydät sen täältä
Se voi jäsentää tekstiä myös YouTube-linkkeihin. Annat vain esimerkiksi:
YouTube.com/blahblah start-1:20
Tämä lataa videon välillä 0-1: 22 (avainkehysten takia voi syntyä pieniä eroja). Se voi myös ladata kokonaisia videoita, jätä vain aikaväli tällöin.
Vastaa
Kaikille laiskille kavereille, jotka eivät ”et halua käyttää useampaa kuin yhtä komentoa, toimi seuraavasti:
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"
Voit nyt yhdistää youtube-dl.exe
ja ffmpeg
kuten muodon valitseminen, videon poistaminen ja äänitiedoston leikkaaminen jne. (ehkä leikkaamalla videotiedosto ja muuntamatta äänitiedostoksi, mitä tapahtuu ensin)
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"
Kommentit
- komentosi ei toimi GNU / Linuxissa: käytämme
youtube-dl
youtube-dl.exe
sijaan. Jaffmpeg
kertoi minulleInvalid duration specification for ss: 00.00.10.00
, sen pitäisi olla-ss 00:00:30.00
kaksoispisteillä pisteiden sijasta viimeistä lukuun ottamatta. - @ ewin-goisot Olen pahoillani, tämä tapahtui, koska en tehnyt ’ t kopioi koko komennon tes: n jälkeen se. Nyt sen pitäisi toimia. ongelma oli ajan määrittely. sen on oltava 00: 00: 00.00 2 kertaa kaksinkertainen piste kuin vain 1 piste. kuten hh: mm: ss.ms
- kanssa
00:00:00.0
, se toimii paremmin, voin ladata osan videosta. Minulla on edelleen ongelma (komentosi ja useimpien muiden kanssa): se lataa 5 tai 10 sekuntia liikaa. Ratkaisu annetaan @godofgrunts ’ -vastauksessa:-ss 42:30 -i "$video_url" -ss 42:30 -i "$audio_url" -map 0:v -map 1:a -ss 30
alkaen 30 sekuntia ennen osan alkamista ja lisäämällä-ss 30
lopussa. Joten minun on käytettävä useita kertoja-ss
-vaihtoehtoa samassa komennossa. Onko olemassa tapa tehdä sama--external-downloader-args
kanssa? - Ai anteeksi, en ole niin perehtynyt eri virtojen sekoittamiseen. mutta jos haluat ottaa vain parhaan ääni- ja videomateriaalin samasta videosta, voit tehdä sen youtube-dl: llä
Vastaa
Lisättäväksi @hyperpallium -vastaukseen: OP ei maininnut lataamansa videon täytyneen olla YouTubesta.
YouTube rajoittaa videoidensa kanssa naurettavasti, he jakoivat ääni- ja videovirrat eri tiedostoihin, ja ne seuraavat sinua / myyvät tietojasi; siksi sen lataamismenetelmällä voi olla vaikeuksia osittain sitten osumalla Ctrl + C .
youtube-dl
-versiolla 2020.11.17 Microsoft Windows -versiossa 10.0.17134.1304 ladasin osan videosta arkistoista.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...]
MKV-tiedosto, jonka päädyin, oli ” 00:22:57 ” kohteessa ” kokonaiskesto ”, mutta se päättyi 34 sekunnin kuluttua. MP4-video, jonka päädyin, oli yhteensä 00:00:34 sekuntia, päättyi 34 sekunnin kuluttua, ja video ja ääni toistettiin täysin hienosti / tarkoitetulla tavalla. ”>
loki on täällä
Yhteenvetona voidaan siis ajaa
youtube-dl --abort-on-unavailable-fragment [URL to video file]
(vaihtoehto --abort-on-unavailable-fragment
saattaa olla tärkeä, kun lopetat lataamisen Ctrl + C -toiminnolla), anna sen ladata hetkeksi ja paina sitten Ctrl + C .
Valinnainen: Nimeä [file].mkv.part
tiedosto tiedostoon [file].mkv
. MKV: n muuntaminen MP4: ksi on todennäköisesti myös valinnainen.
Vastaa
Joku teki eräkomentosarja (Windows), joka lataa tiedoston ja purkaa haluamasi osan:
@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
ffmpeg -i "OUTPUT-OF-FIRST URL" -ss 00:13:00.00 -to 00:17:00.00 -c copy out.mp4
ffmpeg
lataa oikeastaan vain määrittämäsi osan.youtube-dl
ja-g
-vaihtoehto palauttaa aina 403 minulle kielletyn. Pelkästään youtube-dl: n käyttäminen videon lataamiseen toimii aina kuin viehätys.