# APP主题 ## 获取主题及加载动画 > https://app.bilibili.com/x/resource/show/skin *请求方式:GET* 鉴权方式:appkey 认证方式:仅可APP **url参数:** | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ---- | ------------ | ----------- | ------------- | | access_key | str | APP登录Token | APP方式必要 | | | appkey | str | APP密钥 | APP方式必要 | | | build | num | 版本 | APP方式必要 | 可为`6082000` | | ts | num | 当前时间戳 | APP方式必要 | 可为`0` | | sign | str | APP签名 | APP方式必要 | | **json回复:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ---------------------------------------------------- | | code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | | message | str | 错误信息 | 默认为0 | | data | obj | 信息本体 | | `data`对象: | 字段 | 类型 | 内容 | 备注 | | ----------- | ----- | ------------ | ------------ | | user_equip | obj | 个性主题信息 | 有效时有此项 | | skin_colors | array | 主题颜色列表 | | | load_equip | obj | 加载动画信息 | 有效时有此项 | `data`中的`user_equip`对象: | 字段 | 类型 | 内容 | 备注 | | ----------- | ---- | --------------- | ------ | | id | num | 装扮id | | | name | str | 装扮名称 | | | preview | str | 装扮封面url | | | ver | num | 装扮版本 | 时间戳 | | package_url | str | 装扮包url | | | package_md5 | str | 装扮包md5校验值 | | | data | obj | 装扮配置 | | `user_equip`中的`data`对象: | 字段 | 类型 | 内容 | 必要性 | 备注 | | ------------------- | ---- | ----------------- | -------- | --------------------------- | | color_mode | str | 颜色模式 | 必要 | light:亮色
dark:暗色 | | color | str | 前景色? | 必要 | 颜色
1. 使用十六进制颜色值
2. 颜色值的大小写不限,下同
3. 例:#ffffff | | color_second_page | str | 背景色? | 必要 | 颜色 | | tail_color | str | 底边栏颜色 | 必要 | 颜色 | | tail_color_selected | str | 底边栏颜色(选择时) | 必要 | 颜色 | | tail_icon_ani | bool | 有无底边栏动画 | 必要 | false:无
true:有 | | tail_icon_ani_mode | str | 底边栏动画循环播放 | 必要 | once:播放一次 | | head_myself_mp4_play| str | 我的页面头图(视频)循环 | 必要 | once:播放一次
loop:循环播放 | | tail_icon_mode | str | 底栏改图标或改颜色 | 必要 | img:图标
color:颜色 | | side_bg_color | str | 侧边栏颜色 | 非必要 | 颜色
5.x 版本客户端的侧边栏 | | side_line_color | str | 侧边栏线条颜色? | 非必要 | 颜色
5.x 版本客户端的侧边栏 | | tail_icon_color | str | 底栏图标颜色 | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | | tail_icon_color_dark| str | 底栏图标颜色(夜间模式) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | | tail_icon_color_selected| str | 底栏图标颜色(选择时) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | | tail_icon_color_selected_dark| str | 底栏图标颜色(选择时)(夜间模式) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | `skin_colors`数组: | 项 | 类型 | 内容 | 备注 | | ---- | ---- | ------------- | ---- | | 0 | obj | 主题颜色1 | | | n | obj | 主题颜色(n+1) | | | …… | obj | …… | …… | `skin_colors`数组中的对象: | 字段 | 类型 | 内容 | 备注 | | ---------- | ---- | ------------ | ------------------------------- | | id | num | 颜色id | | | name | str | 颜色名称 | | | is_free | bool | 是否免费 | false:收费
true:免费 | | price | num | 价格 | 单位为硬币 | | is_bought | bool | 是否已购买 | false:未购买
true:已购买 | | status | num | 状态 | 1:自动续费
4:已退订 | | buy_time | num | 购买时间 | 毫秒时间戳 | | due_time | num | 到期时间 | 毫秒时间戳 | | color_name | str | 颜色类型名称 | | | is_overdue | bool | 是否已到期 | false:未到期
true:已到期 | `data`中的`load_equip`对象: | 字段 | 类型 | 内容 | 备注 | | ----------- | ---- | --------------- | ------ | | id | num | 装扮id | | | name | str | 装扮名称 | | | ver | num | 装扮版本 | 时间戳 | | loading_url | str | 加载动画图标url | | **示例:** ```shell curl -G 'https://app.bilibili.com/x/resource/show/skin' \ --data-urlencode 'access_key=xxx' \ --data-urlencode 'appkey=1d8b6e7d45233436' \ --data-urlencode 'build=6082000' \ --data-urlencode 'ts=0' \ --data-urlencode 'sign=ea212fea5b00a6278ea6d9938b4c500e' ```
查看响应示例: ```json { "code": 0, "message": "0", "ttl": 1, "data": { "user_equip": { "id": 2529, "name": "初音未来-日版", "preview": "http://i0.hdslb.com/bfs/garb/item/2fa16380b31b3cee6c889d645f2699de8e9d9faf.jpg", "ver": 1598600025, "package_url": "http://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip", "package_md5": "7b6d20d998ad543c6a275948a6a1a5fe", "data": { "color_mode": "light", "color": "#212121", "color_second_page": "#fff2d2", "side_bg_color": "#ffe7ae", "tail_color": "#996c00", "tail_color_selected": "#0d6872", "tail_icon_ani": true, "tail_icon_ani_mode": "once" } }, "skin_colors": [ { "id": 2, "name": "少女粉", "is_free": true, "color_name": "pink" }, { "id": 1, "name": "夜间模式", "is_free": true, "color_name": "black" }, { "id": 3, "name": "姨妈红", "price": 5, "color_name": "red" }, { "id": 4, "name": "咸蛋黄", "price": 5, "color_name": "yellow" }, { "id": 5, "name": "早苗绿", "price": 5, "status": 4, "buy_time": 1599219782000, "due_time": 1601811782000, "color_name": "green" }, { "id": 6, "name": "胖次蓝", "price": 5, "color_name": "blue" }, { "id": 7, "name": "基佬紫", "price": 5, "color_name": "purple" } ], "load_equip": { "id": 2531, "name": "初音未来13周年", "ver": 1598602035, "loading_url": "http://i0.hdslb.com/bfs/garb/item/9b12e8b5cc16a4c2e71e91c43796f09d5e132847.webp" } } } ```
## 主题包结构 主题包为app端付费主题(套装)的整合包,以zip格式通过url分发 包内的图片文件为app对应的资源替换,替换时可随意修改后缀 jpg 或 png 必要性:head_bg 及 head_tab_bg 为必要,其他非必要 | 文件名 | 说明 | | --------------------------------- | -------------------------- | | head_bg.jpg | 首页顶部栏背景 | | head_tab_bg.jpg | 顶部栏背景 | | head_myself_bg.jpg | 【我的】页面头图(小) | | head_myself_squared_bg.jpg | 【我的】页面头图(大) | | head_myself_mp4_bg.mp4 | 【我的】页面头图(视频)
格式参考:后缀必须 mp4、分辨率 1242 x 1074、60 FPS、去掉音轨(音频) | | side_bg.jpg | 侧边栏背景 | | side_bg_bottom.jpg | 侧边栏底部背景 | | tail_bg.png | 底部栏背景 | | tail_icon_main.png | 【首页】按钮 | | tail_icon_channel.png | 【频道】按钮 | | tail_icon_dynamic.png | 【动态】按钮 | | tail_icon_shop.png | 【会员购】按钮 | | tail_icon_myself.png | 【我的】按钮 | | tail_icon_pub_btn_bg.png | 【发布】按钮 | | tail_icon_selected_main.png | 【首页】按钮(选中状态) | | tail_icon_selected_channel.png | 【频道】按钮(选中状态) | | tail_icon_selected_dynamic.png | 【动态】按钮(选中状态) | | tail_icon_selected_shop.png | 【会员购】按钮(选中状态) | | tail_icon_selected_myself.png | 【我的】按钮(选中状态) | | tail_icon_selected_pub_btn_bg.png | 【发布】按钮(选中状态) | 以`id=2529(初音未来-日版)`的资源为例 ```shell wget https://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip unzip -l 9c393edea0c7b7b59685a20cd655363ef573a325.zip ``` 返回为 ``` Archive: 9c393edea0c7b7b59685a20cd655363ef573a325.zip Length Date Time Name --------- ---------- ----- ---- 22995 1980-00-00 00:00 tail_icon_selected_myself.png 18444 1980-00-00 00:00 head_bg.jpg 3061 1980-00-00 00:00 head_tab_bg.jpg 188898 1980-00-00 00:00 side_bg.jpg 2842 1980-00-00 00:00 side_bg_bottom.jpg 203134 1980-00-00 00:00 tail_bg.png 27539 1980-00-00 00:00 tail_icon_main.png 25632 1980-00-00 00:00 tail_icon_selected_main.png 27415 1980-00-00 00:00 tail_icon_selected_channel.png 191706 1980-00-00 00:00 head_myself_squared_bg.jpg 27919 1980-00-00 00:00 tail_icon_channel.png 27262 1980-00-00 00:00 tail_icon_selected_dynamic.png 147738 1980-00-00 00:00 head_myself_bg.jpg 28182 1980-00-00 00:00 tail_icon_dynamic.png 25878 1980-00-00 00:00 tail_icon_shop.png 26487 1980-00-00 00:00 tail_icon_selected_shop.png 21831 1980-00-00 00:00 tail_icon_myself.png --------- ------- 1016963 17 files ```