用B站客戶端下載視頻,并提取音頻

客戶端平臺:Android。操作平臺:Windows。以AV22222222為例。

一、下載視頻
①用客戶端打開視頻AV22222222,點(diǎn)擊緩存,選擇清晰度和內(nèi)容,開始下載。如圖1所示。

②下載的內(nèi)容位于sdcard的/Android/data/tv.danmaku.bili下,是一個(gè)文件夾,名字為av號,將其拷貝至PC。此文件夾結(jié)構(gòu):子目錄2、3和4分別為視頻的P2、P3和P4,每個(gè)子目錄的下級目錄lua.flv.bili2api.80中的文件0.blv即是視頻文件 (視頻流H.264,音頻流AAC,在PC和Android用播放器都可直接播放)。如圖2所示。

二、重命名
①由于下載的3個(gè)視頻文件名都是0.blv,現(xiàn)將其分別重命名為2.blv、3.blv、4.blv,即目錄22222222的下一級目錄名。
方法:將以下內(nèi)容復(fù)制到文本文件,并保存為1.bat執(zhí)行。(修正自https://ask.csdn.net/questions/664401)。執(zhí)行過程如圖3所示。
——復(fù)制下述內(nèi)容——
@echo off
:start
setlocal enabledelayedexpansion
title 文件重命名
set isrun=n
echo 請把包含要處理的文件的[文件夾]拖動到此處,回車確定
::set /p讓用戶自己輸入變量的值
set dir=n&set /p dir=
if "%dir:"=%"=="n" cls&goto start
cls&echo ====================================
:run
for /f "delims=" %%i in ('dir /a:d /b %dir%\') do (
rem 文件路徑
set path=%%i
for /f "delims=" %%j in ('dir /s /b /a:-d %dir%\"!path!"\*.blv') do (
set full=%%~dpnxj
set exten=%%~xj
rem set path=!path:~0,-1!
if /i "!isrun!"=="n" (
echo ren "!full!" "!path!!exten!"
) else (
ren "!full!" "!path!!exten!"
echo 更名為:"!path!!exten!"
)
)
)
echo ====================================
if /i "%isrun%"=="n" (
echo 即將執(zhí)行以上操作,是否執(zhí)行[Y/N]
set isrun=n&set /p isrun=
if /i "!isrun!"=="y" ( goto run ) else ( cls&goto start )
) else (
echo.&echo 更名完成!
echo 任意鍵返回&pause>nul&cls&goto start
)
——復(fù)制上述內(nèi)容——

執(zhí)行完成后3個(gè)目錄下的0.blv分別被重命名為2.blv、3.blv和4.blv。
②如需要進(jìn)一步將其重命名為視頻分P的名字,可以直接在網(wǎng)頁端復(fù)制名字,得到:"1、BGM合集2、title3、OP4、ED"
用word將數(shù)字頓號替換為手動換行符可得到:
"BGM合集
Title
OP4
ED"
之后可以利用excel進(jìn)行批量重命名,如圖4所示。

三、提取音頻
下載ffmpeg.exe (https://ffmpeg.zeranoe.com/builds/),放入視頻所在文件夾(或設(shè)置環(huán)境變量),將以下內(nèi)容復(fù)制到文本文件,并保存為2.bat執(zhí)行。如圖5所示。
——復(fù)制下述內(nèi)容——
for %%i in (*.blv) do ffmpeg -i "%%i" -vn -c:a copy "%%~ni.aac"
——復(fù)制上述內(nèi)容——

執(zhí)行后即可得到aac文件,由于視頻投稿現(xiàn)已支持320k AAC,故音頻可以達(dá)到22000HZ。
-完-