48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# 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ě)
|
|
|
|
```bat
|
|
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řes `static_ffmpeg.add_paths()` cestu nastaví sám; binárky se
|
|
stáhnou při prvním běhu do `site-packages\static_ffmpeg\bin\`.
|
|
|
|
### Použití
|
|
|
|
```bat
|
|
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í.
|