mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2025-02-19 23:40:09 +08:00
784 lines
16 KiB
Protocol Buffer
784 lines
16 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package bilibili.pgc.gateway.player.v2;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
// 视频url
|
|
service PlayURL {
|
|
// 播放页信息
|
|
rpc PlayView (PlayViewReq) returns (PlayViewReply);
|
|
//
|
|
rpc PlayViewComic(PlayViewReq) returns (PlayViewReply);
|
|
}
|
|
|
|
// 角标信息
|
|
message BadgeInfo {
|
|
// 角标文案
|
|
string text = 1;
|
|
// 角标色值
|
|
string bg_color = 2;
|
|
// 角标色值-夜间模式
|
|
string bg_color_night = 3;
|
|
// 文案色值
|
|
string text_color = 4;
|
|
//
|
|
GradientColor bg_gradient_color = 5;
|
|
}
|
|
|
|
//
|
|
message BottomDisplay {
|
|
//
|
|
TextInfo title = 1;
|
|
//
|
|
string icon = 2;
|
|
}
|
|
|
|
// 按钮信息
|
|
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;
|
|
// 按钮动作类型
|
|
string 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;
|
|
}
|
|
|
|
//
|
|
message CastTips {
|
|
//
|
|
int32 code = 1;
|
|
//
|
|
string message = 2;
|
|
}
|
|
|
|
//
|
|
message ClipInfo {
|
|
//
|
|
int64 material_no = 1;
|
|
//
|
|
int32 start = 2;
|
|
//
|
|
int32 end = 3;
|
|
//
|
|
ClipType clip_type = 4;
|
|
//
|
|
string toast_text = 5;
|
|
//
|
|
MultiView multi_view = 6;
|
|
}
|
|
|
|
enum ClipType {
|
|
NT_UNKNOWN = 0; //
|
|
CLIP_TYPE_OP = 1; //
|
|
CLIP_TYPE_ED = 2; //
|
|
CLIP_TYPE_HE = 3; //
|
|
CLIP_TYPE_MULTI_VIEW = 4; //
|
|
}
|
|
|
|
// 编码类型
|
|
enum CodeType {
|
|
NOCODE = 0; // 默认
|
|
CODE264 = 1; // H.264
|
|
CODE265 = 2; // H.265
|
|
}
|
|
|
|
//
|
|
message ContinuePlayInfo {
|
|
//
|
|
int64 continue_play_ep_id = 1;
|
|
}
|
|
|
|
// 优惠券
|
|
message Coupon {
|
|
// 优惠券token
|
|
string coupon_token = 1;
|
|
// 优惠券类型
|
|
// 1:折扣券 2:满减券 3:兑换券
|
|
int64 type = 2;
|
|
// 优惠券面值
|
|
string value = 3;
|
|
// 优惠券使用描述
|
|
string use_desc = 4;
|
|
// 优惠券标题
|
|
string title = 5;
|
|
// 优惠券描述
|
|
string desc = 6;
|
|
// 优惠券支付按钮文案
|
|
string pay_button_text = 7;
|
|
// 优惠券支付按钮删除线文案
|
|
string pay_button_text_line_through = 8;
|
|
// 实付金额
|
|
string real_amount = 9;
|
|
// 使用过期时间
|
|
google.protobuf.Timestamp expire_time = 10;
|
|
}
|
|
|
|
// 优惠券信息
|
|
message CouponInfo {
|
|
// 提示框信息
|
|
CouponToast toast = 1;
|
|
// 弹窗信息
|
|
PopWin pop_win = 2;
|
|
}
|
|
|
|
// 优惠券提示框文案信息
|
|
message CouponTextInfo {
|
|
// 提示框文案-播正片6分钟预览
|
|
string positive_preview = 1;
|
|
// 提示框文案-播非正片分节ep
|
|
string section = 2;
|
|
}
|
|
|
|
// 优惠券提示框信息
|
|
message CouponToast {
|
|
// 提示框文案信息
|
|
CouponTextInfo text_info = 1;
|
|
// 提示框按钮
|
|
ButtonInfo button = 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;
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
|
|
// 鉴权浮层
|
|
message Dialog {
|
|
// 鉴权限制码
|
|
int64 code = 1;
|
|
// 鉴权限制信息
|
|
string msg = 2;
|
|
// 浮层类型
|
|
string type = 3;
|
|
// 浮层样式类型
|
|
string style_type = 4;
|
|
// 浮层配置
|
|
DialogConfig config = 5;
|
|
// 标题
|
|
TextInfo title = 6;
|
|
// 副标题
|
|
TextInfo subtitle = 7;
|
|
// 图片信息
|
|
ImageInfo image = 8;
|
|
// 按钮列表
|
|
repeated ButtonInfo button = 9;
|
|
// 底部描述
|
|
ButtonInfo bottom_desc = 10;
|
|
// 埋点上报信息
|
|
Report report = 11;
|
|
// 倒计时 秒
|
|
int32 count_down_sec = 12;
|
|
// 右下描述
|
|
TextInfo right_bottom_desc = 13;
|
|
//
|
|
repeated BottomDisplay bottom_display = 14;
|
|
}
|
|
|
|
// 鉴权浮层配置
|
|
message DialogConfig {
|
|
// 是否显示高斯模糊背景图
|
|
bool is_show_cover = 1;
|
|
// 是否响应转屏
|
|
bool is_orientation_enable = 2;
|
|
// 是否响应上滑吸顶
|
|
bool is_nested_scroll_enable = 3;
|
|
// 是否强制竖屏
|
|
bool is_force_halfscreen_enable = 4;
|
|
}
|
|
|
|
//
|
|
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;
|
|
// 音频流
|
|
DashItem audio = 2;
|
|
}
|
|
|
|
//
|
|
enum DrmTechType {
|
|
NON = 0; //
|
|
FAIR_PLAY = 1; //
|
|
}
|
|
|
|
// 播放结束页
|
|
message EndPage {
|
|
// 鉴权浮层
|
|
Dialog dialog = 1;
|
|
// 播放完后是否隐藏end_page
|
|
bool hide = 2;
|
|
}
|
|
|
|
// 事件
|
|
message Event {
|
|
// 震动
|
|
Shake shake = 1;
|
|
}
|
|
|
|
//
|
|
message FreyaConfig {
|
|
//
|
|
string desc = 1;
|
|
//
|
|
int32 type = 2;
|
|
//
|
|
int32 issued_cnt = 3;
|
|
//
|
|
bool is_always_show = 4;
|
|
//
|
|
int32 screen_number = 5;
|
|
//
|
|
int32 full_screen_number = 6;
|
|
}
|
|
|
|
//
|
|
message GradientColor {
|
|
//
|
|
string start_color = 1;
|
|
//
|
|
string end_color = 2;
|
|
}
|
|
|
|
//
|
|
message HighDefinitionTrialInfo {
|
|
//
|
|
bool trial_able = 1;
|
|
//
|
|
int32 remaining_times = 2;
|
|
//
|
|
int32 start = 3;
|
|
//
|
|
int32 time_length = 4;
|
|
//
|
|
Toast start_toast = 5;
|
|
//
|
|
Toast end_toast = 6;
|
|
//
|
|
Report report = 7;
|
|
//
|
|
ButtonInfo quality_open_tip_btn = 8;
|
|
//
|
|
ButtonInfo no_longer_trial_btn = 9;
|
|
}
|
|
|
|
// 图片信息
|
|
message ImageInfo {
|
|
// 图片链接
|
|
string url = 1;
|
|
}
|
|
|
|
//
|
|
enum InlineScene {
|
|
UNKNOWN = 0; //
|
|
RELATED_EP = 1; //
|
|
HE = 2; //
|
|
SKIP = 3; //
|
|
}
|
|
|
|
//
|
|
enum InlineType {
|
|
TYPE_UNKNOWN = 0; //
|
|
TYPE_WHOLE = 1; //
|
|
TYPE_HE_CLIP = 2; //
|
|
TYPE_PREVIEW = 3; //
|
|
}
|
|
|
|
//
|
|
message MultiView {
|
|
//
|
|
string button_material = 1;
|
|
//
|
|
int64 ep_id = 2;
|
|
//
|
|
int64 cid = 3;
|
|
//
|
|
int64 avid = 4;
|
|
}
|
|
|
|
//
|
|
message PayTip {
|
|
//
|
|
string title = 1;
|
|
//
|
|
string url = 2;
|
|
//
|
|
string icon = 3;
|
|
//
|
|
int32 type = 4;
|
|
//
|
|
int32 show_type = 5;
|
|
//
|
|
string img = 6;
|
|
//
|
|
string bg_day_color = 7;
|
|
//
|
|
string bg_night_color = 8;
|
|
//
|
|
string bg_line_color = 9;
|
|
//
|
|
string bg_night_line_color = 10;
|
|
//
|
|
string text_color = 11;
|
|
//
|
|
string text_night_color = 12;
|
|
//
|
|
int64 view_start_time = 13;
|
|
//
|
|
repeated ButtonInfo button = 14;
|
|
//
|
|
int32 url_open_type = 15;
|
|
//
|
|
Report report = 16;
|
|
//
|
|
int32 angle_style = 17;
|
|
//
|
|
int32 report_type = 18;
|
|
//
|
|
map<string, string> order_report_params = 19;
|
|
}
|
|
|
|
// 禁用功能配置
|
|
message PlayAbilityConf {
|
|
bool background_play_disable = 1; // 后台播放
|
|
bool flip_disable = 2; // 镜像反转
|
|
bool cast_disable = 3; // 投屏
|
|
bool feedback_disable = 4; // 反馈
|
|
bool subtitle_disable = 5; // 字幕
|
|
bool playback_rate_disable = 6; // 播放速度
|
|
bool time_up_disable = 7; // 定时停止
|
|
bool playback_mode_disable = 8; // 播放方式
|
|
bool scale_mode_disable = 9; // 画面尺寸
|
|
bool like_disable = 10; // 赞
|
|
bool dislike_disable = 11; // 踩
|
|
bool coin_disable = 12; // 投币
|
|
bool elec_disable = 13; // 充电
|
|
bool share_disable = 14; // 分享
|
|
bool screen_shot_disable = 15; // 截图
|
|
bool lock_screen_disable = 16; // 锁定
|
|
bool recommend_disable = 17; // 相关推荐
|
|
bool playback_speed_disable = 18; // 播放速度
|
|
bool definition_disable = 19; // 清晰度
|
|
bool selections_disable = 20; // 选集
|
|
bool next_disable = 21; // 下一集
|
|
bool edit_dm_disable = 22; // 编辑弹幕
|
|
bool small_window_disable = 23; // 小窗
|
|
bool shake_disable = 24; // 震动
|
|
bool outer_dm_disable = 25; // 外层面板弹幕设置
|
|
bool inner_dm_disable = 26; // 三点内弹幕设置
|
|
bool freya_enter_disable = 27; // 一起看入口
|
|
bool dolby_disable = 28; // 杜比音效
|
|
bool freya_full_disable = 29; // 全屏一起看入口
|
|
bool skip_oped_switch_disable = 30; //
|
|
bool record_screen_disable = 31; //
|
|
bool color_optimize_disable = 32; //
|
|
}
|
|
|
|
// 云控扩展配置信息
|
|
message PlayAbilityExtConf {
|
|
// 自定义配置扩展信息
|
|
bool allow_close_subtitle = 1;
|
|
//
|
|
FreyaConfig freya_config = 2;
|
|
//
|
|
CastTips cast_tips = 3;
|
|
}
|
|
|
|
// 错误码
|
|
enum PlayErr {
|
|
NoErr = 0; //
|
|
WithMultiDeviceLoginErr = 1; // 管控类型的错误码
|
|
}
|
|
|
|
// 其他业务信息
|
|
message PlayViewBusinessInfo {
|
|
// 当前视频是否是预览
|
|
bool is_preview = 1;
|
|
// 用户是否承包过
|
|
bool bp = 2;
|
|
// drm使用
|
|
string marlin_token = 3;
|
|
// 倍速动效色值
|
|
string playback_speed_color = 4;
|
|
//
|
|
ContinuePlayInfo continue_play_info = 5;
|
|
//
|
|
repeated ClipInfo clip_info = 6;
|
|
//
|
|
InlineType inline_type = 7;
|
|
//
|
|
int32 ep_whole_duration = 8;
|
|
//
|
|
Dimension dimension = 9;
|
|
//
|
|
map<int32, QualityExtInfo> quality_ext_map = 10;
|
|
//
|
|
map<string, int32> exp_map = 11;
|
|
//
|
|
DrmTechType drm_tech_type = 12;
|
|
}
|
|
|
|
// 播放页信息-响应
|
|
message PlayViewReply {
|
|
// 视频流信息
|
|
VideoInfo video_info = 1;
|
|
// 播放控件用户自定义配置
|
|
PlayAbilityConf play_conf = 2;
|
|
// 业务需要的其他信息
|
|
PlayViewBusinessInfo business = 3;
|
|
// 事件
|
|
Event event = 4;
|
|
// 展示信息
|
|
ViewInfo view_info = 5;
|
|
// 自定义配置扩展信息
|
|
PlayAbilityExtConf play_ext_conf = 6;
|
|
}
|
|
|
|
// 播放页信息-请求
|
|
message PlayViewReq {
|
|
// 剧集epid
|
|
int64 epid = 1;
|
|
// 视频cid
|
|
int64 cid = 2;
|
|
// 清晰度
|
|
int64 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;
|
|
// 当前页spm
|
|
string spmid = 9;
|
|
// 上一页spm
|
|
string from_spmid = 10;
|
|
// 青少年模式
|
|
int32 teenagers_mode = 11;
|
|
// 视频编码
|
|
CodeType prefer_codec_type = 12;
|
|
// 是否强制请求预览视频
|
|
bool is_preview = 13;
|
|
// 一起看房间id
|
|
int64 room_id = 14;
|
|
// 是否需要展示信息
|
|
bool is_need_view_info = 15;
|
|
// 场景控制
|
|
SceneControl scene_control = 16;
|
|
//
|
|
InlineScene inline_scene = 17;
|
|
//
|
|
int64 material_no = 18;
|
|
}
|
|
|
|
// 弹窗信息
|
|
message PopWin {
|
|
// 弹窗标题 老字段
|
|
string title = 1;
|
|
// 优惠券列表
|
|
repeated Coupon coupon = 2;
|
|
// 弹窗按钮列表
|
|
repeated ButtonInfo button = 3;
|
|
// 底部文案 老字段
|
|
string bottom_text = 4;
|
|
// 弹窗标题 新字段
|
|
TextInfo pop_title = 5;
|
|
// 弹窗副标题
|
|
TextInfo subtitle = 6;
|
|
// 底部描述 新字段
|
|
ButtonInfo bottom_desc = 7;
|
|
// 弹窗小图
|
|
string cover = 8;
|
|
// 弹窗类型
|
|
string pop_type = 9;
|
|
}
|
|
|
|
//
|
|
message PromptBar {
|
|
//
|
|
TextInfo title = 1;
|
|
//
|
|
TextInfo sub_title = 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 QualityExtInfo {
|
|
//
|
|
bool trial_support = 1;
|
|
}
|
|
|
|
// 埋点上报信息
|
|
message Report {
|
|
// 曝光事件
|
|
string show_event_id = 1;
|
|
// 点击事件
|
|
string click_event_id = 2;
|
|
// 埋点透传参数
|
|
string extends = 3;
|
|
}
|
|
|
|
// 分段流条目
|
|
message ResponseUrl {
|
|
// 分段序号
|
|
uint32 order = 1;
|
|
// 分段时长
|
|
uint64 length = 2;
|
|
// 分段大小
|
|
uint64 size = 3;
|
|
// 主线流
|
|
string url = 4;
|
|
// 备用流
|
|
repeated string backup_url = 5;
|
|
// md5
|
|
string md5 = 6;
|
|
}
|
|
|
|
// 场景控制
|
|
message SceneControl {
|
|
// 是否收藏播单
|
|
bool fav_playlist = 1;
|
|
// 是否小窗
|
|
bool small_window = 2;
|
|
// 是否画中画
|
|
bool pip = 3;
|
|
//
|
|
bool was_he_inline = 4;
|
|
//
|
|
bool is_need_trial = 5;
|
|
}
|
|
|
|
//分段视频流
|
|
message SegmentVideo {
|
|
//分段视频流列表
|
|
repeated ResponseUrl segment = 1;
|
|
}
|
|
|
|
// 震动
|
|
message Shake {
|
|
// 文件地址
|
|
string file = 1;
|
|
}
|
|
|
|
// 视频流信息
|
|
message Stream {
|
|
// 元数据
|
|
StreamInfo 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;
|
|
}
|
|
|
|
// 清晰度不满足条件信息
|
|
message StreamLimit {
|
|
// 标题
|
|
string title = 1;
|
|
// 跳转地址
|
|
string uri = 2;
|
|
// 提示信息
|
|
string msg = 3;
|
|
}
|
|
|
|
// 文案信息
|
|
message TextInfo {
|
|
// 文案
|
|
string text = 1;
|
|
// 字体色值
|
|
string textColor = 2;
|
|
// 字体色值-夜间模式
|
|
string textColorNight = 3;
|
|
}
|
|
|
|
// toast
|
|
message Toast {
|
|
// toast文案 老字段
|
|
string text = 1;
|
|
// toast按钮
|
|
ButtonInfo button = 2;
|
|
// 显示样式类型
|
|
int32 show_style_type = 3;
|
|
// 图标
|
|
string icon = 4;
|
|
// toast文案 新字段
|
|
TextInfo toast_text = 5;
|
|
// 埋点上报信息
|
|
Report report = 6;
|
|
//
|
|
map<string, string> order_report_params = 7;
|
|
}
|
|
|
|
// 视频url信息
|
|
message VideoInfo {
|
|
// 视频清晰度
|
|
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;
|
|
}
|
|
|
|
// 展示信息
|
|
message ViewInfo {
|
|
// 鉴权浮层
|
|
Dialog dialog = 1;
|
|
// toast
|
|
Toast toast = 2;
|
|
// 优惠券信息
|
|
CouponInfo coupon_info = 3;
|
|
// 未购买的超前点播ep列表
|
|
repeated int64 demand_no_pay_epids = 4;
|
|
// 播放结束页
|
|
EndPage end_page = 5;
|
|
//
|
|
map<string, bool> exp_config = 6;
|
|
// 弹窗
|
|
PopWin pop_win = 7;
|
|
//
|
|
PromptBar try_watch_prompt_bar = 8;
|
|
//
|
|
PayTip pay_tip = 9;
|
|
//
|
|
HighDefinitionTrialInfo high_definition_trial_info = 10;
|
|
//
|
|
map<string, Dialog> ext_dialog = 11;
|
|
} |