批处理获取虎牙直播视频流

@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: IMPORTANT User-Agent Must be set to -user_agent "HYSDK(Windows, 20000308)" ::
::::::::::::::::::::::::::::::::::::::::::::::::::::^^^^^^^^^^^^^^^^^^^^^^^^::::

set roomid=%~1
if "%roomid%"=="" (
echo Usage: %~n0 [HUYA Room ID] or [HUYA Room URL]
echo   Example %~n0 123456
echo   Example %~n0 https://www.huya.com/123456
exit /b
)

set "roomid=%roomid: =%"
set "roomid=%roomid:https://www.huya.com/=%"

set inurl=https://www.huya.com/%roomid%

FOR /F "delims=" %%i IN ('curl -sk %inurl%^|grep -Eo """stream""(.*)" ^| grep -Eo """(.*)""" ^| sed "s/stream//g;s/://g;s/""//g;s/ //g"^|base64decode^|sed "s/""//g"') DO set "data=%%i"
::echo "%data%"|sed "s/,/\n/g">GetHuyaStreamURL.txt

::sStreamName
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo -m 1 "sStreamName(.*)" ^| sed "s/sStreamName//g;s/""//g;s/://g"') Do set sStreamName=%%i
:: echo %sStreamName%

::sFlvAntiCode
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo -m 1 "sFlvAntiCode(.*)" ^| sed "s/sFlvAntiCode//g;s/""//g;s/://g"') Do set "sFlvAntiCode=%%i"
set "sFlvAntiCode=%sFlvAntiCode:&=&%"
:: echo "%sFlvAntiCode%"

::iBitRate
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo -m 1 "iBitRate(.*)" ^| sed "s/iBitRate//g;s/""//g;s/://g;s/}//g;s/,//g;s/]//g"') Do set iBitRate=%%i
:: echo %iBitRate%

::bitRate
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo -m 1 "bitRate(.*)" ^| sed "s/bitRate//g;s/""//g;s/://g;s/}//g;s/,//g;s/]//g"') Do set bitRate=%%i
:: echo bitRate %bitRate%

::iWebDefaultBitRate
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo -m 1 "iWebDefaultBitRate(.*)" ^| sed "s/iWebDefaultBitRate//g;s/""//g;s/://g;s/}//g;s/,//g;s/]//g"') Do set iWebDefaultBitRate=%%i
:: echo WebDefaultBitRate %iWebDefaultBitRate%

echo BitRate %iBitRate% %bitRate% %iWebDefaultBitRate%
:: if "%iBitRate%"=="0" set iBitRate=%bitRate%
:: if "%bitRate%"=="%iWebDefaultBitRate%" set iBitRate=%iWebDefaultBitRate%

:: &ratio=%iBitRate%
echo [FlvUrl]
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo "sFlvUrl.http(.*)"^|grep -Eo -m 1 "http(.*)"^|sed "s/sFlvUrl//g;s/""//g;s/\\\\//g"') Do (
  echo "%%i/%sStreamName%.flv?%sFlvAntiCode%"
  set FlvUrl="%%i/%sStreamName%.flv?%sFlvAntiCode%"
  echo.
)

goto next
echo [HlsUrl]
FOR /F "delims=" %%i IN ('echo "%data%"^|sed "s/,/\n/g"^|grep -Eo "sHlsUrl.http(.*)"^|grep -Eo "http(.*)"^|sed "s/sHlsUrl//g;s/""//g;s/\\\\//g"') Do (
  echo "%%i/%sStreamName%.m3u8?%sFlvAntiCode%"
  echo.
)
:next

if not DEFINED FlvUrl got end
ffplay -hide_banner -user_agent "HYSDK(Windows, 20000308)" -i %FlvUrl%

:end
::pause

包含 Base64Decode.exe 下载地址: https://pan.baidu.com/s/1zPdJwwi3dlSpF-S0sGvDrw 提取码: 9dvf

posted @ 2020-08-11 15:14  1CM  阅读(25)  评论(0编辑  收藏  举报