Youtube letöltés yt-dlp segítségével

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

Az interneten található videók letöltése és offline elérhetővé tétele egyre népszerűbbé válik. Ehhez jól használható a yt-dlp Rengeteg online platform létezik, amely lehetővé teszi a felhasználók számára, hogy kedvenc videóikat letöltésre és offline megnézésre mentse. Az egyik legnépszerűbb ilyen platform a YouTube. Azonban a YouTube nem kínál beépített lehetőséget a videók letöltésére, és ezért olyan eszközökre van szükségünk, mint a yt-dlp. A yt-dlp egy parancssoros alapú YouTube letöltő, amely lehetővé teszi a videók letöltését a YouTube-ról vagy más hasonló platformokról. Ez egy nyílt forráskódú projekt, amelyet a közösség fejleszt, és számos extra lehetőséget kínál a felhasználók számára.

Azt mindenképp tudni kell, hogy a Youtube nem támogatja, sőt egyenesen tiltja a letöltéseket. Ezért ha valami holnap már nem, vagy nem úgy működik, ahogy leírtam, akkor frissítsd a programot és olvass utána, hogy mi változott meg! Amit leírok, az most (2025 június), Linux Mint és letöltött, futtatható állomány mellett ki lett próbálva.

Az egyik legnagyobb előnye a yt-dlp-nek az a képessége, hogy támogatja a különböző formátumokat és kódolókat. Ez azt jelenti, hogy a felhasználók kiválaszthatják a letöltött videók minőségét és formátumát, beleértve az mp4, mkv, avi stb. fájlokat. Emellett a yt-dlp számos kódolót támogat, beleértve az opus, a vorbis, az aac stb. audio kódolókat. Ez a sokoldalúság lehetővé teszi, hogy a felhasználók személyre szabják a letöltött videók minőségét és formátumát az egyéni igényeik szerint.

A 'yt-dlp' rendelkezik továbbá kiterjesztett funkciókkal és beállításokkal. Például a felhasználók kiválaszthatják a letöltési sebességet, a feliratokat, a letöltési metainformációkat stb. A yt-dlp lehetővé teszi a felhasználók számára, hogy pontosan beállítsák a letöltési beállításokat a saját preferenciáik szerint. Ezt megtehetik akár a konfigurációs állományban, akár pedig parancssorban. Én - mivel elég sokféle elvárásoknak teszek eleget - elsősorban a parancssori megoldást preferálom. Bár léteznek grafikus programok is, azokat érdemes hanyagolni, mert a gyors Youtube védelem változások miatt sokszor nem működnek.

Telepítés, függőségek

A yt-dlp-t könnyű telepíteni és használni Linux rendszereken. Először is, telepítenie kell a yt-dlp-t a rendszerére.

Nem jelenthet ez senkinek sem gondot, mert a honlapjukon jó a leírás: https://github.com/yt-dlp/yt-dlp

Tipp: használj előre lefordított, kész programot és nem a rendszered csomagkezelőjében lévőt. Egyes disztribúciók nagyon lassan frissítenek, így ha valami változás van, azt csak lassan kapod meg. Itt ez a lassúság azt is jelentheti, hogy egy ideig nem fogsz tudni letölteni...

# Bináris telepítés 

sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp 
sudo chmod a+rx /usr/local/bin/yt-dlp

Amit mindenképp érdemes megtenni: a konvertálásokhoz az ffmpeg kell, ami jellemzően telepítve van, de ellenőrizd le, hogy valóban így van...

A yt-dlp alap használata

És már készen is állunk a videók letöltésére. Használjuk a következő parancsot a letöltendő videó URL címével:

yt-dlp videó_URL

Például, ha a letölteni kívánt videó URL-je https://www.youtube.com/watch?v=Pq5YjnjQLso, akkor a parancs a következőképpen néz ki:

 yt-dlp https://www.youtube.com/watch?v=Pq5YjnjQLso

A yt-dlp letölti a videót és megjeleníti a letöltési folyamatot a terminálban. Az alapértelmezett formátumban és minőségben fogja letölteni a videót.

A videó URL-jét kétféleképp szerezheted be. Az egyik a böngészőben a videóra kattintva és valami olyan kell, hogy: Videó URL másolása. A mások pedig a böngészőben a a cím megadására szolgáló sorban kijelölöd a címet és kimásolod.

Tipp: Mindig használd az időkód nélküli megoldást. Amikor egy videóba beletekersz, akkor a címe megváltozik. Az helyes cím: https://www.youtube.com/watch?v=Pq5YjnjQLso. Az időkódot is tartalmazó https://www.youtube.com/watch?v=Pq5YjnjQLso&t=121s. Az elsőt használd!

További beállítások: A yt-dlp számos további beállítást és opciót kínál a letöltések testreszabásához. Például a letöltés minőségének vagy formátumának módosítása, a feliratok letöltése, a letöltési mappa megadása stb.

Az első, amit érdemes megtudni, hogy milyen formátumokban van meg a videó, azaz mi az amit elérhetünk.

yt-dlp -F videó_URL

Letöltés minőségének megadása

yt-dlp -f  videó_URL 

Például, ha a 720p minőséget szeretnénk letölteni, a parancs a következőképpen néz ki:

yt-dlp -f 'bestvideo[height<=720]+bestaudio/best[height<=720]' https://youtu.be/Pq5YjnjQLso

Magyarázat:

  • -f: formátum megadása
  • Ez 720p alatti videót és legjobb audiót választja

Bár általában a legjobbat szeretnénk, de van lehetőség a korlátok megadására is:

# Maximális 720p felbontás
yt-dlp -f 'bv*[height<=720]+ba' videó_URL

# Fájlméret korlátozása
yt-dlp -f "bestvideo[filesize<400M]+bestaudio[filesize<400M]" videó_URL

Egyszeri nézésre, vagy feleslegesen felskálázott videóknál stb. hasznos lehet a korlátok megadása.

Letöltés formátum megadása:

Itt is érdemes a leírást olvasgatni és azután finomítani a kapcsolókat.

Konkrét formátum kiválasztása:

yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]" videó_URL 

Egyedi nevek és letöltési hely megadása

Alapesetben a videó címe és a "kódja" azaz a per jel utáni azonosítót adja meg fájlnévnek. Én ezt használom, de megadhatsz egy komplettebb fájlnevet is.

yt-dlp -o "%(title)s.%(ext)s" formátumkód

Letöltési mappa megadása:

yt-dlp -o '/elérési/út/a/letöltési/mappához'

Ha nincs megadva, akkor a parancs futtatásának könyvtárába kerülnek a letöltések. Ha nincs megadva, akkor a parancs futtatásának könyvtárába kerülnek a letöltések.

Egy példa, ahol nem csak a fájl nevét adjuk meg, hanem a letöltési utat is.

 -o "~/Videos/%(playlist_title)s/%(upload_date)s - %(title)s.%(ext)s"

Tipp: ha nem muszáj - azaz én sohasem - adom meg a nevet ilyen formátumban. Utólag, manuálisan nevezem át az állományokat.
Használj egy letöltési könyvtárat, abban indítsd el a parancsot, oda jön le az összes állomány és manuálisan másold át oda, ahova akarod.

Ha mégis ilyen mód szeretnéd előre megadni a fájl neveket, akkor a leírásban minden segítséget megtalálsz!

Feliratok letöltése

yt-dlp --write-sub videó_URL

Ez a parancs letölti a videóhoz tartozó feliratokat is. Ha vannak. Ez nem generál le egy automata feliratot, csak akkor tudja leszedni, ha külön feltöltött a csatorna tulaja egyet.

Az automatikusan generált, jellemzően (gépi) angol felirattal a

yt-dlp --write-auto-subs --sub-lang en videó_URL

Paranccsal lehet leszedni.

Ha tudjuk, hogy több nyelven is van felírat, akkor ezt is megadhatjuk, hogy melyik nyelv kell.

yt-dlp --write-subs --sub-langs "en,hu" videó_URL

Kevésbé hasznos, de érdekes funkció a felírat beégetése a videóba.

yt-dlp --write-subs --sub-lang hu,en --embed-subs videó_URL

Tipp: az ilyen összetett feladatot érdemes két lépésben megtenni. Előbb a letöltéseket elvégezni, majd külön programmal a következő műveletet. Lassabb, de van lehetőség a javításra, korrekcióra.

Ami tapasztalat: sokan önreklám, vagy hasonló okok miatt raknak be feliratot a videóhoz, így letöltés előtt a feliratot nézzük meg, ne használjuk ellenőrzés nélkül ezt a funkciót.

Teljes csatorna, illetve playlist letöltés

A működése pontosan ugyanaz, mint egyes videók megadásánál. A csatorna linkjét a csatorna fő oldalán találod meg, a lejátszási listáét, akkor kapod meg, ha kiválasztod (rákattintasz) a lejátszási listára.

#Csatorna:
https://www.youtube.com/@MagyarLinuxVideok
#Playlist
https://www.youtube.com/watch?v=9Z4zlQa2Y80&list=PLtUmBa5JW2b3yXBbf3L_unFBqDzSrb1Bu

Többször találkoztam azzal a sirámmal, hogy vacak a yt.dlp mert mindent leszed, vagy egy csomó mindet leszed és nem azt, amit akarok, vagy éppen azt, hogy csak egyet szed le... Az összesnél a hiba egy "user error" volt, mert nem jól adta meg a linket.

Haladó yt-dlp használat

Egy idő után az alapok már nagyon kevésnek tűnnek, és jobban szeretnénk kihasználni a nem kevés opciót. Párat veszünk csak át, mert a leírásban minden kapcsoló jól dokumentált.

Csoportos letöltés

A yt-dlp lehetőséget biztosít a csoportos letöltésre is, amely lehetővé teszi több videó letöltését egyszerre.

Hozzunk létre egy szövegfájlt (például videok.txt), amely tartalmazza a letölteni kívánt videók URL-jeit. Minden URL-t külön sorba írjunk.Nyissunk meg egy terminált és adjuk ki a következő parancsot:

yt-dlp -a videok.txt

A -a kapcsoló jelzi a yt-dlp-nek, hogy használja a szövegfájlt az URL-ek listájával a letöltéshez.

A yt-dlp elkezdi a videók letöltését a fájlban felsorolt URL-ek alapján. A letöltési folyamatot és az egyes videók előrehaladását a terminálban fogja megjeleníteni. A csoportos letöltés lehetőséget nyújt arra, hogy egyszerre több videót töltsünk le, ezáltal időt és munkát takarítva meg. Győződjünk meg arról, hogy a videok.txt fájl helyesen formázott, és minden URL külön sorban van. Bár elvileg a leírás több elválasztási módot is bemutat, de érdemes az egy sor egy link megoldást használni. Kisebb a hibalehetőség!

Ha nagyon összetett a a parancssor, sok kapcsolót használsz, akkor egy szkriptbe is megadhatod a kapcsolókat.

Egy random példa:

#!/bin/bash
while read -r url; do
    yt-dlp -f 'bv*[height<=1080]+ba' \
           -o '%(uploader)s/%(title)s.%(ext)s' \
           --write-description \
           --write-thumbnail \
           "$url"
done < videok.txt

Folytatólagos letöltés

Archívum funkció (már letöltött videók kihagyása). Sok esetben egy csatorna, lejátszólista bővül, azaz a tulaj tölt fel még bele. Ilyenkor a sima csatorna letöltési parancs újra leszedné a régieket is. Érdemes - ha tudjuk, hogy lesz ilyen - már az elején a historikus módot használni.

yt-dlp_linux --download-archive ./kesz.txt https://www.youtube.com/@MagyarLinuxVideok

Azaz az első futáskor leszedi az összes videót a csatornámról, majd amikor újra futtatom csak az újakat. Logikus, hogy ugyanebben a könyvtárban futtatva fogja felismerni az archív funkciót biztosító ./kesz.txt állományt és azt nem szabad törölni.

Érdemes kombinálni az -a kapcsolóval.

yt-dlp_linux -a ./lista.txt -ciw -f bestaudio -x --audio-format mp3 --audio-quality 128K --download-archive ./kesz.txt

Ez a lista.txt felsorolt csatornákat lejátszási listákat nézi végig és csak azt szedi le, ami új.

Élő adások automatikus újratöltése:

yt-dlp --live-from-start --wait-for-video 600  videó_URL # 10 percenként ellenőriz

Hasznos szelektív letöltés

Az alábbi pár parancs nem kíván az egy mondatos kommentnél többet, de annál hasznosabb tud lenni:

Csak az utolsó 5 videó egy csatornából:

yt-dlp --playlist-end 5 "CHANNEL_URL"

Videó részlet letöltése:

 yt-dlp --download-sections "120-180" videó_URL  # 2-3. perc között
 yt-dlp --download-sections "*00:02:00-00:02:00" videó_URL # másik formátumban

Egy listából csak a megadott videót szedi le.

yt-dlp --yes-playlist --playlist-items 1,3-5,10 PlayList URL  # 1., 3-5., 10. elem

Gyorsítás, hibakeresés stb.

4 párhuzamos kapcsolat használata :

 yt-dlp -N 4 CHANNEL_URL

Nem emeld fel túl nagyra, mert bár a program simán bármennyit tudna kezelni, a youtube oldalán leállíthatják a letöltést.

Megszakadt letöltési sor folytatása:

yt-dlp --continue --no-overwrites CHANNEL_URL

Lemezterület ellenőrzés letöltés előtt:

yt-dlp --simulate --print "%(filesize)s" videó_URL

Bár a mostani lemez méreteknél nem egy létszükséglet.

Memóriahasználat csökkentése:

yt-dlp --no-part --no-mtime 

Sávszélesség korlátozása, ha másra is kell a sávszélesség:

yt-dlp --limit-rate 1M videó_URL

CPU optimalizálás hosszú playlist-eknél:

yt-dlp --lazy-playlist --flat-playlist videó_playlist

Letöltés naplózás, logok stb.:

yt-dlp -v --write-info-json --write-annotations --write-thumbnail videó_URL

Ez ment:

  • részletes logot a konzolra
  • videóhoz metaadatokat (.info.json)
  • YouTube annotációkat (ha vannak)
  • videó indexképet

Korlátok, és egyéb kötözködések leküzdése

A Youtube pár korlátot vezetett be, az egyik a korhatárhoz kötött videónézés. A másik a privát, csatornatagsághoz kötött stb. korlátozás.

Itt előbb be kell lépni a saját fiókodba, amiben felnőttként vagy regisztrálva, illetve amivel tag vagy az adott csatornán.

yt-dlp --cookies-from-browser firefox videó_URL

Ezzel átveszi a sütiket (cookies) a böngésződből, így be tud jelentkezni fiókodba, ha kell (pl. korhatáros vagy privát videónál).

Ha a fenti megoldás nem működik, akkor a ki kell nyerni a böngészőből a cookie-kat, amit a böngésző leírásában megtalálsz. Általában egy plug-in telepítése után már egyszerű a dolog.

yt-dlp --cookies cookies.txt videó_URL

A videókba bekerülő SponsorBlock integráció kiszedés:

yt-dlp --sponsorblock-remove sponsor videó_URL

Pár esetben hasznos lehet az alábbi két "álcázás":

# Másik client használata
yt-dlp --extractor-args "youtube:player_client=web_creator"  videó_URL

# User-Agent módosítás
yt-dlp --user-agent "Mozilla/5.0 (compatible; bot)"  videó_URL

Általános diagnosztika, verbose kimenet hibakereséshez:

yt-dlp -v  videó_URL

Hasznos megoldások, tippek

Sok "album" kerül fel a Youtube-ra, aminél a dalok, számok, vagy videó fejezetek, részekhez a leírásban megadott linkekkel lehet ugratni. Ezeket érdemes lehet számokra, fejezetekre bontva letölteni és nem egy nagy egyvelegként.

yt-dlp --split-chapters videó_URL

A yt-dlp szétvágja a megadott pontokban a letöltött anyagot. Letöltés után érdemes mindegyikbe belehallgatni, mert sokszor a számok eleje nem pontosan van megadva.

Hasznos lehet a yt-dlp használata más programokkal. Ilyen lehet egy letöltött állomány utólagos feldolgozása. Bár viszonylag jól szabályozhatjuk a letöltési elvárásainkat, de az ffmpag sokkal többet tud.

yt-dlp --exec 'ffmpeg -i {} -c:v libx265 -crf 28 {}.mkv && rm {}' videó_URL

Tömörítés H.265-be és törli eredeti fájlt.

Konfigurációs megoldások

A két alap megoldásra nem térnék ki, az egyiknél minden esetben a parancssorba megadjuk az összes kapcsolót, a másik, hogy írunk egy szkriptet, amiben minden parancsot megadunk. Ez alap és a legtöbb esetben jó lesz.

Ha mindig ugyanazt a beállítást használjuk, illetve sok a kapcsoló, akkor érdemes egy konfigurációs állományt összerakni. A leírásokban elék jól kifejtik a szerkezetet, így akinek kell el tudja készíteni.

Plugin támogatás, JSON konfiguráció

Hozd létre a ~/.config/yt-dlp/config.json fájlt:

{
  "format": "bv+ba/b",
  "outtmpl": "~/Videos/%(title)s.%(ext)s",
  "quiet": false,
  "postprocessors": [
    {
      "key": "FFmpegExtractAudio",
      "preferredcodec": "mp3",
      "preferredquality": "192"
    }
  ]
}

Ezzel nem kell minden indításkor beírni az opciókat.

De használhatsz sima szöveget is. Hozz létre egy konfigurációs fájlt a ~/.config/yt-dlp/config helyen:

# Alapértelmezett beállítások
-o ~/Downloads/%(uploader)s/%(title)s.%(ext)s
-f bestvideo+bestaudio/best
--write-description
--write-info-json
--write-thumbnail
--embed-subs
--sub-langs en,hu

Tipp: a mesterséges intelligencia elég jó konfig állományt le tud generálni, ha megadod a paramétereket!

A leírásában több tucatnyi kapcsoló, lehetőség található, így azokat mindenképp nézzük át!

Hozzászólások