吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2949|回复: 37
收起左侧

[Python 原创] 安卓BiliBili新版缓存文件转mp4

[复制链接]
Cristy 发表于 2023-9-13 18:34
本帖最后由 苏紫方璇 于 2023-9-17 20:49 编辑

20230915  更新

写在前面,用PC下载视频的方法很多,我这个只是因为手机缓存了两百多集的课程,临时用了一下。如果电脑需要建议还是直接用网上的插件、下载器等等下载

1. 此程序只测试了一个视频有多集的缓存视频。2. 用的是python+ffmpeg
3. 本次用的视频缓存文件目录结构如下
    +---entry.json
    +-----32
    |    +-------audio.m4s
    |    +-------video.m4s
   已经发现存放音视频的 文件夹名称会变,我用的时候是32  截图时用的新视频这里变成了 80  所以代码也需要跟着改变一下这个数字
   entry.json 文件中  - page_data  -   part  这一级里存放了视频的名称  
image.png

去哔哩哔哩客户端 检测缓存  可以拿到id
安卓B站缓存目录  Android/data/com.bilibli.app.in/download/找到的id

安卓端操作

1. 缓存你要的视频

截图1

截图1
   

截图2

截图2


2. 确定视频id(如果你只缓存了一个视频、或者一个视频下面的多集 可以跳过,因为只会有一个文件夹)

进入我的 —— 离线缓存 — 右上角设置(下图)
6afa735a472b34c6c69bff94b5a7a0f6.jpg

点击 离线诊断
80a30b0f681d14a96e2135fca9480369.jpg

然后随便点个视频  等待结果。 这里可以看到视频id 及目录结构(音视频存储的文件夹目录为80
6890c736aa17113688e158e15dfd1e52.jpg   



2. 在手机文件夹中找到这个视频的缓存文件
XXXX手机/Android/data/com.bilibili.app.in/download/你的视频id
7eb75eb77af450e325c3ba8564254298.jpg        02cc69eccf777aae99dd28a6f0fce635.jpg

把这整个id文件夹都拿到电脑上


PC端操作

1. 下载FFmpeg  根据你的系统下载
https://github.com/BtbN/FFmpeg-Builds/releases
Windows可以选择 [color=var(--fgColor-accent, var(--color-accent-fg))]ffmpeg-master-latest-win64-gpl.zip






2. python安装ffmpeg-python库
pip install ffmpeg-python

3. 改下代码中的下面几个位置
folder_path = '视频id目录路径'
output_folder = '导出路径'
sub_folder = os.path.join(root, '音视频存储的文件夹名称')

4. 运行代码等结果

______________________代码不变__________________________

下面是代码
[Python] 纯文本查看 复制代码
import os
import json
import ffmpeg
def merge_audio_video(folder_path, output_folder):
    for root, dirs, files in os.walk(folder_path):
        if 'entry.json' in files:
            entry_file = os.path.join(root, 'entry.json')
            with open(entry_file, 'r', encoding='utf8') as f:
                entry_data = json.load(f)
                part_name = entry_data.get('page_data').get('part')
            if part_name:
                sub_folder = os.path.join(root, '32')
               # 每个视频的这个文件夹不一样   需要修改数字
                print(sub_folder)
                audio_file = os.path.join(sub_folder, 'audio.m4s')
                video_file = os.path.join(sub_folder, 'video.m4s')
                output_file = os.path.join(output_folder, f'{part_name}.mp4')
                merge_files(audio_file, video_file, output_file)
                print(f'Merged video: {output_file}')
def merge_files(audio_file, video_file, output_file):
    audio_stream = ffmpeg.input(audio_file)
    video_stream = ffmpeg.input(video_file)
    ffmpeg.output(audio_stream, video_stream, output_file, vcodec='copy', acodec='copy').run()
# 指定文件夹路径和合并后的文件存放路径
folder_path = '视频id目录路径'
output_folder = '导出路径'
merge_audio_video(folder_path, output_folder)




免费评分

参与人数 7吾爱币 +10 热心值 +7 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xiaobinwang + 1 + 1 热心回复!
Coldandcolder + 1 + 1 谢谢@Thanks!
cwxtlsg + 1 + 1 谢谢@Thanks!
开心熊猫741 + 1 + 1 热心回复!
liuxuming3303 + 1 + 1 谢谢@Thanks!
hrh123 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

icie 发表于 2023-9-13 20:02
命令找了下
-i /storage/emulated/0/bili/video.m4s -i /storage/emulated/0/bili/audio.m4s -vcodec copy -acodec copy /storage/emulated/0/bili/video1.mp4

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Cristy + 1 + 1 谢谢@Thanks!

查看全部评分

hrpzcf 发表于 2023-9-13 18:55
yzw001506 发表于 2023-9-13 19:32
无闻无问 发表于 2023-9-13 19:34
b站视频好像要修复文件头,不用修复吗?
无闻无问 发表于 2023-9-13 19:36
想起了,手机上不用,pc端才需要……
文西思密达 发表于 2023-9-13 19:48

可以可以,我建一个脚本试试。
bling 发表于 2023-9-13 19:58
感谢分享,正好需要
icie 发表于 2023-9-13 20:01
timbre  有安卓端的,一个命令搞定
w220913 发表于 2023-9-13 20:04
这个和bilibili缓存音视频合并软件(含弹幕转码) v1.6这个有什么区别吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表