Nejdrive jsem zkousel uplne klasicky instalovat prez apt:
apt install yt-dlp
V Ubuntu 23.04 probehla instalace bez problemu, ale samotny program pak nefungoval. Nejspis slo o prilis starou verzi z brezna 2023. Zkousel jsem aktualizaci, prez apt nic, a pomoci yt-dlp -U instalace nefungovala.
U klasicky prez apt nainstalovaneho programu mi to vice-mene u vsech videi hodilo chybu:
Got error: HTTP Error 403: Forbidden. Retrying fragment 4 (1/10)...
Nasel jsem, ze chybu odstranime pri smazani cache a nebo vypnuti cache pri stahovani. Tak jsem ruzne zkousel smazat cache prez prikaz, ktery jsem nasel pro yt-dlp, ale i rucne v ~/.cache/yt-dlp/ alw nic nepomohlo.
yt-dlp jsem odinstaloval a nove nainstaloval primo do sveho home lokalne, jak poradil k3daR tedy:
wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O ~/.local/bin/yt-dlp
chmod a+rx ~/.local/bin/yt-dlp  # Make executable
Nyni vse jede uplne normalne. Dokonce ani neni problem stahnout vekem omezena videa, ktera ve webovem prohlizeci pozaduji prihlaseni kvuli kontrole veku.
Pri instalaci YT-DLP do lokalu pak v prikazovem radku nestaci zadat YT-DLP, ale celou cestu. Vyhodou je, ze nistalace do home adresare nepotrebuje rootovska prava. Spusteni (vlnovka oznacuje cestu do domovskeho adresare):
~/.local/bin/yt-dlp
Pri stahovani videa obycejnym zadanim yt-dlp URL se stahne format s nejvyssim rozzlisenim - video bude hodne velke a bez zvuku. 
Pro stahovani videa doporucuji nejdriv zkontrolovat dostupne formaty: ~/.local/bin/yt-dlp -F URL
Jak vybereme format, ktery chceme stahnout ? Zadame cislo formatu (prvni sloupec). Napr. jsem zvolil format c. 18 - video se zvukem v rozliseni 640x360, pripona mp4. Jak uz jsem zminil, k dizpozici je nekolik formatu pro stahnuti pouze zvuhu a ruzna rozliseni videa, ale vetsina video formatu u me verze je bez zvuku, pouze dva formaty jsou se zvukem. Obecne tech formatu (audio-video) je nekolik, ne vsechny jsou dostupne u kazdeho videa.
Formaty videa se zvukem:
18 - video mp4 rozliseni 640x360 zvuk mp4a.40.2 44k 360p
22 - video mp4 rozliseni 1280x720 zvuk mp4a.40.2 44k 360p
Format c. 22 a format c. 18, tam je kvalita zvuku stejna, rusi se rozliseni videa a velikost souboru. Ale i format c. 22 nema tu velikost souboru nijak velkou. A u vsech videi, co jsem se zatim setkal, je k dizpozici format c. 18, format c. 22 neni vzdy k dizpoziici. Pri davkovem stahovani hodne videi doporucuji vyuzit format c. 18.
Zadani URL videa URL - odkaz na konkretni video: https://www.youtube.com/watch?v=t1TcDHrkQYg Velke usnadneni je v tom, ze staci zadat ID videa skladajici se z alfa-numerickych znaku (vzdy 11 zkaku ?).
A tedy:
Zjisteni dostupnych formatu:
~/.local/bin/yt-dlp -F t1TcDHrkQYg
Velka cast gformatu je jen video bez zvuku a jen dva formaty jsou video se zvukem. Nekolik formatu je pouze zvuk a mozne je i stahnout nahled - obrazek. Zrovna tady je k dizpozici video se zvukem jen ve formsatu 18, jeste s rozlisenim o neco mensim 480x360.
Stahnuti videa:
~/.local/bin/yt-dlp -f 18 --rate 1000k t1TcDHrkQYg
-f 18 je zvoleni formatu a --rate 1024k je omezeni stahovaci rychlosti na 1024 kB/s. -F je stahnuti listu dostupnych formatu. Nemusi byt vzdy, hodnota muze byt i jina. U vysokych rychlosi stahovani vsak hodnota ruzne kolisa a pro youtube to muze byt nakonec i podezrele.
Nazev stazeneho souboru je nazev videa na youtube s identifikacnim retezcem. Casto obsahuje ne-alfanumericke a ruzne ne UNix-Friendly znaky. Co s tim, to bude dalsi zkoumani.
Stejne tak je mozne i stahnout playlist zatim nevim jak. Pro stahovani staci pouzit jako promennou ID videa (Alfa-Numericky retezec) a tak lze mit i seznam URL - ID videi napr. v textaku a stahovat davkove, prez cyklus promenne a pod.
Seznam obvyklych formatu u videa, testovano na videu, kde je formatu k dizpozici vice. Formaty video se zvukem jsou jen 18 a 22 a format c. 22 neni nekdy k dizpozici, format c. 18 byl zatim k dizpozici vzdy (doporucen pri davkovem stahovani). Ne vzdy jsou k dizpozici formaty s vysokym rozlisenim. Vlnovka znamena pribliznou velikost.
~/.local/bin/yt-dlp -F cqZJysZCS_k
[youtube] Extracting URL: cqZJysZCS_k
[youtube] cqZJysZCS_k: Downloading webpage
[youtube] cqZJysZCS_k: Downloading ios player API JSON
[youtube] cqZJysZCS_k: Downloading android player API JSON
[youtube] cqZJysZCS_k: Downloading m3u8 information
[info] Available formats for cqZJysZCS_k:
ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2 mhtml 59x45        0    │                  mhtml │ images                                  storyboard
sb1 mhtml 118x90       0    │                  mhtml │ images                                  storyboard
sb0 mhtml 237x180      0    │                  mhtml │ images                                  storyboard
233 mp4   audio only        │                  m3u8  │ audio only          unknown             [en] Default
234 mp4   audio only        │                  m3u8  │ audio only          unknown             [en] Default
599 m4a   audio only      2 │    1.72MiB   31k https │ audio only          mp4a.40.5   31k 22k [en] ultralow, m4a_dash
600 webm  audio only      2 │    2.20MiB   39k https │ audio only          opus        39k 48k [en] ultralow, webm_dash
139 m4a   audio only      2 │    2.73MiB   49k https │ audio only          mp4a.40.5   49k 22k [en] low, m4a_dash
249 webm  audio only      2 │    3.11MiB   56k https │ audio only          opus        56k 48k [en] low, webm_dash
250 webm  audio only      2 │    4.04MiB   72k https │ audio only          opus        72k 48k [en] low, webm_dash
140 m4a   audio only      2 │    7.25MiB  129k https │ audio only          mp4a.40.2  129k 44k [en] medium, m4a_dash
251 webm  audio only      2 │    7.77MiB  139k https │ audio only          opus       139k 48k [en] medium, webm_dash
597 mp4   190x144     15    │    1.42MiB   25k https │ avc1.4d400b     25k video only          144p, mp4_dash
602 mp4   190x144     15    │ ~  4.47MiB   78k m3u8  │ vp09.00.10.08   78k video only
598 webm  190x144     15    │    1.08MiB   19k https │ vp9             19k video only          144p, webm_dash
394 mp4   190x144     30    │    4.18MiB   75k https │ av01.0.00M.08   75k video only          144p, mp4_dash
269 mp4   190x144     30    │ ~  8.14MiB  142k m3u8  │ avc1.4D400C    142k video only
160 mp4   190x144     30    │    2.92MiB   52k https │ avc1.4D400C     52k video only          144p, mp4_dash
603 mp4   190x144     30    │ ~  8.96MiB  156k m3u8  │ vp09.00.11.08  156k video only
278 webm  190x144     30    │    5.20MiB   93k https │ vp09.00.11.08   93k video only          144p, webm_dash
395 mp4   316x240     30    │    8.59MiB  153k https │ av01.0.00M.08  153k video only          240p, mp4_dash
229 mp4   316x240     30    │ ~ 13.89MiB  242k m3u8  │ avc1.4D400D    242k video only
133 mp4   316x240     30    │    6.69MiB  120k https │ avc1.4D400D    120k video only          240p, mp4_dash
604 mp4   316x240     30    │ ~ 14.37MiB  251k m3u8  │ vp09.00.20.08  251k video only
242 webm  316x240     30    │    5.50MiB   98k https │ vp09.00.20.08   98k video only          240p, webm_dash
396 mp4   474x360     30    │   13.76MiB  246k https │ av01.0.01M.08  246k video only          360p, mp4_dash
230 mp4   474x360     30    │ ~ 27.58MiB  481k m3u8  │ avc1.4D401E    481k video only
134 mp4   474x360     30    │   10.18MiB  182k https │ avc1.4D401E    182k video only          360p, mp4_dash
18  mp4   474x360     30  2 │ ≈ 17.84MiB  311k https │ avc1.42001E         mp4a.40.2       44k [en] 360p
605 mp4   474x360     30    │ ~ 25.73MiB  448k m3u8  │ vp09.00.21.08  448k video only
243 webm  474x360     30    │    8.99MiB  161k https │ vp09.00.21.08  161k video only          360p, webm_dash
397 mp4   632x480     30    │   24.08MiB  430k https │ av01.0.04M.08  430k video only          480p, mp4_dash
231 mp4   632x480     30    │ ~ 41.08MiB  716k m3u8  │ avc1.4D401E    716k video only
135 mp4   632x480     30    │   13.62MiB  243k https │ avc1.4D401E    243k video only          480p, mp4_dash
606 mp4   632x480     30    │ ~ 33.36MiB  581k m3u8  │ vp09.00.30.08  581k video only
244 webm  632x480     30    │   12.84MiB  229k https │ vp09.00.30.08  229k video only          480p, webm_dash
22  mp4   950x720     30  2 │ ≈ 27.65MiB  482k https │ avc1.64001F         mp4a.40.2       44k [en] 720p
398 mp4   950x720     30    │   49.01MiB  876k https │ av01.0.05M.08  876k video only          720p, mp4_dash
232 mp4   950x720     30    │ ~ 45.61MiB  795k m3u8  │ avc1.4D401F    795k video only
136 mp4   950x720     30    │   19.76MiB  353k https │ avc1.4D401F    353k video only          720p, mp4_dash
609 mp4   950x720     30    │ ~ 47.16MiB  822k m3u8  │ vp09.00.31.08  822k video only
247 webm  950x720     30    │   21.23MiB  379k https │ vp09.00.31.08  379k video only          720p, webm_dash
399 mp4   1424x1080   30    │   71.47MiB 1277k https │ av01.0.08M.08 1277k video only          1080p, mp4_dash
270 mp4   1424x1080   30    │ ~127.66MiB 2225k m3u8  │ avc1.640028   2225k video only
137 mp4   1424x1080   30    │   73.72MiB 1317k https │ avc1.640028   1317k video only          1080p, mp4_dash
614 mp4   1424x1080   30    │ ~125.49MiB 2187k m3u8  │ vp09.00.40.08 2187k video only
248 webm  1424x1080   30    │   65.63MiB 1173k https │ vp09.00.40.08 1173k video only          1080p, webm_dash
616 mp4   1424x1080   30    │ ~185.20MiB 3228k m3u8  │ vp09.00.40.08 3228k video only          Premium
Typ na automaticke prejmenovani nazvu stazenych souboru nejlepe na Alfa-Numericke znaky plus podtrzitko uvitam.
Nejspis zasadne kvuli automaticke kontrole obsahu a vyuzivani monopolu, ale videa z youtube pomerne mizi a o uzivatele se YT uplne nestrara. ASpon je k dizpozici nastroj pro stazeni.