V článku Jak stáhnout video pomocí CMD s použítím Yt-dlp jsme si ukázali základy jak rozchodit yt-dlp a jak stahovat video v nejvyšší kvalitě. Tato utilita toho umí mnohem více a dnes se zaměříme na další její funkce.
Tento návod neslouží jako motivace k nelegálnímu šíření a distribuci obsahu, pouze poukazuje na možnosti utility yt-dlp. Vždy si zjisti dané podmínky a využívej pouze pro osobní potřebu!
Pro začátek doporučuji si v počítači vyhradit samostatnou složku, kde budeš mít yt-dlp.exe uložené. Všechny další funkce se volají pomocí parametrů. Parametry používáš pomocí symbolu – za pomlčku napíšeš název parametru. Nejzákladnější parametr je nápověda, kterou zavoláš pomocí yt-dlp.exe -h výsledkem bude výpis nápovědy do konzole.
Videa chráněná technologií DRM nelze stáhnout ani přes tento nástroj.
Stahování vybrané kvality videa, nebo zvuku
Pro zjištění dostupných kvalit videa se využívá parametr -F pozor musí být s velkým písmenem!
yt-dlp -F https://www.youtube.com/watch?v=uJ_1HMAGb4k
Výpis při použití parametru -F zobrazí formátovaný výstup jako tabulku s danými sloupci, které určují vlastnosti videa. Záhlaví je popsané, díky tomu lze snadno zjistit o jaké hodnoty se v tabulce jedná. Většina serverů má video v různé kvalitě, nebo pod jednou URL je videí více, například i reklama, nebo určení věkové hranice videa.
Yt-dlp vždy automaticky stáhne nejvyšší kvalitu videa, tak je by default nastaveno. Jestliže je nejvyšší kvalita videa bez zvuku stáhne jí a stáhne i nejvyšší kvalitu audio stopy a soubory sloučí do jednoho. V příkladu výše stáhl ID251 a ID248 výsledkem je soubor .webm. Pokud chceš stáhnout kvalitu, kterou si sám vybereš musíš využít ID, které sis vypsal pomocí přepínače -F a toto ID uvést v přepínači -f musí být malé f. Poté se spustí stahování konkrétního vybraného formátu.
#zde stahuji video z YT s kvalitou ID 22, to znamená rozlišení 1280x720, formát mp4 i se zvukem
yt-dlp https://www.youtube.com/watch?v=uJ_1HMAGb4k -f '22'
Pokud bys chtěl stáhnout nejvyšší kvalitu v mp4 jak zvuk, tak i video a smíšené (zvuk s videem) je podle ID pouze rozlišení 1280×720 musíš použít přepínač -S, ve kterém určíš jaké přípony se budou stahovat -S ext:mp4:m4a. Stáhne se mp4 pro obraz a m4a pro zvuk a nakonec se sloučí do výsledného mp4. Podle ID z našeho příkladu se stáhne pro video ID137 a zvuk ID140.
#Pro stažení nejvyšší kvality v MP4
yt-dlp https://www.youtube.com/watch?v=uJ_1HMAGb4k -S ext:mp4:m4a
Stažení pouze audio stopy a konverze do MP3
Může se stát, že chceš stáhnout pouze zvukovou stopu, například tvojí oblíbenou písničku a nechceš k tomu mít i videoklip. I na to je vývojáři mysleli používá se parametr -x jen je potřeba mít stažený konvertor ffmpeg a ffprobe. Vše stáhneš ZDE je to zabalené v zipu. Je potřeba zip rozbalit a soubory co jsou v /bin vložit do stejné složky jako jsi umístil yt-dlp.
Jmenovitě se jedná o soubory:
- ffmpeg.exe
- ffplay.exe
- ffprobe.exe
#Vybere nejlepší kvalitu audio stopy a provede její konverzi na mp3, přepínač -o je využit na přejmenování výsledného souboru a není nutný
yt-dlp -f ba -x --audio-format mp3 https://www.youtube.com/watch?v=uJ_1HMAGb4k -o %(title)s.%(ext)s
Stažení celého playlistu z Youtube
Yt-dlp umí stahovat i celý playlist z YT. Použití si dovedu představit například, že chci vytvořit soubor písniček na nějakou akci. Vytvořím si na YT playlist (seznam) do kterého všechny ty písničky přidám a pak si je stáhnu najednou jako samostatné mp3 soubory.
Je potřeba použít pouze místo URL videa URL kompletního playlistu. Jeho URL získáš tak, že si playlist vyhledáš a místo přehrát klikneš na tlačítko zobrazit celý playlist.
Pokud se nacházíš na konkrétním videu v playlistu a chceš zobrazit celý playlist musíš na to úpravou adresy videa.
Například u seznamu:
https://www.youtube.com/watch?v=uJ_1HMAGb4k&list=PLuBgIJLnrMv1ioh1pBN94FTMAJJb1xPfN&index=1 se lze na seznam všech videí dostat přepsáním URL adresy.
Tučně je vyznačeno ID playlistu. Stačí ho zkopírovat a použít ve tvaru https://www.youtube.com/playlist?list=PLuBgIJLnrMv1ioh1pBN94FTMAJJb1xPfN tento link pak použít v yt-dlp a stáhneš tak všechny videa/audia z daného seznamu.
#Místo zdroje konkrétního videa zadám link na celý playlist
yt-dlp -f ba -x --audio-format mp3 https://www.youtube.com/playlist?list=PLuBgIJLnrMv1ioh1pBN94FTMAJJb1xPfN -o '%(title)s.%(ext)s'
Stahování z předem připraveného seznamu URL adres
Chceš stáhnout více souborů na jednou a nechceš spouštět stahování po každém souboru znova ručně? I na to je myšleno, stačí URL adresy uložit do *.txt souboru jako seznam oddělený enterem a poté použít parametr -a parametr jde samozřejmě kombinovat s parametry výše.
Příklad souboru: seznam.txt
#stažení všech souborů co jsou uvedeny v seznam.txt
yt-dlp -a seznam.txt
#stažení všech audio stop co jsou uvedeny v seznam.txt a jejich převod na mp3
yt-dlp -f ba -x --audio-format mp3 -a seznam.txt
Stahování vybraného časového úseku
Chceš stáhnout pouze vybraný časový úsek videa a né celé? Ušetříš si čas, datový objem a také práci se stříháním. I na to tvůrci mysleli a lze toho docílit pomocí ffmpeg jak s ním pracovat je popsáno ZDE. Pro využití je potřeba uvést parametry –downloader a –downloader-args a časový úsek od v sekundách od začátku videa.
#zadej časový úsek od začátku videa v sekundách
#hodnoty 20 a 60 nahraď svým časem začátku a konce
yt-dlp.exe -–downloader ffmpeg -–downloader-args "ffmpeg_i:-ss 20 -to 60" url_daného_videa
Dobrý den,
mám dva dotazy.
1) je možné s využitím Yt-dlp stáhnout ze zdroje např. česká televize, jen vybranou časovou sekvenci (Audio/video)? Můžete případně uvést příklad správného zápisu?
2) Lze stáhnout i videa z webu idnes.cz? Denik.cz? SeznamZpravy.cz? Viz. třeba
https://www.denik.cz/z_domova/k-dezinformatorum-patri-spd-a-okamura-osobne-rekl-petr-fiala-20231020.html
https://www.seznamzpravy.cz/clanek/uz-nemaji-covid-ale-domu-nemuzou-proc-zustavaji-nemocnice-pretizene-141285
Dobrý den, ano je to možné musí se využít utility ffmpeg parametry poté budou –downloader ffmpeg –downloader-args „ffmpeg_i:-ss čas_v_sekundach_od_začátku -to čas_v_sekundách_od_začátku“ zadáte čas od kdy se má začít stahovat a kdy ve videu audiu se má končit.
Každá konkrétní stránka přistupuje k videím jinak takže neexistuje konkrétní návod na všechny. Třeba v deníku lze využít vyhledání v network viz https://how2do.cz/navody/jak-stahnout-audio-porad-ceskeho-rozhlasu-v-mp3/ ale budete hledat mp4, který poté stáhnete.
Povedlo se mi stáhnout celý pořad ČT, ale když chci od – do tak to stahuje celý pořad, příkaz jsem zadal takto (Zprávy ČT 3min na testování), chci od 20.s do 60.s:
yt-dlp.exe –downloader ffmpeg –downloader-args „ffmpeg_i:-ss 20 -to 60“ https://www.ceskatelevize.cz/porady/1178166846-zpravy/223411013300216/
Také mi nefunguje stažení z youtube, pokus skončí takto:
https://ibb.co/8c2NFSy
Verze yt-dlp 2023.01.06
Návod je výše přímo na této stránce. V komentářích bohužel blbnou pomlčky, proto to nejspíš nešlo. Stahování z YT bohužel aktuálně nefunguje vyřeší se v nové verzi yt-dlp, nejspíš se něco změnilo na straně Youtube.
Zdravím, nedaří se mi vůbec připojení k určitým stránkám, například tv.nova.cz. Níže uvedu chybová hlášení, třeba někdo bude vědět kde se stává chyba, na GitHub jsem koukal a zatím se to tam neřešilo, tak je to třeba pouze lokální problém.
[Nova] Extracting URL: http://tv.nova.cz/porad/vymena-manzelek/epizoda/349705-7-dil
[Nova] 349705-7-dil: Downloading webpage
ERROR: [Nova] 349705-7-dil: Unable to download webpage: (caused by URLError(SSLError(1, ‚[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1131)‘)))
Dobrý den,
pokouším se stáhnout dokument o Genesis z ČT – https://www.ceskatelevize.cz/porady/11270334708-genesis/
Bohužel YT mi hlásí chybu – Unable to download webpage: HTTP Error 404: Not Found
Není to tím, že na stránce je tlačítko a to teprve spustí video, ale URL je stále stejná?
Jak na to? Verzi YT mám poslední.
Dík za radu
Dobrý den,
bohužel aktuálně je yt-dlp pro stahování z ČT nefunkční viz https://github.com/yt-dlp/yt-dlp/issues/6539
Je potřeb počkat na opravu ze strany komunity.
Díky… tak mám smůlu
Z ČT lze stahovat pomocí jiného programu:
PocketDivXEncoder_0.3.96.exe
oprava:
Z ČT lze stahovat pomocí jiného programu:
FreeRapid-0.9u4
PS: ten předchozí je jenom konvertor.
Dobrý den
Toto viz Váš popis nefunguje:
„přepínač -S, ve kterém určíš jaké přípony se budou stahovat -S ext:mp4:m4a“
Stáhne to pouze 1280×720.! Kde říkám tomuto příkazu s parametrem -S, že má stáhnout 137 (1920×1080) a 140 se zvukem m4a?
Moc děkuji
Jak je to, prosím, s Primou? Píše mi to, že potřebuji jméno a heslo?
Pořady na Primě jsou jen pro přihlášené takže použít přihlášení pro iprima. Návod zde https://how2do.cz/navody/jak-stahnout-porad-iprima/
Děkuji tocak <3
Ahoj,
1. nainstalil jsem si dnes yt-dlp z odkazu v clanku
2. pustil yt-dlp -F link na soubor
napsalo mi to, ze programek neni kompatibilnis moji verzi windows. mam Win 10 Home. Co ted? Dik 🙂
Robert
Ahoj, jediné co mě napadá je, že používáš 32bit verzi OS. V tomto případně je potřeba jiná verze YT-DLP nalezneš jí zde: https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_x86.exe
Edice systému Windows by na funkčnost neměla mít vliv.
Dobrý den, lze s pomocí yt-dlp získat výpis obsahu celého kanálu na youtubu? Např. ve formátu:
Název videa; Datum zveřejnění; Link; Délka videa;
a seznam zapsat do nějakého textového souboru? Děkuji.
Dobrý den, ytdlp to neumí přidal jsem článek s návodem jak na to přes Google Chrome.
https://how2do.cz/windows/export-youtube-playlistu-do-csv/
Ke stažení vybraného úseku videa z youtube pomocí ffmpeg:
zápis: yt-dlp.exe –downloader ffmpeg –downloader-args „ffmpeg_i:-ss 20 -to 60“ https://www.youtube.com/watch?v=X3ap90nZqFc
Výsledek je
1) video 50s – proč ne 40s?
2) obraz se seká, audio stopa je rozhozená od video stopy
3) výstupní formát webm, velikost 131MB.
Čím jsou problémy způsobeny a jak docílit správné sekvence videa a audio stopy?
Jiný pokus, stejný zápis, ale video: https://www.youtube.com/watch?v=gtum4FaWLZU
Výsledek: stáhne jen audio stopu.
Další pokus – video https://www.youtube.com/watch?v=abLktBYgXdM
Výsledek: stahování selže.
Rozdílnost výsledků je velmi pestrá a vždy chybová. Můžete zkusit, zda se opakuje i u Vás? A co s tím?
Děkuji.
Trošku jsem sem se trápil se stahováním, pokud nebylo rovnou audio a video v jednom souboru.
Podařilo se mi to vyřešit pomocí tohoto zápisu parametru, kde se sčítá pomocí plus + :
-f hls-1718-0+dash-audio_cze
Pomocí parametru -F zobrazím všechny formáty a pak si vyberu konkrétní kvalitu videa a konkrétní kvalitu audio a také konkrétní jazyk, jednotlivé parametry pak posčítám pomocí znaménka plus + takto:
-f hls-1718-0+dash-audio_cze=128514
sloučení provedu pomocí parametru: -S ext:mp4:m4a
všechny parametry jsou v dávce třeba takto:
set parametr=-f hls-1718-0+dash-audio_cze=128514 -S ext:mp4:m4a
a pak zavolám program z dávky třeba takto:
yt-dlp.exe %parametr% -u login -p password -a „%list%“
Třeba se to bude někomu hodit.
Díky, až budu mít chvíli doplním do článku.
Prima má u zahraničních pořadů vždy i originální jazykovou stopu. yt-dlp tak v defaultu vždy stahuje video s originální zvukovou stopou. Nedá se nějak program donutit, aby rovnou stahoval český dabing a já jej nemusel stahovat zvlášť a vyměňovat v nějakém softu?
Je potřeba stahovat oddělené stopy a nechat je na konci spojit. Například pomocí parametru -f hls-1721-1+dash-audio_cze=128543 -S ext:mp4:m4a více v komentáři Cenobita https://how2do.cz/navody/pokrocile-stahovani-pres-yt-dlp/#comment-660
není potřeba dělat dávku to je jen bonus, když toho chcete více najednou. Je také potřeba mít komponenty ffmpeg.