mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2024-12-28 13:30:08 +08:00
b01aae4cf4
* fix: viewunite grpc protos from 7.41.0+ * fix typo * fix: OgvSeasons * fix: Relates * fix: pgcanymodel Stat * fix: playshared.proto * update: playerunite * fix mistake in playunite proto
841 lines
15 KiB
Protocol Buffer
841 lines
15 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package bilibili.playershared;
|
|
|
|
// ArcConf消息
|
|
message ArcConf {
|
|
// 是否支持
|
|
bool is_support = 1;
|
|
// 是否禁用
|
|
bool disabled = 2;
|
|
// 额外内容
|
|
ExtraContent extra_content = 3;
|
|
// 不支持场景列表
|
|
repeated int32 unsupport_scene = 4;
|
|
}
|
|
|
|
//
|
|
enum ArcType {
|
|
//
|
|
ARC_TYPE_NORMAL = 0;
|
|
//
|
|
ARC_TYPE_INTERACT = 1;
|
|
}
|
|
|
|
//
|
|
message BackgroundInfo {
|
|
//
|
|
string drawable_color = 1;
|
|
//
|
|
string drawable_bitmap_url = 2;
|
|
//
|
|
int32 effects = 3;
|
|
}
|
|
|
|
//
|
|
message BadgeInfo {
|
|
//
|
|
string text = 1;
|
|
//
|
|
string bg_color = 2;
|
|
//
|
|
string bg_color_night = 3;
|
|
//
|
|
string text_color = 4;
|
|
//
|
|
GradientColor bg_gradient_color = 5;
|
|
//
|
|
string img = 6;
|
|
}
|
|
|
|
//
|
|
enum BizType {
|
|
//
|
|
BIZ_TYPE_UNKNOWN = 0;
|
|
//
|
|
BIZ_TYPE_UGC = 1;
|
|
//
|
|
BIZ_TYPE_PGC = 2;
|
|
//
|
|
BIZ_TYPE_PUGV = 3;
|
|
}
|
|
|
|
//
|
|
message BottomDisplay {
|
|
//
|
|
TextInfo title = 1;
|
|
//
|
|
string icon = 2;
|
|
}
|
|
|
|
// 按钮组件
|
|
message Button {
|
|
// 按钮文本
|
|
string text = 1;
|
|
// 按钮跳转链接
|
|
string link = 2;
|
|
// 埋点上报相关
|
|
map<string, string> report_params = 3;
|
|
}
|
|
|
|
enum ButtonAction {
|
|
//
|
|
BUTTON_UNKNOWN = 0;
|
|
//
|
|
PAY = 1;
|
|
//
|
|
VIP = 2;
|
|
//
|
|
PACK = 3;
|
|
//
|
|
LINK = 4;
|
|
//
|
|
COUPON = 5;
|
|
//
|
|
DEMAND = 6;
|
|
//
|
|
DEMAND_PACK = 7;
|
|
//
|
|
FOLLOW = 8;
|
|
//
|
|
APPOINTMENT = 9;
|
|
//
|
|
VIP_FREE = 10;
|
|
//
|
|
TASK = 11;
|
|
//
|
|
CHARGINGPLUS = 12;
|
|
//
|
|
BP = 13;
|
|
//
|
|
PRE_SELL = 14;
|
|
}
|
|
|
|
//
|
|
message ButtonInfo {
|
|
//
|
|
string text = 1;
|
|
//
|
|
string text_color = 2;
|
|
//
|
|
string text_color_night = 3;
|
|
//
|
|
string bg_color = 4;
|
|
//
|
|
string bg_color_night = 5;
|
|
//
|
|
string link = 6;
|
|
//
|
|
ButtonAction action_type = 7;
|
|
//
|
|
BadgeInfo badge_info = 8;
|
|
//
|
|
Report report = 9;
|
|
//
|
|
string left_strikethrough_text = 10;
|
|
//
|
|
TextInfo simple_text_info = 11;
|
|
//
|
|
string simple_bg_color = 12;
|
|
//
|
|
string simple_bg_color_night = 13;
|
|
//
|
|
GradientColor bg_gradient_color = 14;
|
|
//
|
|
map<string, string> order_report_params = 15;
|
|
//
|
|
TaskParam task_param = 16;
|
|
//
|
|
string frame_color = 17;
|
|
//
|
|
string icon = 18;
|
|
}
|
|
|
|
// 视频编码
|
|
enum CodeType {
|
|
NOCODE = 0; // 不指定
|
|
CODE264 = 1; // H264
|
|
CODE265 = 2; // H265
|
|
CODEAV1 = 3; // AV1
|
|
}
|
|
|
|
//
|
|
message ComprehensiveToast {
|
|
//
|
|
int32 type = 1;
|
|
//
|
|
ButtonInfo button = 2;
|
|
//
|
|
int32 show_style_type = 3;
|
|
//
|
|
string icon = 4;
|
|
//
|
|
TextInfo toast_text = 5;
|
|
//
|
|
Report report = 6;
|
|
//
|
|
map<string, string> order_report_params = 7;
|
|
}
|
|
|
|
// 功能类型
|
|
enum ConfType {
|
|
NoType = 0;
|
|
FLIPCONF = 1;
|
|
CASTCONF = 2;
|
|
FEEDBACK = 3;
|
|
SUBTITLE = 4;
|
|
PLAYBACKRATE = 5;
|
|
TIMEUP = 6;
|
|
PLAYBACKMODE = 7;
|
|
SCALEMODE = 8;
|
|
BACKGROUNDPLAY = 9;
|
|
LIKE = 10;
|
|
DISLIKE = 11;
|
|
COIN = 12;
|
|
ELEC = 13;
|
|
SHARE = 14;
|
|
SCREENSHOT = 15;
|
|
LOCKSCREEN = 16;
|
|
RECOMMEND = 17;
|
|
PLAYBACKSPEED = 18;
|
|
DEFINITION = 19;
|
|
SELECTIONS = 20;
|
|
NEXT = 21;
|
|
EDITDM = 22;
|
|
SMALLWINDOW = 23;
|
|
SHAKE = 24;
|
|
OUTERDM = 25;
|
|
INNERDM = 26;
|
|
PANORAMA = 27;
|
|
DOLBY = 28;
|
|
COLORFILTER = 29;
|
|
LOSSLESS = 30;
|
|
FREYAENTER = 31;
|
|
FREYAFULLENTER = 32;
|
|
SKIPOPED = 33;
|
|
RECORDSCREEN = 34;
|
|
DUBBING = 35;
|
|
LISTEN = 36;
|
|
}
|
|
|
|
//
|
|
message ConfValue {
|
|
oneof value {
|
|
//
|
|
int32 switch_val = 1;
|
|
//
|
|
int32 selected_val = 2;
|
|
}
|
|
}
|
|
|
|
// Dash条目
|
|
message DashItem {
|
|
// 清晰度
|
|
uint32 id = 1;
|
|
// 主线流
|
|
string base_url = 2;
|
|
// 备用流
|
|
repeated string backup_url = 3;
|
|
// 带宽
|
|
uint32 bandwidth = 4;
|
|
// 编码id
|
|
uint32 codecid = 5;
|
|
// md5
|
|
string md5 = 6;
|
|
// 大小
|
|
uint64 size = 7;
|
|
// 帧率
|
|
string frame_rate = 8;
|
|
// DRM密钥
|
|
string widevine_pssh = 9;
|
|
}
|
|
|
|
// 视频流信息: dash流
|
|
message DashVideo {
|
|
// 主线流
|
|
string base_url = 1;
|
|
// 备用流
|
|
repeated string backup_url = 2;
|
|
// 带宽
|
|
uint32 bandwidth = 3;
|
|
// 编码id
|
|
uint32 codecid = 4;
|
|
// md5
|
|
string md5 = 5;
|
|
// 大小
|
|
uint64 size = 6;
|
|
// 伴音质量id
|
|
uint32 audio_id = 7;
|
|
// 是否非全二压
|
|
bool no_rexcode = 8;
|
|
// 帧率
|
|
string frame_rate = 9;
|
|
// 宽
|
|
int32 width = 10;
|
|
// 高
|
|
int32 height = 11;
|
|
// DRM密钥
|
|
string widevine_pssh = 12;
|
|
}
|
|
|
|
//
|
|
message DeviceConf {
|
|
ConfValue conf_value = 1;
|
|
}
|
|
|
|
//
|
|
message Dialog {
|
|
//
|
|
int32 style_type = 1;
|
|
//
|
|
BackgroundInfo background_info = 2;
|
|
//
|
|
TextInfo title = 3;
|
|
//
|
|
TextInfo subtitle = 4;
|
|
//
|
|
ImageInfo image = 5;
|
|
//
|
|
repeated ButtonInfo button = 6;
|
|
//
|
|
ButtonInfo bottom_desc = 7;
|
|
//
|
|
Report report = 8;
|
|
//
|
|
int32 count_down_sec = 9;
|
|
//
|
|
TextInfo right_bottom_desc = 10;
|
|
//
|
|
repeated BottomDisplay bottom_display = 11;
|
|
//
|
|
ExtData ext_data = 12;
|
|
//
|
|
int32 limit_action_type = 13;
|
|
}
|
|
|
|
|
|
// 当前分辨率信息
|
|
message Dimension {
|
|
// 宽
|
|
int32 width = 1;
|
|
// 长
|
|
int32 height = 2;
|
|
// 旋转角度
|
|
int32 rotate = 3;
|
|
}
|
|
|
|
// 杜比伴音流信息
|
|
message DolbyItem {
|
|
// 杜比类型
|
|
enum Type {
|
|
NONE = 0; // NONE
|
|
COMMON = 1; // 普通杜比音效
|
|
ATMOS = 2; // 全景杜比音效
|
|
}
|
|
// 杜比类型
|
|
Type type = 1;
|
|
// 音频流
|
|
repeated DashItem audio = 2;
|
|
}
|
|
|
|
// DRM类型
|
|
enum DrmTechType {
|
|
//
|
|
UNKNOWN_DRM = 0;
|
|
//
|
|
FAIR_PLAY = 1;
|
|
//
|
|
WIDE_VINE = 2;
|
|
// 哔哩哔哩自研DRM
|
|
BILI_DRM = 3;
|
|
}
|
|
|
|
enum Effects {
|
|
//
|
|
EFFECTS_UNKNOWN = 0;
|
|
//
|
|
GAUSSIAN_BLUR = 1;
|
|
//
|
|
HALF_ALPHA = 2;
|
|
}
|
|
|
|
// 事件
|
|
message Event {
|
|
// 震动
|
|
Shake shake = 1;
|
|
}
|
|
|
|
//
|
|
message ExtData {
|
|
//
|
|
ExtDataType type = 1;
|
|
//
|
|
oneof data {
|
|
PlayListInfo play_list_info = 2;
|
|
}
|
|
}
|
|
|
|
enum ExtDataType {
|
|
//
|
|
EXT_DATA_TYPE_UNKNOWN = 0;
|
|
//
|
|
PLAY_LIST = 1;
|
|
}
|
|
|
|
// ? 错误码补充信息
|
|
message ExtraContent {
|
|
//
|
|
string disable_reason = 1;
|
|
//
|
|
int64 disable_code = 2;
|
|
}
|
|
|
|
//
|
|
message GradientColor {
|
|
//
|
|
string start_color = 1;
|
|
//
|
|
string end_color = 2;
|
|
}
|
|
|
|
//
|
|
enum GuideStyle {
|
|
//
|
|
STYLE_UNKNOWN = 0;
|
|
//
|
|
HORIZONTAL_IMAGE = 1;
|
|
//
|
|
VERTICAL_TEXT = 2;
|
|
//
|
|
SIMPLE_TEXT = 3;
|
|
//
|
|
CHARGING_TEXT = 4;
|
|
}
|
|
|
|
// 播放历史
|
|
message History {
|
|
//
|
|
HistoryInfo current_video = 1;
|
|
//
|
|
HistoryInfo related_video = 2;
|
|
}
|
|
|
|
//
|
|
message HistoryInfo {
|
|
//
|
|
int64 progress = 1;
|
|
//
|
|
int64 last_play_cid = 2;
|
|
//
|
|
Toast toast = 3;
|
|
//
|
|
Toast toast_without_time = 4;
|
|
//
|
|
int64 last_play_aid = 5;
|
|
}
|
|
|
|
//
|
|
message ImageInfo {
|
|
//
|
|
string url = 1;
|
|
}
|
|
|
|
|
|
//
|
|
message Interaction {
|
|
//
|
|
Node history_node = 1;
|
|
//
|
|
int64 graph_version = 2;
|
|
//
|
|
string msg = 3;
|
|
//
|
|
int64 mark = 4;
|
|
}
|
|
|
|
//
|
|
enum LimitActionType {
|
|
//
|
|
LAT_UNKNOWN = 0;
|
|
//
|
|
SHOW_LIMIT_DIALOG = 1;
|
|
//
|
|
SKIP_CURRENT_EP = 2;
|
|
}
|
|
|
|
// HIRES伴音流信息
|
|
message LossLessItem {
|
|
// 是否为hires
|
|
bool is_lossless_audio = 1;
|
|
// 音频流信息
|
|
DashItem audio = 2;
|
|
// 是否需要大会员
|
|
bool need_vip = 3;
|
|
}
|
|
|
|
//
|
|
message Node {
|
|
//
|
|
int64 node_id = 1;
|
|
//
|
|
string title = 2;
|
|
//
|
|
int64 cid = 3;
|
|
}
|
|
|
|
//
|
|
message PlayArc {
|
|
//
|
|
BizType video_type = 1;
|
|
//
|
|
uint64 aid = 2;
|
|
//
|
|
uint64 cid = 3;
|
|
//
|
|
DrmTechType drm_tech_type = 4;
|
|
//
|
|
ArcType arc_type = 5;
|
|
//
|
|
Interaction interaction = 6;
|
|
//
|
|
Dimension dimension = 7;
|
|
//
|
|
int64 duration = 8;
|
|
//
|
|
bool is_preview = 9;
|
|
}
|
|
|
|
// 播放页信息-响应: PlayArcConf
|
|
message PlayArcConf {
|
|
map<int32, ArcConf> arc_confs = 1;
|
|
}
|
|
|
|
//
|
|
message PlayDeviceConf {
|
|
//
|
|
map<int32, DeviceConf> device_confs = 1;
|
|
}
|
|
|
|
// 错误码
|
|
enum PlayErr {
|
|
NoErr = 0; //
|
|
WithMultiDeviceLoginErr = 1; // 管控类型的错误码
|
|
}
|
|
|
|
//
|
|
message PlayList {
|
|
//
|
|
int64 season_id = 1;
|
|
//
|
|
string title = 2;
|
|
//
|
|
string cover = 3;
|
|
//
|
|
string link = 4;
|
|
//
|
|
BadgeInfo badge_info = 5;
|
|
}
|
|
|
|
//
|
|
message PlayListInfo {
|
|
//
|
|
repeated PlayList play_list = 2;
|
|
}
|
|
|
|
// 视频下方广告 Banner
|
|
message PromptBar {
|
|
//
|
|
TextInfo title = 1;
|
|
//
|
|
TextInfo subtitle = 2;
|
|
//
|
|
string sub_title_icon = 3;
|
|
//
|
|
string bg_image = 4;
|
|
//
|
|
GradientColor bg_gradient_color = 5;
|
|
//
|
|
repeated ButtonInfo button = 6;
|
|
//
|
|
Report report = 7;
|
|
//
|
|
string full_screen_ip_icon = 8;
|
|
//
|
|
GradientColor full_screen_bg_gradient_color = 9;
|
|
}
|
|
|
|
|
|
// 播放页信息-响应: 高画质试看信息
|
|
message QnTrialInfo {
|
|
// 能否试看高画质
|
|
bool trial_able = 1;
|
|
//
|
|
int32 remaining_times = 2;
|
|
//
|
|
int32 start = 3;
|
|
//
|
|
int32 time_length = 4;
|
|
//
|
|
Toast start_toast = 5;
|
|
//
|
|
Toast end_toast = 6;
|
|
//
|
|
Button quality_open_tip_btn = 8;
|
|
}
|
|
|
|
//
|
|
message Report {
|
|
//
|
|
string show_event_id = 1;
|
|
//
|
|
string click_event_id = 2;
|
|
//
|
|
string extends = 3;
|
|
}
|
|
|
|
// Dash Response, 未使用
|
|
message ResponseDash {
|
|
repeated DashItem video = 1;
|
|
repeated DashItem audio = 2;
|
|
}
|
|
|
|
// 分段流条目
|
|
message ResponseUrl {
|
|
// 分段序号
|
|
uint32 order = 1;
|
|
// 分段时长
|
|
uint64 length = 2;
|
|
// 分段大小
|
|
uint64 size = 3;
|
|
// 主线流
|
|
string url = 4;
|
|
// 备用流
|
|
repeated string backup_url = 5;
|
|
// md5
|
|
string md5 = 6;
|
|
}
|
|
|
|
// 方案
|
|
message Scheme {
|
|
enum ActionType {
|
|
UNKNOWN = 0;
|
|
SHOW_TOAST = 1;
|
|
}
|
|
//
|
|
ActionType action_type = 1;
|
|
//
|
|
string toast = 2;
|
|
}
|
|
|
|
// 视频流信息: 分段流
|
|
message SegmentVideo {
|
|
repeated ResponseUrl segment = 1;
|
|
}
|
|
|
|
// 震动
|
|
message Shake {
|
|
//
|
|
string file = 1;
|
|
}
|
|
|
|
//
|
|
enum ShowStyleType {
|
|
//
|
|
SHOW_STYLE_TYPE_UNKNOWN = 0;
|
|
//
|
|
SHOW_STYLE_TYPE_ORDINARY = 1;
|
|
//
|
|
SHOW_STYLE_TYPE_RESIDENT = 2;
|
|
}
|
|
|
|
// 视频流信息
|
|
message Stream {
|
|
// 元数据
|
|
StreamInfo stream_info = 1;
|
|
// 流数据
|
|
oneof content {
|
|
// dash流
|
|
DashVideo dash_video = 2;
|
|
// 分段流
|
|
SegmentVideo segment_video = 3;
|
|
}
|
|
}
|
|
|
|
// 视频流信息: 元数据
|
|
message StreamInfo {
|
|
// 清晰度
|
|
uint32 quality = 1;
|
|
// 格式
|
|
string format = 2;
|
|
// 格式描述
|
|
string description = 3;
|
|
// 错误码
|
|
uint32 err_code = 4;
|
|
// 不满足条件信息
|
|
StreamLimit limit = 5;
|
|
// 是否需要vip
|
|
bool need_vip = 6;
|
|
// 是否需要登录
|
|
bool need_login = 7;
|
|
// 是否完整
|
|
bool intact = 8;
|
|
// 是否非全二压
|
|
bool no_rexcode = 9;
|
|
// 清晰度属性位
|
|
int64 attribute = 10;
|
|
// 新版格式描述
|
|
string new_description = 11;
|
|
// 格式文字
|
|
string display_desc = 12;
|
|
// 新版格式描述备注
|
|
string superscript = 13;
|
|
//
|
|
bool vip_free = 14;
|
|
//
|
|
string subtitle = 15;
|
|
// 方案
|
|
Scheme scheme = 16;
|
|
// 支持drm
|
|
bool support_drm = 17;
|
|
}
|
|
|
|
// 视频流信息: 流媒体元数据: 清晰度不满足条件信息
|
|
message StreamLimit {
|
|
// 标题
|
|
string title = 1;
|
|
// 跳转地址
|
|
string uri = 2;
|
|
// 提示信息
|
|
string msg = 3;
|
|
}
|
|
|
|
//
|
|
message TaskParam {
|
|
//
|
|
string task_type = 1;
|
|
//
|
|
int64 activity_id = 2;
|
|
//
|
|
int64 tips_id = 3;
|
|
}
|
|
|
|
//
|
|
message TextInfo {
|
|
//
|
|
string text = 1;
|
|
//
|
|
string text_color = 2;
|
|
//
|
|
string text_color_night = 3;
|
|
}
|
|
|
|
|
|
// Toast信息
|
|
message Toast {
|
|
// toast文案
|
|
string text = 1;
|
|
// toast按钮
|
|
Button button = 2;
|
|
}
|
|
|
|
enum ToastType {
|
|
//
|
|
TOAST_TYPE_UNKNOWN = 0;
|
|
//
|
|
VIP_CONTENT_REMIND = 1;
|
|
//
|
|
VIP_DEFINITION_REMIND = 2;
|
|
//
|
|
VIP_DEFINITION_GUIDE = 3;
|
|
//
|
|
OGV_VIDEO_START_TOAST = 4;
|
|
//
|
|
CHARGING_TOAST = 5;
|
|
}
|
|
|
|
//
|
|
enum UnsupportScene {
|
|
//
|
|
UNKNOWN_SCENE = 0;
|
|
//
|
|
PREMIERE = 1;
|
|
}
|
|
|
|
// 播放页信息-请求: 音视频VOD
|
|
message VideoVod {
|
|
// 视频aid
|
|
int32 aid = 1;
|
|
// 视频cid
|
|
int32 cid = 2;
|
|
// 清晰度
|
|
uint64 qn = 3;
|
|
// 视频流版本
|
|
int32 fnver = 4;
|
|
// 视频流格式
|
|
int32 fnval = 5;
|
|
// 下载模式
|
|
// 0:播放 1:flv下载 2:dash下载
|
|
uint32 download = 6;
|
|
// 流url强制是用域名
|
|
// 0:允许使用ip 1:使用http 2:使用https
|
|
int32 force_host = 7;
|
|
// 是否4K
|
|
bool fourk = 8;
|
|
// 视频编码
|
|
CodeType prefer_codec_type = 9;
|
|
// 响度均衡
|
|
uint64 voice_balance = 10;
|
|
}
|
|
|
|
//
|
|
message ViewInfo {
|
|
//
|
|
map<string, Dialog> dialog_map = 1;
|
|
//
|
|
PromptBar prompt_bar = 2;
|
|
//
|
|
repeated ComprehensiveToast toasts = 3;
|
|
}
|
|
|
|
// 播放页信息-响应: VOD音视频信息
|
|
message VodInfo {
|
|
// 视频清晰度
|
|
uint32 quality = 1;
|
|
// 视频格式
|
|
string format = 2;
|
|
// 视频时长
|
|
uint64 timelength = 3;
|
|
// 视频编码id
|
|
uint32 video_codecid = 4;
|
|
// 视频流
|
|
repeated Stream stream_list = 5;
|
|
// 伴音流
|
|
repeated DashItem dash_audio = 6;
|
|
// 杜比伴音流
|
|
DolbyItem dolby = 7;
|
|
// 响度均衡操作信息
|
|
VolumeInfo volume = 8;
|
|
// HIRES伴音流信息
|
|
LossLessItem loss_less_item = 9;
|
|
// 是否支持投屏
|
|
bool support_project = 10;
|
|
}
|
|
|
|
// 响度均衡操作信息
|
|
message VolumeInfo {
|
|
// Measured integrated loudness 实际综合响度
|
|
double measured_i = 1;
|
|
// Measured loudness range 实际响度范围
|
|
double measured_lra = 2;
|
|
// Measured true peak 实际响度真峰值
|
|
double measured_tp = 3;
|
|
// Measured threshold 实际响度阈值
|
|
double measured_threshold = 4;
|
|
// Target offset gain(Gain is applied before the true-peak limiter) 目标增益Offset(增益在真实峰值限制器之前应用)
|
|
double target_offset = 5;
|
|
// Target integrated loudness 目标综合响度
|
|
double target_i = 6;
|
|
// Target true peak 目标响度真峰值
|
|
double target_tp = 7;
|
|
}
|