• 录制抖音直播视频批处理


    @echo off
    chcp 936 1>nul 2>nul
    set url=%~1
    if NOT DEFINED url (
      echo input URL
      exit /b
    )
    
    :start
    set tmp=%random%_%random%_%random%
    set tmpfn=%tmp%.txt
    wget %url% -O %tmp%.html 1>nul 2>nul
    iconv -c -f utf-8 -t gb2312 %tmp%.html|sed s/,/,
    /g>%tmpfn%
    del /Q %tmp%.html
    
    set roomid=0
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""room_id_str":"[0-9]{19}""^|grep -Eoi "[0-9]{19}"') DO (
      set roomid=%%i
    )
    
    set userid=0
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""display_id":(.*?),"') DO (
      set userid=%%i
      goto next
    )
    
    :next
    set userid=%userid:display_id=%
    set userid=%userid:enable_ichat_img=%
    set userid=%userid:"=%
    set userid=%userid::=%
    set userid=%userid:,=%
    set userid=%userid: =%
    echo userID = %userid%
    
    set city=0
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""city":(.{3,20}),"') DO (
      set city=%%i
      goto next2
    )
    :next2
    
    set city=%city:city=%
    set city=%city:comment_restrict=%
    set city=%city:"=%
    set city=%city::=%
    set city=%city:,=%
    set city=%city: =%
    echo city = %city%
    
    set nickname=0
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""nickname":(.*?),"') DO (
      set nickname=%%i
      goto next3
    )
    :next3
    
    set nickname=%nickname:nickname=%
    set nickname=%nickname:own_room=%
    set nickname=%nickname:"=%
    set nickname=%nickname::=%
    set nickname=%nickname:,=%
    set nickname=%nickname: =%
    echo nickname = %nickname%
    
    del /Q %tmpfn%
    
    if "%roomid%"=="0" (
      echo can't find room id
      goto end
    )
    echo roomID = %roomid%
    
    set tmpfn=%random%_%random%_%random%.txt
    set getinfourl="https://webcast-hl.amemv.com/webcast/room/reflow/info/?room_id=%roomid%&live_id=1"
    wget %getinfourl% -O %tmpfn% 1>nul 2>nul
    
    set rtmp=0
    set hls=0
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""rtmp_pull_url":(.*?).flv"^|grep -Eoi "http://(.*?).flv" ') DO (
      set rtmp=%%i
    )
    FOR /F %%i IN ('cat %tmpfn%^|grep -Eoi ""hls_pull_url":(.*?).m3u8...hls"^|grep -Eoi "http://(.*?).m3u8" ') DO (
      set hls=%%i
    )
    
    del /Q %tmpfn%
    
    if "%rtmp%"=="0" (
      echo can't find rtmp url
      goto end
    )
    
    if "%hls%"=="0" (
      echo can't find hls url
      goto end
    )
    
    echo %rtmp%
    echo %hls%
    
    wget "%hls%" --connect-timeout=3 --timeout=3 --waitretry=3 --tries=6 -O nul 1>nul 2>nul
    if %ERRORLEVEL% NEQ 0 (
      echo Not find m3u8.
      title DONE %nickname%
      goto stop
    )
    
    set t=%time::=.%
    set t=%t: =0%
    set t=%t:.=-%
    set t=%t:~0,8%
    set t=%t:-=%
    set d=%date:-=%
    
    set savefn=%userid%_%nickname%_%city%_%roomid%
    call :replaceAsterisks %savefn%
    set savefn=%replaceAsterisks%
    set savefn=%savefn:?=%
    set savefn=%savefn: =%
    
    set logfn="_%savefn%_play.cmd"
    set logfn2="_%savefn%_recordRTMP.cmd"
    set savefn=%savefn%_%d%-%t%
    md "%savefn%" 1>nul 2>nul
    cd "%savefn%"
    set savefnrtmp="_%savefn%.flv"
    set savefn="_%savefn%.m3u8"
    
    echo :: inURL    = %url%>%logfn%
    echo :: userID   = %userid%>>%logfn%
    echo :: city     = %city%>>%logfn%
    echo :: roomID   = %roomid%>>%logfn%
    echo :: nickname = %nickname%>>%logfn%
    echo ffplay %rtmp% -vf scale=-1:1024>>%logfn%
    echo.>>%logfn%
    echo :: %hls%>>%logfn%
    
    echo ffmpeg -hide_banner -wt "R %nickname%" -v info -i "%rtmp%" -c copy %savefnrtmp%>>%logfn2%
    
    echo %savefn%
    title R %nickname%
    
    :: ffmpeg -hide_banner -wt "R %nickname%" -v info -i "%rtmp%" -c copy %savefn%
    hlslivedl -i "%hls%" -o %savefn%
    
    title DONE %nickname%
    cd ..
    
    :stop
    choice.exe /c qc /n /t 32 /d c /m "Wait for 32 seconds Press Q to stop"
    if %errorlevel%==1 goto end
    
    
    goto start
    exit /b
    
    :end
    exit /b
    
    :replaceAsterisks
    for /f "tokens=1-3,* delims=*" %%a in ("%~1") do (set replaceAsterisks=%%a%%b%%c%%d)
    exit /b
  • 相关阅读:
    挑战编程 uva100 3n+1
    《算法问题实战策略》 BOGGLE
    图论 最短路专辑
    acwing 76. 和为S的连续正数序列
    leetcode 19 删除链表的倒数第N个节点
    水文一篇 汇报下最*的学**况
    acwing 81. 扑克牌的顺子
    Solr基础理论与维护管理快速上手(含查询参数说明)
    Solr基础理论与维护管理快速上手(含查询参数说明)
    利用SolrJ操作solr API完成index操作
  • 原文地址:https://www.cnblogs.com/nlsoft/p/13303398.html
Copyright © 2020-2023  润新知