bilibili-API-collect/grpc_api/bilibili/pgc/gateway/player/v2/playurl.proto
陈寒彤 7d389d8f72
update grpc_api from 7.26.0 (#728)
* update package bilibili.pgc.gateway.player.v2 from 7.26.0

* update package bilibili.app.viewunite.v1 from 7.26.0

* delete some unused grpc package based on 7.26.0

* update package bilibili.playershared from 7.26.0

* update package bilibili.polymer.app.search.v1 from 7.26.0

* redir package bilibili.polymer.contract.v1

* update package bilibili.app.dynamic.v2 from 7.26.0

* add package bilibili.app.search.v2 from 7.26.0

* fix: typo
2023-07-03 16:44:26 +08:00

1128 lines
24 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 Animation {
//
map<string, string> qn_svga_animation_map = 1;
}
//
message AudioMaterialProto {
//
string audio_id = 1;
//
string title = 2;
//
string edition = 3;
//
uint64 person_id = 4;
//
string person_name = 5;
//
string person_avatar = 6;
//
repeated DashItem audio = 7;
}
// 角标信息
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;
}
// Dialog组件: 底部显示
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;
//
TaskParam task_param = 16;
//
string pc_link = 17;
}
// 投屏限制. code = 0 时为无限制, 否则表示不不允许投屏并提示message
message CastTips {
//
int32 code = 1;
//
string message = 2;
}
// 跳过片头/片尾配置
message ClipInfo {
//
int64 material_no = 1;
// DASH分段始
int32 start = 2;
// DASH分段终
int32 end = 3;
// Clip类型
ClipType clip_type = 4;
// 跳过片头/片尾时的提示语
string toast_text = 5;
//
MultiView multi_view = 6;
}
// 跳过片头/片尾配置: Clip类型
enum ClipType {
NT_UNKNOWN = 0; //
CLIP_TYPE_OP = 1; // 跳过OP
CLIP_TYPE_ED = 2; // 跳过ED
CLIP_TYPE_HE = 3; //
CLIP_TYPE_MULTI_VIEW = 4; //
CLIP_TYPE_AD = 5; //
}
// 编码类型
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;
//
int64 otype = 11;
//
string amount = 12;
}
// 优惠券信息
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;
// DRM widevine 密钥
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 DataControl {
//
bool need_watch_progress = 1;
}
// 鉴权浮层
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;
//
repeated PlayList play_list = 15;
}
// 鉴权浮层配置
message DialogConfig {
// 是否显示高斯模糊背景图
bool is_show_cover = 1;
// 是否响应转屏
bool is_orientation_enable = 2;
// 是否响应上滑吸顶
bool is_nested_scroll_enable = 3;
// 是否强制竖屏
bool is_force_halfscreen_enable = 4;
// 是否启用背景半透明
bool is_background_translucent_enable = 5;
}
// 当前分辨率信息
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;
}
// DRM技术类型
enum DrmTechType {
NON = 0; //
FAIR_PLAY = 1; //
WIDE_VINE = 2; //
BILI_DRM = 3; //
}
// 播放结束后的尾页Dialog
message EndPage {
//
Dialog dialog = 1;
//
bool hide = 2;
}
//
message EpInlineVideo {
//
int64 material_no = 1;
//
int64 aid = 2;
//
int64 cid = 3;
}
// 剧集广告信息
message EpisodeAdvertisementInfo {
//
int64 aid = 1;
//
string title = 2;
//
string link = 3;
//
int32 follow_video_bnt_flag = 4;
//
string next_video_title = 5;
//
string next_video_link = 6;
//
int64 cid = 7;
//
int32 season_id = 8;
//
int32 follow = 9;
}
// EP信息
message EpisodeInfo {
//
int32 ep_id = 1;
//
int64 cid = 2;
//
int64 aid = 3;
//
int64 ep_status = 4;
//
SeasonInfo season_info = 5;
//
string cover = 6;
//
string title = 7;
//
Interaction interaction = 8;
//
string long_title = 9;
}
//
message EpPreVideo {
//
int64 aid = 1;
//
int64 cid = 2;
}
//
message EpPublicityVideo {
//
enum Type {
DATA_NOT_SET = 0;
EP_PRE_VIDEO = 2;
EP_INLINE = 3;
}
//
Type type = 1;
//
oneof data {
//
EpPreVideo ep_pre_video = 2;
//
EpInlineVideo ep_inline_video = 3;
}
}
//
enum EpPublicityVideoType {
//
PRE = 0;
//
INLINE = 1;
}
// 事件
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 HistoryNode {
// 节点ID
int64 node_id = 1;
// 节点标题
string title = 2;
// 对应CID
int64 cid = 3;
}
// 图片信息
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 Interaction {
// 历史节点
HistoryNode history_node = 1;
// 版本
int64 graph_version = 2;
// 交互消息
string msg = 3;
// 是否为交互
bool is_interaction = 4;
}
// 限制操作类型
enum LimitActionType {
//
LAT_UNKNOWN = 0;
//
SHOW_LIMIT_DIALOG = 1;
//
SKIP_CURRENT_EP = 2;
}
//
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;
// 巨屏图片信息
string giant_screen_img = 20;
}
// 禁用功能配置
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; // 色觉优化
bool dubbing_disable = 33; // 配音
}
// 云控扩展配置信息
message PlayAbilityExtConf {
//
bool allow_close_subtitle = 1;
//
FreyaConfig freya_config = 2;
//
CastTips cast_tips = 3;
}
// 播放配音信息
message PlayDubbingInfo {
// 背景音频
AudioMaterialProto background_audio = 1;
// 角色音频列表
repeated RoleAudioProto role_audio_list = 2;
// 引导文本
string guide_text = 3;
}
// 错误码
enum PlayErr {
NoErr = 0; //
WithMultiDeviceLoginErr = 1; // 管控类型的错误码
}
// 播放扩展信息
message PlayExtInfo {
// 播放配音信息
PlayDubbingInfo play_dubbing_info = 1;
}
//
message PlayList {
//
int32 season_id = 1;
//
string title = 2;
//
string cover = 3;
//
string link = 4;
//
BadgeInfo badge_info = 5;
}
// 其他业务信息
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;
// DRM技术类型
DrmTechType drm_tech_type = 12;
//
int32 limit_action_type = 13;
//
bool is_drm = 14;
//
RecordInfo record_info = 15;
//
int32 vip_status = 16;
//
bool is_live_pre = 17;
//
EpisodeInfo episode_info = 18;
//
EpisodeAdvertisementInfo episode_advertisement_info = 19;
//
UserStatus user_status = 20;
}
// 播放页信息-响应
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;
// 播放扩展信息
PlayExtInfo play_ext_info = 7;
}
// 播放页信息-请求
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;
// DRM 安全等级
int32 security_level = 19;
//
int64 season_id = 20;
//
DataControl data_control = 21;
}
// 弹窗信息
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;
// 副标题前面的icon
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 RecordInfo {
// 记录
string record = 1;
// 记录图标
string record_icon = 2;
}
// 埋点上报信息
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 Rights {
// 是否可以观看
int32 can_watch = 1;
}
// 角色配音信息
message RoleAudioProto {
// 角色ID
int64 role_id = 1;
// 角色名称
string role_name = 2;
// 角色头像
string role_avatar = 3;
// 音频素材列表
repeated AudioMaterialProto audio_material_list = 4;
}
// 场景控制
message SceneControl {
// 是否收藏播单
bool fav_playlist = 1;
// 是否小窗
bool small_window = 2;
// 是否画中画
bool pip = 3;
//
bool was_he_inline = 4;
//
bool is_need_trial = 5;
}
// 方案
message Scheme {
enum ActionType {
UNKNOWN = 0;
SHOW_TOAST = 1;
}
//
ActionType action_type = 1;
//
string toast = 2;
}
// PGC SEASON 信息
message SeasonInfo {
// PGC SEASON ID
int32 season_id = 1;
// PGC SEASON 类型
int32 season_type = 2;
// PGC SEASON 状态
int32 season_status = 3;
// 封面
string cover = 4;
// 标题
string title = 5;
// 权限信息
Rights rights = 6;
// 模式
int32 mode = 7;
}
// DRM 安全等级
enum SecurityLevel {
LEVEL_UNKNOWN = 0; //
LEVEL_L1 = 1; //
LEVEL_L2 = 2; //
LEVEL_L3 = 3; //
}
// 分段视频流
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 {
// 视频质量
int32 quality = 1;
// 视频格式
string format = 2;
// 描述信息
string description = 3;
// 错误码
int32 err_code = 4;
// 流限制信息
StreamLimit limit = 5;
// 是否需要VIP
bool need_vip = 6;
// 是否需要登录
bool need_login = 7;
// 是否完整
bool intact = 8;
// 权限信息
int64 attribute = 10;
// 新版描述信息
string new_description = 11;
// 显示描述信息
string display_desc = 12;
// 上标
string superscript = 13;
// 方案信息
Scheme scheme = 14;
// 是否支持DRM
bool support_drm = 15;
// 字幕信息
string subtitle = 16;
}
// 清晰度不满足条件信息
message StreamLimit {
// 标题
string title = 1;
// 跳转地址
string uri = 2;
// 提示信息
string msg = 3;
}
// 任务参数信息
message TaskParam {
// 任务类型
string task_type = 1;
// 活动ID
int64 activity_id = 2;
// 提示ID
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按钮
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;
}
// 用户状态信息
message UserStatus {
// 是否支付
bool pay_check = 1;
// 是否承包
bool sponsor = 2;
// 观看进度
WatchProgress watch_progress = 3;
// 系列观看进度
WatchProgress aid_watch_progress = 4;
}
// 视频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;
// 未支付剧集ID列表
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;
// 动画
Animation animation = 12;
// Toast扩展
map<string, Toast> ext_toast = 13;
}
// 观看进度信息
message WatchProgress {
// 上次观看的 EP ID
int32 last_ep_id = 1;
// 上次观看到的EP INDEX
string last_ep_index = 2;
// 上次观看的进度
int64 progress = 3;
// 上次观看的 CID
int64 last_play_cid = 4;
// 带时间的提示信息
Toast toast = 5;
// 不带时间的提示信息
Toast toast_without_time = 6;
// 上次观看的 AID
int64 last_play_aid = 7;
}