PowerShell路转粉之造轮子(01)------B站离线缓存简单合并blv&m4s

@ 起因是最早是为了缓存网课,从手机缓存拷贝出来后却没法直接看,所以就开始搜罗网上大佬提供的方法,身为一个同样写代码的人,显然就采用了最简单的方法:

1. ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a aac -strict experimental output.mp4
2. cmd下的方法:copy /b *.blv output.flv

用cmd来做这件事再合适不过了,就是没有标题,所以经过翻箱倒柜后,标题实际保存在 entry.json 文件内部,显然 cmd 去读取 json 是一个天然的麻烦事。那么接下来理所当然的可以用 python 来做。

不过我发现 PowerShell 可能是一个更好的选择,如果你要处理什么windows系统的操作却有受限于 cmd 的无力,那么 PS1 就天然的具有包括cmd的丰富功能和极高的系统权限(毕竟是亲儿子),先贴最后代码:GetBilibiliMedia.ps1

Get-ChildItem -Directory | ForEach-Object -Process{
    $FILE = $_.name
    $CONF = ConvertFrom-Json -InputObject (Get-Content -Path ".\$FILE\entry.json" -Encoding utf8)
    $PAGE = $CONF.page_data.download_subtitle
    
    $ab = 80,64,32,16	#清晰度的不同文件夹名称会变,有新的就后面添加
    foreach ($b in $ab){
        try{
            echo ".\$FILE\$b\video.m4s",".\$FILE\$b\audio.m4s","$PAGE.MP4"    
            ffmpeg -y -i ".\$FILE\$b\video.m4s" -i ".\$FILE\$b\audio.m4s" -c:v copy -c:a copy "$PAGE.MP4"
        }
        catch{}
    }
    $ap = "lua.flv720.bili2api.64"	#清晰度的不同文件夹名称会变
    foreach ($p in $ap){
        try{
            $PAGEF = '"'+ $PAGE + '.flv"'
            echo "copy /y /b .\$FILE\$p\*.blv $PAGEF"
            cmd /c "copy /y /b .\$FILE\$p\*.blv $PAGEF" 
        }
        catch{}
    }
}

接下来记录一下全部流程:

  1. 从手机导出离线缓存,位置在0\Android\data\tv.danmaku.bili\download\43019622
    这里还有一个Android的BUG就是usb的MTP模式下有许多机型是显示文件不全的,这个坑Google说不填,没办法只好用第三方了。
    在试了几种方案后我最后发现最快的方式是:电脑连接手机分享的无线,然后用 Dkuto 传输,其实是个开源软件,可以从52上下载https://www.52pojie.cn/thread-1086314-1-1.html
  2. 安装 ffmpeg,解压缩,添加一下 ffmpeg\bin的环境变量,
    下载地址:https://ffmpeg.zeranoe.com/builds/win64/static/
  3. \43019622 下新建脚本GetBilibiliMedia.ps1,右键直接运行,等待完成自动退出,自动由系统多线程。
    文件放置位置

PS:两处可以添加的文件夹名称就是这个16,m4s格式的添加到上面,blv格式的添加到下面
文件夹的名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值