[文件分析]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

文件目录详解

  1. Android文件缓存位置:\Android\data\tv.danmaku.bili\download\...
    文件目录:

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

    \download\s_357\249469\lua.flv480.bb2api.32\0.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等排序,表示了视频的顺序
  1. 缓存单文件

    \download\av号\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弹幕内容ID

  • 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颜色的十进制数为准

  • 1577530864Unix格式的时间戳。基准时间为 1970-1-1 08:00:00

  • 0 弹幕池

    • 0普通池
    • 1字幕池
    • 2特殊池 目前特殊池为高级弹幕专用
  • 43259dda 发送者的ID,用于“屏蔽此弹幕的发送者”功能

  • 26418185093775364 弹幕在弹幕数据库中rowID ,用于“历史弹幕”功能。

  • 前方高能 弹幕的内容

该解析待补全

posted @ 2020-01-19 00:15  二氢茉莉酮酸甲酯  阅读(9676)  评论(0编辑  收藏  举报