整理b站缓存到mp4格式,推荐使用虚拟机或者安卓手机下载缓存。

转换后,播放更自由一些,希望对大家有帮助

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

默认缓存位置: Android - data - ta.danmaku.bili - download

使用方法:脚本放到和缓存同目录,执行后输入文件名称,即可瞬间转换。

仅测试过mac,win下应该是通用的,没有测试。

将bilibili缓存的视频缓存批量转换成mp4格式的python代码 随笔 第1张

转换前——转换后:

将bilibili缓存的视频缓存批量转换成mp4格式的python代码 随笔 第2张

 

import os, shutil #导入必须的更举报
work_dir = os.getcwd() #获取工作目录


def main():
    old_dir = input("输入要处理的目录名称") #提示输入文件名 类似 :34387218
    new_dir = old_dir+"_MP4" # 输入存放的文件名
    if(os.path.exists(new_dir)): # 判断是否存在,若存在删除后重建
        print(new_dir+"已经存在,已经重制")
        shutil.rmtree(new_dir) 
        os.mkdir(new_dir)
    else:
        print(new_dir+"创建成功")
        os.mkdir(new_dir)

    for i in os.listdir(os.path.join(work_dir, old_dir)): # 循环处理
        if(i == ".DS_Store"): #跳过苹果默认创建的文件
            continue
        for o in os.listdir(os.path.join(work_dir, old_dir, i)): # 开始循环内部
            if(o == ".DS_Store"): #跳过苹果默认创建的文件
                continue
            if(os.path.isdir(os.path.join(work_dir, old_dir, i, o))): # 进入二级循环
                for p in os.listdir(os.path.join(work_dir, old_dir, i, o)): # 开始操作循环
                    if(o == ".DS_Store"): #跳过苹果默认创建的文件
                        continue
                    file_name = os.path.basename(p)  #获取文件名称
                    if file_name.endswith(".blv"):  # 判断名称格式是否正确
                        f_file_name =file_name.split('.') # 拆分文件名
                        index = int(f_file_name[0])+1
                        old_file = os.path.join(work_dir, old_dir, i, o, p) # 获取旧文件
                        shutil.move(old_file,new_dir) # 移动文件
                        new_file = str(i)+"_"+str(index)+".mp4" # 定制新的文件名
                        os.rename(os.path.join(work_dir, new_dir,file_name), os.path.join(work_dir, new_dir, new_file)) # 执行重命名
                    
                        
if __name__ == "__main__":
    main()

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄