@echo off
chcp 65001>NUL
rem setlocal && cd /D "%~dp0"
REM AYTO TO SCRIPT ΚΑΤΕΒΑΖΕΙ M3U8 PLAYLIST ΡΟΗ ΒΙΝΤΕΟ ΑΠΟ ΤΟ ΔΙΑΔΙΚΤΥΟ ΜΕ ΤΟ FFMPEG 
REM ΤΑ SCRIPT ΕΙΝΑΙ ΜΕΡΟΣ ΤΟΥ gamelink.gr-ffmpeg-scripts.zip ΑΠΟ ΤΟ EL.GAMELINK.GR
REM Ακολουθεί το Url για να μάθετε περισσότερα ή να το κατεβάσετε. Καλά video editing!
REM 
REM https://el.gamelink.gr/blog/Pws-Mporeite-Na-Mikrynete-ta-Video-gia-tis-MkDocs-Selides-sas-me-to-ffmpeg/ 
REM 

:FF

if not ["%~x1"]==[".m3u8"] (
	echo.
	echo Το όρισμα που δωσατε δεν είναι m3u8 Playlist.
	echo.
	goto End
) else (
    rem goto End

	echo.
	echo Αρχίζω να κατεβάζω το "%~1" ..
	echo.
	set "dttm=%DATE:~-10,-8%-%DATE:~-7,-5%-%DATE:~-4%__%TIME:~-11,-9%-%TIME:~-8,-6%"
	echo.
	SetLocal EnableExtensions EnableDelayedExpansion
	echo  Ξεκίνησα και !dttm!-m3u8.mp4 θα λέγεται το αρχείο ...
	echo.
	echo   Αν είναι endless m3u8 ροή π.χ. κάποιο gaming stream για να το κόψετε πατήστε 
	echo  ctrl + c και πέστε GameLink 1, 2, 3, 4, 5, 6, 7 , 8 , 9 , 10  #joke mode off
	echo Ο χρόνος κλεισίματος αφου πατήσετε ctrl + c κυμαίνεται, δεν φαίνεται στην οθόνη
	echo οτι κλείνει και ξεκινάει από 1 μέχρι 30 δεύτερα ανάλογα τα bitrates, το σημείο κλπ
	echo Το FFmpeg θέλει χρόνο για να διακόψει το stream αλλά και να κλείσει το αρχείο mp4
	echo.
	echo     #*#*#*#    Μην πατήσετε 2η φορά ctrl + c αμέσως. Περιμένετε.    #*#*#*#
	echo.
	echo   Αλλιώς όταν τελειώσει το stream θα κλείσει αυτόματα μόνο του όμορφα και ωραία.
	echo.
	echo.

    rem καποιοι προτεινουν το -crf 50 . πραγματικά δεν βρηκα τον λογο γιατι. οσα m3u8 ειδα δεν χρειαστηκε!
	call ffmpeg -v quiet -stats -protocol_whitelist file,https,tcp,tls -i "%~1" -bsf:a aac_adtstoasc -vcodec copy -c copy "!dttm!-m3u8.mp4"

	if %ERRORLEVEL% NEQ 0 (
			call vidCodeError.bat %errorlevel%
			shift
		) else (
			call vidCodeError.bat 0
			shift		
	)
    endlocal
	if "%~1" == "" goto End

	goto FF
)

rem endlocal 

:End 
call vid0ends.bat
exit /b 0