URL-ben lévő élő videót FFMPEG-gel rögzíteni Ubuntu szerveren úgy, hogy 20 perces darabokban hoz létre fájlokat. A YouTube Live stream rögzítése FFMPEG segítségével megoldható, de mivel a YouTube nem támogatja közvetlenül az FFMPEG URL alapú stream-rögzítését, a folyamatnak két lépése van, Python könyvtár használatával.
- A stream URL beszerzése:
Erre például a yt-dlp (Python – YouTube-DLP) használható, amely képes a YouTube élő adásának közvetlen HLS (HTTP Live Streaming) URL-jét lekérni. - A stream rögzítése FFMPEG-gel
A HLS URL-t FFMPEG-gel rögzítheted, miközben 20 perces szegmensekre osztod a fájlokat.
Az újabb Python verziók védik a rendszerszintű Python-környezetet a pip-el történő módosításoktól. Ezért a rendszer nem engedélyezi a pip-en keresztüli csomagtelepítést a rendszerszintű Pythonba.
Virtuális környezet létrehozásáról bővebben itt.
A YouTube-DLP önállóan is futtatható Windows és Linux környezetben is. A YouTube-DLP (röviden yt-dlp) egy fejlettebb, aktívan karbantartott, nyílt forráskódú eszköz, amelyet videók és audió fájlok letöltésére használnak különböző weboldalakról, köztük a YouTube-ról, Twitch-ről, Facebookról és sok más platformról. Az yt-dlp a youtube-dl egy továbbfejlesztett verziója, amely számos új funkcióval és fejlesztéssel bővült.
A YouTube-DLP (yt-dlp) leírása bővebben itt.
1. Használj virtuális környezetet, valamint pipxet a csomag telepítéséhez (Ajánlott)
Ez a legbiztonságosabb módszer, mivel elkülönített Python-környezetet hoz létre:
# Virtuális környezet létrehozása
python3 -m venv yt-dlp-env
# Aktiváld a virtuális környezetet
source yt-dlp-env/bin/activate
# Telepítsd a yt-dlp-t
pipx install yt-dlp
# A `yt-dlp` használata
yt-dlp --version
A virtuális környezet (venv) vagy a pipx használata jobb megoldás, mivel ezek nem módosítják a rendszerszintű Python-környezetet, és könnyebben kezelhetők
2. Szerezd meg a HLS URL-t
Használd a következő parancsot a YouTube élő adás stream URL-jének lekéréséhez:
yt-dlp -g "https://www.youtube.com/live/SpTcIBfDvg4?si=kc1YfCGIg5Zq4hZ7"
A parancs a stream közvetlen HLS URL-jét adja vissza, például:
https://manifest.googlevideo.com/api/manifest/hls_playlist/... (hosszú URL)
HLS URL használata bash scriptben:
#!/bin/bash
# HLS URL lekérése
HLS_URL=$(yt-dlp -g "https://www.youtube.com/live/SpTcIBfDvg4?si=kc1YfCGIg5Zq4hZ7")
# Csak az audio stream rögzítése - 20 perces darabokban
ffmpeg -i "$HLS_URL" - -vn -acodec libmp3lame -b:a 192k -f segment -segment_time 1200 -reset_timestamps 1 output_%03d.mp3
Megjegyzés: az FFMPEG megszakadhat, ha a hálózati kapcsolat instabil, ezért érdemes a folyamatot monitorozni vagy újraindítási logikát hozzáadni.
