1
0

Create gronkh-dl.bat

This commit is contained in:
Akamaru
2025-12-01 18:10:30 +01:00
parent 2a2af1e941
commit 1062427466

136
gronkh-dl.bat Normal file
View File

@@ -0,0 +1,136 @@
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
echo ================================
echo GronkhTV Downloader
echo ================================
echo.
:: URL-Eingabe
set /p URL="Gib die GronkhTV URL ein (z.B. https://gronkh.tv/streams/1046): "
if "%URL%"=="" (
echo Fehler: Keine URL eingegeben!
pause
exit /b 1
)
echo.
echo Verarbeite URL...
:: Episode-ID extrahieren mit PowerShell
for /f "delims=" %%i in ('powershell -NoProfile -Command "if ('%URL%' -match '/streams/(\d+)') { $matches[1] } else { 'ERROR' }"') do set EPISODE_ID=%%i
if "%EPISODE_ID%"=="ERROR" (
echo Fehler: Ungueltige URL! Muss Format https://gronkh.tv/streams/NUMMER haben
pause
exit /b 1
)
echo Episode-ID: %EPISODE_ID%
echo.
:: playlist_url von API holen
echo Hole Playlist-URL...
for /f "delims=" %%i in ('powershell -NoProfile -Command "try { (Invoke-RestMethod -Uri 'https://api.gronkh.tv/v1/video/playlist?episode=%EPISODE_ID%').playlist_url } catch { 'ERROR' }"') do set PLAYLIST_URL=%%i
if "%PLAYLIST_URL%"=="ERROR" (
echo Fehler: Konnte Playlist-URL nicht abrufen!
pause
exit /b 1
)
echo Playlist-URL: %PLAYLIST_URL%
echo.
:: Qualitaetsstufen aus m3u8 extrahieren
echo Analysiere verfuegbare Qualitaeten...
:: M3U8 mit curl herunterladen
curl -s -H "Referer: https://gronkh.tv" "%PLAYLIST_URL%" > playlist.m3u8
:: URLs extrahieren (alle https URLs)
set STREAM_NUM=0
for /f "usebackq delims=" %%a in (`findstr /B "https" playlist.m3u8`) do (
set /a STREAM_NUM+=1
if !STREAM_NUM!==1 set "STREAM_URL_1=%%a"
if !STREAM_NUM!==2 set "STREAM_URL_2=%%a"
if !STREAM_NUM!==3 set "STREAM_URL_3=%%a"
)
:: Qualitaetslabels setzen
set QUALITY_1=1080p60
set QUALITY_2=720p
set QUALITY_3=360p
del playlist.m3u8
echo.
echo Verfuegbare Qualitaeten:
if not "%STREAM_URL_1%"=="" echo 1. %QUALITY_1%
if not "%STREAM_URL_2%"=="" echo 2. %QUALITY_2%
if not "%STREAM_URL_3%"=="" echo 3. %QUALITY_3%
echo.
choice /c 123 /n /m "Waehle Qualitaet (1-3): "
set SELECTED_QUALITY=%errorlevel%
if "%SELECTED_QUALITY%"=="1" (
set FINAL_STREAM_URL=%STREAM_URL_1%
set QUALITY_NAME=%QUALITY_1%
)
if "%SELECTED_QUALITY%"=="2" (
set FINAL_STREAM_URL=%STREAM_URL_2%
set QUALITY_NAME=%QUALITY_2%
)
if "%SELECTED_QUALITY%"=="3" (
set FINAL_STREAM_URL=%STREAM_URL_3%
set QUALITY_NAME=%QUALITY_3%
)
echo Ausgewaehlte Qualitaet: %QUALITY_NAME%
echo.
:: Video-Titel von API holen und bereinigen
echo Hole Video-Titel...
for /f "delims=" %%i in ('powershell -NoProfile -Command "$title = try { (Invoke-RestMethod -Uri 'https://api.gronkh.tv/v1/video/info?episode=%EPISODE_ID%').title } catch { 'GTV%EPISODE_ID%' }; $clean = $title -replace '[^\w\s\-,]', '' -replace '\s+', '_' -replace '_+', '_' -replace '^_|_$', ''; if ($clean.Length -gt 200) { $clean = $clean.Substring(0, 200) }; $clean"') do set VIDEO_TITLE=%%i
if "%VIDEO_TITLE%"=="" set VIDEO_TITLE=GTV%EPISODE_ID%
echo Titel: %VIDEO_TITLE%
echo Dateiname: %VIDEO_TITLE%.mkv
echo.
:: ffmpeg pruefen
where ffmpeg >nul 2>nul
if %errorlevel% neq 0 (
echo Fehler: ffmpeg ist nicht installiert oder nicht in PATH!
echo Bitte ffmpeg installieren: https://ffmpeg.org/download.html
pause
exit /b 1
)
:: Download mit ffmpeg
echo ================================
echo Starte Download... (Abbrechen mit STRG+C)
echo ================================
echo.
ffmpeg -loglevel error -stats -headers "Referer: https://gronkh.tv/" -i "%FINAL_STREAM_URL%" -c copy -bsf:a aac_adtstoasc "%VIDEO_TITLE%.mkv"
if %errorlevel% equ 0 (
echo.
echo ================================
echo Download erfolgreich!
echo Gespeichert als: %VIDEO_TITLE%.mkv
echo ================================
) else (
echo.
echo ================================
echo Fehler beim Download!
echo ================================
)
echo.
pause