bilibili缓存文件夹文件目录分析

Posted holittech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bilibili缓存文件夹文件目录分析相关的知识,希望对你有一定的参考价值。

一、文件类型

  1. 1080P视频内容:m4s项目

    (media-type)类型编码:2

    m4s项目是bilibili存储的一些清晰度较高或较大较长的视频文件

    你可以使用ffmpeg进行连接,也可以使用我开发的GUI版本(https://github.com/Holit/ffmpegLinker)

  2. 其他内容:blv项目

    (media-type)类型编码:1

    blv其实就是bilibili更改的FLV文件,你可以使用ffmpeg转换,也可以直接该拓展名为flv

    另外序列视频文件如0.blv,1.blv,2.blv等表示了序列的顺序,你可以按照0、1、2、3、4的顺序合并这些flv文件

    参见:https://www.littleqiu.net/archives/886

二、文件目录详解

android文件缓存位置:data v.danmaku.bilidownload...
  1.系列文件

    downloads_{id}{ep_id}清晰度信息文件列表[0~N].blv        #播放文件
                         index.json          #数据文件
                    entry.json                #入口文件(见下)
                    danmuku.xml              #弹幕文件

    例子:downloads_357249469lua.flv480.bb2api.32.blv    (猫和老鼠(旧版)第一部第一集,播放地址:https://www.bilibili.com/bangumi/play/ep249469)

  • {id}    s_剧集id:表示了剧集的id定位位置,即https://www.bilibili.com/bangumi/play/ss{id}
  • {ep_id}  分P号:表示了这个文件来自于剧集id的视频号,即https://www.bilibili.com/bangumi/play/ep{ep_id}
  • 清晰度信息:
    • 一般以lua.{type}.{api}开头
      • type:包含了视频类型和清晰度,如flv/flv480
      • api:暂不清楚
  • 文件列表
    • 一般是blv文件
    • 按照0.blv 1.blv等排序,表示了视频的顺序

  2.缓存单文件
      downloadav号1清晰度信息vedio.m4s        #m4s文件
                      audio.m4s      
                      index.json        #数据文件
                entry.json              #入口文件


三、文件结构
1.index.json(对应m4s)
原视频:https://www.bilibili.com/video/av80959848

{"video":        #视频内容消息
    [
        {
            "id":112,            
            "base_url":"https://upos-hz-mirrorks3u.acgvideo.com/upgcxcode/07/48/138564807/138564807-1-30112.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859IB_&uipk=5&nbs=1&deadline=1579364249&gen=playurl&os=ks3u&oi=3084983280&trid=dbd1c5a062ca4e59b6019c5a15522f4du&platform=android&upsig=5ec2887544562b37b28841b7e0bab9ba&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=68089222",    
        #原视频获取地址,注意:直接访问会导致
403 Forbidden错误 "backup_url": [ "https://upos-sz-mirrorks3.bilivideo.com/upgcxcode/07/48/138564807/138564807-1-30112.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859IB_&uipk=5&nbs=1&deadline=1579364249&gen=playurl&os=ks3bv&oi=3084983280&trid=dbd1c5a062ca4e59b6019c5a15522f4du&platform=android&upsig=d2c5d34dcf612c4a00d6863a4036bf10&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=68089222"
        #备存的视频地址 ], "bandwidth":5973795,              #带宽 "codecid":7, "size":145760613,              #大小,单位为字节 "md5":"58cbd8bc70f10f5ec708dfc06e37a83e"#MD5校验 } ], "audio":      #音频内容消息 [ { "id":30280, "base_url":"https://upos-sz-mirrorhw.bilivideo.com/upgcxcode/07/48/138564807/138564807_nb2-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859IB_&uipk=5&nbs=1&deadline=1579364249&gen=playurl&os=hwbv&oi=3084983280&trid=dbd1c5a062ca4e59b6019c5a15522f4du&platform=android&upsig=d787321f450cdbfa94d8e57da87c9412&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=68089222", "backup_url": [ "https://upos-sz-mirrorks3.bilivideo.com/upgcxcode/07/48/138564807/138564807_nb2-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859IB_&uipk=5&nbs=1&deadline=1579364249&gen=playurl&os=ks3bv&oi=3084983280&trid=dbd1c5a062ca4e59b6019c5a15522f4du&platform=android&upsig=bf39193d876386e91d0ac1e7828204ea&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=68089222" ], "bandwidth":319160, "codecid":0, "size":7790910, "md5":"902911e36938be7a4fedc7b705fade34" } ] }

2.entry.json
原视频:https://www.bilibili.com/video/av80959848

{
    "media_type":2,                #媒体类型"has_dash_audio":true,
    "is_completed":true,          #下载结束
    "total_bytes":153551523,           #总大小
    "downloaded_bytes":153551523,      #下载大小
    "title":"【韩小沐×妈咪叔×中二所】某不科学の超抖肩舞【COINCIDANCE】【正负电子の奇妙冒险】",#标题
    "type_tag":"112",
    "cover":"http://i1.hdslb.com/bfs/archive/381050f060f9a7c2c57e273ecf8e3758148cbc27.jpg","prefered_video_quality":112,#封面
    "guessed_total_bytes":0,
    "total_time_milli":195325,         #视频长度,以ms(毫秒)为单位
    "danmaku_count":909,              #弹幕条数
    "time_update_stamp":1579357099610,    #更新时间戳
    "time_create_stamp":1579357043896,    #创建时间戳
    "avid":80959848,                    #av号
    "spid":0,
    "seasion_id":0,
    "page_data":                    #页数据(分P)
        {
        "cid":138564807,
        "page":1,
        "from":"vupload",
        "part":"【韩小沐×妈咪叔×中二所】某不科学の超抖肩舞【COINCIDANCE】【正负电子の奇妙冒险】",
        "vid":"",
        "has_alias":false,
        "tid":124,
        "width":1920,                #宽度
        "height":1080,                #高度
        "rotate":0,                    #旋转
        "download_title":"视频已缓存完成",
        "download_subtitle":"【韩小沐×妈咪叔×中二所】某不科学の超抖肩舞【COINCIDANCE】【正负电子の奇妙冒险】 
                            【韩小沐×妈咪叔×中二所】某不科学の超抖肩舞【COINCIDANCE】【正负电子の奇妙冒险】"
        }
}

3.danmuku.xml
原视频:https://www.bilibili.com/video/av80959848

<?xml version="1.0" encoding="UTF-8"?>
<i>
    <chatserver>chat.bilibili.com</chatserver>
    <chatid>138564807</chatid>
    <mission>0</mission>
    <maxlimit>1000</maxlimit>
    <state>0</state>
    <real_name>0</real_name>
    <source>k-v</source>
    <d p="15.90500,1,25,16777215,1577530864,0,43259dda,26418185093775364">前方高能</d>
</i>

格式解析:

  • 标准头,其中包含了xml的基础信息
  • <i></i> 代表了第一列表
<?xml version="1.0" encoding="UTF-8"?>
<i></i>
    <chatserver>chat.bilibili.com</chatserver>
    <chatid>138564807</chatid>
    <mission>0</mission>
    <maxlimit>1000</maxlimit>
    <state>0</state>
    <real_name>0</real_name>
    <source>k-v</source>
    <d p="15.90500,1,25,16777215,1577530864,0,43259dda,26418185093775364">前方高能</d>
  • chatsever:弹幕库服务器地址
  • chatid:弹幕内容连接的
  • maxlimit:弹幕最大数量,默认为1000
  • <d></d>:

  以<d p="15.90500,1,25,16777215,1577530864,0,43259dda,26418185093775364">前方高能</d为例

    •   15.90500          弹幕出现的时间 单位为秒,精确度为小数点后5位,即0.01ms
    •   1                 弹幕的模式
      • 1..3  滚动弹幕
      • 4      底端弹幕
      • 5      顶端弹幕
      • 6      .逆向弹幕
      • 7      精准定位
      • 8      高级弹幕
    •   25                字号,  
      • 12  非常小,
      • 16  特小,
      • 18  小,
      • 25  中,
      • 36  大,
      • 45  很大,
      • 64  特别大
    •   16777215    字体的颜色 以html颜色的十位数为准
    •   1577530864   Unix格式的时间戳。基准时间为 1970-1-1 08:00:00
    •   0           弹幕池   
      • 0  普通池
      • 1  字幕池
      • 2  特殊池 【目前特殊池为高级弹幕专用】
    •     43259dda      发送者的ID,用于“屏蔽此弹幕的发送者”功能
    •   26418185093775364   弹幕在弹幕数据库中rowID ,用于“历史弹幕”功能。
    •     前方高能    弹幕的内容

四、该解析待补全

以上是关于bilibili缓存文件夹文件目录分析的主要内容,如果未能解决你的问题,请参考以下文章

bilibili uwp 在哪个文件夹

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

vs2013更改下载缓存目录

phalcon: 缓存片段,文件缓存,memcache缓存

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段