add: new united playurl grpc interface (#642)

This commit is contained in:
陈寒彤 2023-03-28 04:08:46 +03:00 committed by GitHub
parent 280f69f7ee
commit 28e8a7cbf0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 2590 additions and 2485 deletions

View File

@ -0,0 +1,14 @@
syntax = "proto3";
package bilibili.app.playerunite.pgcanymodel;
import "bilibili/pgc/gateway/player/v2/playurl.proto";
message PGCAnyModel {
bilibili.pgc.gateway.player.v2.PlayViewBusinessInfo business = 3;
bilibili.pgc.gateway.player.v2.Event event = 4;
bilibili.pgc.gateway.player.v2.ViewInfo view_info = 5;
bilibili.pgc.gateway.player.v2.PlayAbilityExtConf play_ext_conf = 6;
bilibili.pgc.gateway.player.v2.PlayExtInfo play_ext_info = 7;
}

View File

@ -0,0 +1,27 @@
syntax = "proto3";
package bilibili.app.playerunite.ugcanymodel;
message ButtonStyle {
string text = 1;
string text_color = 2;
string bg_color = 3;
string jump_link = 4;
}
enum PlayLimitCode {
PLC_UNKNOWN = 0;
PLC_NOTPAYED = 1;
}
message PlayLimit {
PlayLimitCode code = 1;
string message = 2;
string sub_message = 3;
ButtonStyle button = 4;
}
message UGCAnyModel {
PlayLimit play_limit = 1;
}

View File

@ -0,0 +1,45 @@
syntax = "proto3";
package bilibili.app.playerunite.v1;
import "bilibili/playershared/playershared.proto";
import "google/protobuf/any.proto";
// url
service Player {
//
rpc PlayViewUnite (PlayViewUniteReq) returns (PlayViewUniteReply);
}
//
message PlayViewUniteReq {
// VOD信息
bilibili.playershared.VideoVod vod = 1;
//
string spmid = 2;
//
string from_spmid = 3;
// , ep_id等
map<string, string> extra_content = 4;
}
//
message PlayViewUniteReply {
//
bilibili.playershared.VodInfo vod_info = 1;
//
bilibili.playershared.PlayArcConf play_arc_conf = 2;
//
bilibili.playershared.PlayDeviceConf play_device_conf = 3;
//
bilibili.playershared.Event event = 4;
// 使 pgcanymodel / ugcanymodel proto any转换成对应业务码结构体
google.protobuf.Any supplement = 5;
//
bilibili.playershared.PlayArc play_arc = 6;
//
bilibili.playershared.QnTrialInfo qn_trial_info = 7;
//
bilibili.playershared.History history = 8;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,426 +1,445 @@
syntax = "proto3";
package bilibili.playershared;
message ArcConf {
bool is_support = 1;
bool disable = 2;
ExtraContent extra_connent = 3;
repeated int32 unsupport_scene = 4;
}
//
enum CodeType {
NOCODE = 0; //
CODE264 = 1; // H264
CODE265 = 2; // H265
CODEAV1 = 3; // AV1
}
//
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 {
// dash流
int32 switch_val = 1;
//
int32 selected_val = 2;
}
}
message DeviceConf {
ConfValue conf_value = 1;
}
// DRM类型
enum DrmTechType {
//
UNKNOWN_DRM = 0;
//
FAIR_PLAY = 1;
//
WIDE_VINE = 2;
// DRM
BILI_DRM = 3;
}
// ?
message ExtraContent {
//
string disable_reason = 1;
//
uint64 disable_code = 2;
}
//
message History {
//
uint64 progress = 1;
//
string toast = 2;
//
uint64 last_play_cid = 3;
}
message PlayDeviceConf {
map<int32, DeviceConf> arc_confs = 1;
}
//
enum PlayErr {
NoErr = 0; //
WithMultiDeviceLoginErr = 1; //
}
//
message Scheme {
enum ActionType {
UNKNOWN = 0;
SHOW_TOAST = 1;
}
ActionType action_type = 1;
string toast = 2;
}
//
enum UnsupportScene {
//
UNKNOWN_SCENE = 0;
//
PREMIERE = 1;
}
//
enum VideoType {
UNKNOWN = 0;
//
UGC = 1;
//
PGC = 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;
}
// 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 SegmentVideo {
repeated ResponseUrl segment = 1;
}
//
message ResponseUrl {
//
uint32 order = 1;
//
uint64 length = 2;
//
uint64 size = 3;
// 线
string url = 4;
//
repeated string backup_url = 5;
// md5
string md5 = 6;
}
// Dash Response, 使
message ResponseDash {
repeated DashItem video = 1;
repeated DashItem audio = 2;
}
// : :
message StreamLimit {
//
string title = 1;
//
string uri = 2;
//
string msg = 3;
}
// -: 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;
}
// -: 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;
}
//
message DolbyItem {
//
enum Type {
NONE = 0; // NONE
COMMON = 1; //
ATMOS = 2; //
}
//
Type type = 1;
//
DashItem audio = 2;
}
// HIRES伴音流信息
message LossLessItem {
// hires
bool is_lossless_audio = 1;
//
DashItem audio = 2;
//
bool need_vip = 3;
}
//
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;
}
//
message PlayArc {
VideoType video_type = 1;
uint64 aid = 2;
uint64 cid = 3;
DrmTechType drm_tech_type = 4;
}
// -: PlayArcConf
message PlayArcConf {
map<int32, PlayArc> arc_confs = 1;
}
// :
message QnTrialButton {
string text = 1;
string link = 2;
}
// -:
message QnTrialInfo {
//
bool trial_able = 1;
//
int32 remaining_times = 2;
//
int32 start = 3;
//
int32 time_length = 4;
//
QnTrialToast start_toast = 5;
//
QnTrialToast end_toast = 6;
//
QnTrialButton quality_open_tip_btn = 8;
}
// : Toast信息
message QnTrialToast {
// toast文案
string text = 1;
// toast按钮
QnTrialButton button = 2;
}
//
message Event {
//
Shake shake = 1;
}
//
message Shake {
//
string file = 1;
}
syntax = "proto3";
package bilibili.playershared;
//
message ArcConf {
bool is_support = 1;
bool disable = 2;
ExtraContent extra_content = 3;
repeated int32 unsupport_scene = 4;
}
//
message Button {
//
string text = 1;
//
string link = 2;
//
map<string, string> report_params = 3;
}
//
enum CodeType {
NOCODE = 0; //
CODE264 = 1; // H264
CODE265 = 2; // H265
CODEAV1 = 3; // AV1
}
//
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 {
// DASH流
int32 switch_val = 1;
//
int32 selected_val = 2;
}
}
//
message DeviceConf {
ConfValue conf_value = 1;
}
// DRM类型
enum DrmTechType {
//
UNKNOWN_DRM = 0;
//
FAIR_PLAY = 1;
//
WIDE_VINE = 2;
// DRM
BILI_DRM = 3;
}
// ?
message ExtraContent {
//
string disable_reason = 1;
//
uint64 disable_code = 2;
}
//
message History {
//
HistoryInfo current_video = 1;
//
HistoryInfo related_video = 2;
}
message HistoryInfo {
//
int64 progress = 1;
//
int64 last_play_cid = 2;
}
//
message PlayDeviceConf {
//
map<int32, DeviceConf> arc_confs = 1;
}
//
enum PlayErr {
NoErr = 0; //
WithMultiDeviceLoginErr = 1; //
}
//
message Scheme {
enum ActionType {
UNKNOWN = 0;
SHOW_TOAST = 1;
}
//
ActionType action_type = 1;
//
string toast = 2;
}
//
enum UnsupportScene {
//
UNKNOWN_SCENE = 0;
//
PREMIERE = 1;
}
//
enum VideoType {
UNKNOWN = 0;
//
UGC = 1;
//
PGC = 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;
}
// 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 SegmentVideo {
repeated ResponseUrl segment = 1;
}
//
message ResponseUrl {
//
uint32 order = 1;
//
uint64 length = 2;
//
uint64 size = 3;
// 线
string url = 4;
//
repeated string backup_url = 5;
// md5
string md5 = 6;
}
// Dash Response, 使
message ResponseDash {
repeated DashItem video = 1;
repeated DashItem audio = 2;
}
// : :
message StreamLimit {
//
string title = 1;
//
string uri = 2;
//
string msg = 3;
}
// -: 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;
}
// -: 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;
}
//
message DolbyItem {
//
enum Type {
NONE = 0; // NONE
COMMON = 1; //
ATMOS = 2; //
}
//
Type type = 1;
//
repeated DashItem audio = 2;
}
// HIRES伴音流信息
message LossLessItem {
// hires
bool is_lossless_audio = 1;
//
DashItem audio = 2;
//
bool need_vip = 3;
}
//
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;
}
//
message PlayArc {
//
VideoType video_type = 1;
//
uint64 aid = 2;
//
uint64 cid = 3;
//
DrmTechType drm_tech_type = 4;
}
// -: PlayArcConf
message PlayArcConf {
map<int32, ArcConf> arc_confs = 1;
}
// -:
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;
}
// Toast信息
message Toast {
// toast文案
string text = 1;
// toast按钮
Button button = 2;
}
//
message Event {
//
Shake shake = 1;
}
//
message Shake {
//
string file = 1;
}

File diff suppressed because it is too large Load Diff