Pokročilé stahování přes Yt-dlp

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.

Zobrazení kompletních informací o videu, hodí se v případě, že chci stáhnout přesně konkrétní formát

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
Pokročilé stahování přes Yt-dlp

23 komentáře u “Pokročilé stahování přes Yt-dlp

  • 13. 2. 2023 at 7:48

    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

    Reply
    • 13. 2. 2023 at 11:03
      https://how2do.cz

      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.

      Reply
        • 17. 2. 2023 at 12:40
          https://how2do.cz

          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.

          Reply
  • 25. 2. 2023 at 0:49

    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)‘)))

    Reply
  • 6. 4. 2023 at 11:53

    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

    Reply
      • 6. 4. 2023 at 12:50

        Díky… tak mám smůlu

        Reply
        • 15. 4. 2023 at 17:11

          Z ČT lze stahovat pomocí jiného programu:

          PocketDivXEncoder_0.3.96.exe

          Reply
        • 15. 4. 2023 at 17:13

          oprava:

          Z ČT lze stahovat pomocí jiného programu:

          FreeRapid-0.9u4

          PS: ten předchozí je jenom konvertor.

          Reply
  • 28. 4. 2023 at 11:48

    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

    Reply
  • 20. 5. 2023 at 18:05

    Jak je to, prosím, s Primou? Píše mi to, že potřebuji jméno a heslo?

    Reply
  • 18. 6. 2023 at 14:25

    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

    Reply
  • 7. 1. 2024 at 17:20

    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.

    Reply
  • 11. 1. 2024 at 14:16

    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.

    Reply
  • 14. 2. 2024 at 22:00

    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.

    Reply
  • 29. 2. 2024 at 9:08

    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?

    Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *