2.0 KiB
2.0 KiB
Video — stahování videí
stahni_video.py
Stahuje videa z Vimea, YouTube a dalších webů přes yt-dlp. Nejlepší dostupná
kvalita, sloučení video+audio do .mp4. Soukromá / nedostupná videa sám pozná
a přeskočí (nespadne).
Závislosti (jednorázově)
python -m pip install -U yt-dlp static-ffmpeg
- yt-dlp — vlastní downloader.
- static-ffmpeg — dodá
ffmpeg.exe+ffprobe.exe(v systému ffmpeg není). Skript si přesstatic_ffmpeg.add_paths()cestu nastaví sám; binárky se stáhnou při prvním běhu dosite-packages\static_ffmpeg\bin\.
Použití
python stahni_video.py URL [URL2 ...]
python stahni_video.py # vezme URL z urls.txt (1 na řádek)
python stahni_video.py --cookies-from-browser firefox URL # video za přihlášením
python stahni_video.py -o D:\nekam URL # jiný výstupní adresář
Výchozí výstupní adresář je tento (Video/). Soubory: %(title)s [%(id)s].mp4.
Jak pozná soukromé/nedostupné video
yt-dlp vyhodí DownloadError s textem chyby. Funkce klasifikuj_chybu() hledá
v textu známé fráze (private video, video unavailable, removed,
members-only, …) a vrátí český popis → video se přeskočí. Jiné chyby (síť,
chybí ffmpeg) se vypíšou jako [CHYBA], ale běh pokračuje na další URL.
Na konci se vypíše souhrn (staženo / přeskočeno / chyby).
Poznámky / úskalí
- Soukromé YouTube video opravdu nejde stáhnout, pokud k němu přihlášený účet nemá udělený přístup — to je záměr, skript ho jen přeskočí.
- Diakritika v názvech: cesty se zkomolí, když se předávají Windows binárce přes Bug Bash pipe; v běžné konzoli (cp1250) je vše v pořádku.
- Vimeo dává oddělené video/audio HLS streamy → ffmpeg je nutný pro sloučení.
- Při prvním běhu může yt-dlp varovat na chybějící JavaScript runtime (deno); pro běžná veřejná videa to nevadí.