@echo off

rem ***** 設定箇所 *****

rem ↓ ffmpeg.exe のパスを指定
set ffmpeg_path=C:\Applications\ffmpeg\bin\ffmpeg.exe

rem ↓ ffmpeg で MP4 に無劣化変換する際に元の TS ファイルを削除するか
rem (0 … 削除しない、1 … 削除する)
set TSdelete=1


rem ***** 内部処理 *****

echo.
echo   ========================================================
echo                        Abema-DL  v2.1
:start
echo   ========================================================

rem // 変数を初期化しておく
set URL=
set quality=
set file=

echo.
echo     保存する動画または生放送の URL を入力してください：
echo     例：動画または生放送の URL：https://abema.tv/video/episode/25-43zr98hyeb55_s0_p1
:URL
echo.
set /P URL=":   動画または生放送の URL："
if "%URL%" == "" (
  goto :URL
)

echo.
echo     保存する動画の画質を best・1080p・720p・480p・360p・240p・180p から選び、入力してください：
echo     例：保存する動画の画質：best （通常は best を推奨します）
:quality
echo.
set /P quality=":   保存する動画の画質："
if "%quality%" == "" (
  goto :quality
)

echo.
echo     動画の保存先を入力してください：
echo     保存先のフォルダがない場合、自動で作成します。
echo     例：動画の保存先：D:\Anime\NEW_GAME\NEW_GAME_1-1.mp4
:file
echo.
set /P file=":   動画の保存先："
if "%file%" == "" (
  goto :file
)

call :filename "%file%"
exit /b 
:filename
set out=%~n1
set folder=%~dp1

echo.

rem echo     "%folder%%out%.ts"
echo     ダウンロードを開始します。
echo     生放送の場合、録画を止めたい時間になったら Ctrl + C を押して録画を中断させてください。
echo     その後、バッチ処理を終了しますか？と表示されたら n を入力し、続行してください。
echo.
set /P pause=":   続行するには何かキーを押してください："
echo.
echo   ========================================================
echo.

rem // フォルダが存在しない場合に作成する
If not exist "%folder%" mkdir "%folder%"

rem // Streamlink を実行
Streamlink "%URL%" "%quality%" -o "%folder%%out%.ts"

rem // ダウンロードに失敗
if %errorlevel% neq 0 if %errorlevel% neq 130 (
  echo.
  echo   ========================================================
  echo.
  echo     ダウンロードに失敗しました… エラーコード："%errorlevel%"
  echo.
  echo     URLが正しいかどうか、正しく入力されているかどうか、確認してください。
)

rem // エラーコードが 0 か 130 なら ffmpeg で無劣化変換する
if %errorlevel% equ 0 (
  "%ffmpeg_path%" -i "%folder%%out%.ts" -c copy "%folder%%out%.mp4"
  if %TSdelete% equ 1 (
    del "%folder%%out%.ts"
  )
)
if %errorlevel% equ 130 (
  "%ffmpeg_path%" -i "%folder%%out%.ts" -c copy "%folder%%out%.mp4"
  if %TSdelete% equ 1 (
    del "%folder%%out%.ts"
  )
)

echo.
echo   ========================================================
echo.
echo     ダウンロードを終了しました。
echo.
SET /P answer=":   他の動画や生放送もダウンロードしますか？(y/n)："
echo.

rem // y か yes なら :start ラベルまでもどる
if /i {%answer%} == {y} (
  goto :start
)
if /i {%answer%} == {yes} (
  goto :start
)

echo.
set /P pause=":   終了するには何かキーを押してください："
