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"; syntax = "proto3";
package bilibili.playershared; package bilibili.playershared;
//
message ArcConf { message ArcConf {
bool is_support = 1; bool is_support = 1;
bool disable = 2; bool disable = 2;
ExtraContent extra_connent = 3; ExtraContent extra_content = 3;
repeated int32 unsupport_scene = 4; repeated int32 unsupport_scene = 4;
} }
// //
enum CodeType { message Button {
NOCODE = 0; // //
CODE264 = 1; // H264 string text = 1;
CODE265 = 2; // H265 //
CODEAV1 = 3; // AV1 string link = 2;
} //
map<string, string> report_params = 3;
// }
enum ConfType {
NoType = 0; //
FLIPCONF = 1; enum CodeType {
CASTCONF = 2; NOCODE = 0; //
FEEDBACK = 3; CODE264 = 1; // H264
SUBTITLE = 4; CODE265 = 2; // H265
PLAYBACKRATE = 5; CODEAV1 = 3; // AV1
TIMEUP = 6; }
PLAYBACKMODE = 7;
SCALEMODE = 8; //
BACKGROUNDPLAY = 9; enum ConfType {
LIKE = 10; NoType = 0;
DISLIKE = 11; FLIPCONF = 1;
COIN = 12; CASTCONF = 2;
ELEC = 13; FEEDBACK = 3;
SHARE = 14; SUBTITLE = 4;
SCREENSHOT = 15; PLAYBACKRATE = 5;
LOCKSCREEN = 16; TIMEUP = 6;
RECOMMEND = 17; PLAYBACKMODE = 7;
PLAYBACKSPEED = 18; SCALEMODE = 8;
DEFINITION = 19; BACKGROUNDPLAY = 9;
SELECTIONS = 20; LIKE = 10;
NEXT = 21; DISLIKE = 11;
EDITDM = 22; COIN = 12;
SMALLWINDOW = 23; ELEC = 13;
SHAKE = 24; SHARE = 14;
OUTERDM = 25; SCREENSHOT = 15;
INNERDM = 26; LOCKSCREEN = 16;
PANORAMA = 27; RECOMMEND = 17;
DOLBY = 28; PLAYBACKSPEED = 18;
COLORFILTER = 29; DEFINITION = 19;
LOSSLESS = 30; SELECTIONS = 20;
FREYAENTER = 31; NEXT = 21;
FREYAFULLENTER = 32; EDITDM = 22;
SKIPOPED = 33; SMALLWINDOW = 23;
RECORDSCREEN = 34; SHAKE = 24;
DUBBING = 35; OUTERDM = 25;
LISTEN = 36; INNERDM = 26;
} PANORAMA = 27;
DOLBY = 28;
message ConfValue { COLORFILTER = 29;
oneof value { LOSSLESS = 30;
// dash流 FREYAENTER = 31;
int32 switch_val = 1; FREYAFULLENTER = 32;
// SKIPOPED = 33;
int32 selected_val = 2; RECORDSCREEN = 34;
} DUBBING = 35;
} LISTEN = 36;
}
message DeviceConf {
ConfValue conf_value = 1; //
} message ConfValue {
oneof value {
// DRM类型 // DASH流
enum DrmTechType { int32 switch_val = 1;
// //
UNKNOWN_DRM = 0; int32 selected_val = 2;
// }
FAIR_PLAY = 1; }
//
WIDE_VINE = 2; //
// DRM message DeviceConf {
BILI_DRM = 3; ConfValue conf_value = 1;
} }
// ? // DRM类型
message ExtraContent { enum DrmTechType {
// //
string disable_reason = 1; UNKNOWN_DRM = 0;
// //
uint64 disable_code = 2; FAIR_PLAY = 1;
} //
WIDE_VINE = 2;
// // DRM
message History { BILI_DRM = 3;
// }
uint64 progress = 1;
// // ?
string toast = 2; message ExtraContent {
// //
uint64 last_play_cid = 3; string disable_reason = 1;
} //
uint64 disable_code = 2;
message PlayDeviceConf { }
map<int32, DeviceConf> arc_confs = 1;
} //
message History {
// //
enum PlayErr { HistoryInfo current_video = 1;
NoErr = 0; // //
WithMultiDeviceLoginErr = 1; // HistoryInfo related_video = 2;
} }
// message HistoryInfo {
message Scheme { //
enum ActionType { int64 progress = 1;
UNKNOWN = 0; //
SHOW_TOAST = 1; int64 last_play_cid = 2;
} }
ActionType action_type = 1;
string toast = 2; //
} message PlayDeviceConf {
//
// map<int32, DeviceConf> arc_confs = 1;
enum UnsupportScene { }
//
UNKNOWN_SCENE = 0; //
// enum PlayErr {
PREMIERE = 1; NoErr = 0; //
} WithMultiDeviceLoginErr = 1; //
}
//
enum VideoType { //
UNKNOWN = 0; message Scheme {
// enum ActionType {
UGC = 1; UNKNOWN = 0;
// SHOW_TOAST = 1;
PGC = 2; }
} //
ActionType action_type = 1;
// //
message Stream { string toast = 2;
// }
StreamInfo stream_info = 1;
// //
oneof content { enum UnsupportScene {
// dash流 //
DashVideo dash_video = 2; UNKNOWN_SCENE = 0;
// //
SegmentVideo segment_video = 3; PREMIERE = 1;
} }
}
//
// : enum VideoType {
message StreamInfo { UNKNOWN = 0;
// //
uint32 quality = 1; UGC = 1;
// //
string format = 2; PGC = 2;
// }
string description = 3;
// //
uint32 err_code = 4; message Stream {
// //
StreamLimit limit = 5; StreamInfo stream_info = 1;
// vip //
bool need_vip = 6; oneof content {
// // dash流
bool need_login = 7; DashVideo dash_video = 2;
// //
bool intact = 8; SegmentVideo segment_video = 3;
// }
bool no_rexcode = 9; }
//
int64 attribute = 10; // :
// message StreamInfo {
string new_description = 11; //
// uint32 quality = 1;
string display_desc = 12; //
// string format = 2;
string superscript = 13; //
// string description = 3;
bool vip_free = 14; //
// uint32 err_code = 4;
string subtitle = 15; //
// StreamLimit limit = 5;
Scheme scheme = 16; // vip
// drm bool need_vip = 6;
bool support_drm = 17; //
} bool need_login = 7;
//
// Dash条目 bool intact = 8;
message DashItem { //
// bool no_rexcode = 9;
uint32 id = 1; //
// 线 int64 attribute = 10;
string base_url = 2; //
// string new_description = 11;
repeated string backup_url = 3; //
// string display_desc = 12;
uint32 bandwidth = 4; //
// id string superscript = 13;
uint32 codecid = 5; //
// md5 bool vip_free = 14;
string md5 = 6; //
// string subtitle = 15;
uint64 size = 7; //
// Scheme scheme = 16;
string frame_rate = 8; // drm
// DRM密钥 bool support_drm = 17;
string widevine_pssh = 9; }
}
// Dash条目
// : dash流 message DashItem {
message DashVideo { //
// 线 uint32 id = 1;
string base_url = 1; // 线
// string base_url = 2;
repeated string backup_url = 2; //
// repeated string backup_url = 3;
uint32 bandwidth = 3; //
// id uint32 bandwidth = 4;
uint32 codecid = 4; // id
// md5 uint32 codecid = 5;
string md5 = 5; // md5
// string md5 = 6;
uint64 size = 6; //
// id uint64 size = 7;
uint32 audio_id = 7; //
// string frame_rate = 8;
bool no_rexcode = 8; // DRM密钥
// string widevine_pssh = 9;
string frame_rate = 9; }
//
int32 width = 10; // : dash流
// message DashVideo {
int32 height = 11; // 线
// DRM密钥 string base_url = 1;
string widevine_pssh = 12; //
} repeated string backup_url = 2;
//
// : uint32 bandwidth = 3;
message SegmentVideo { // id
repeated ResponseUrl segment = 1; uint32 codecid = 4;
} // md5
string md5 = 5;
// //
message ResponseUrl { uint64 size = 6;
// // id
uint32 order = 1; uint32 audio_id = 7;
// //
uint64 length = 2; bool no_rexcode = 8;
// //
uint64 size = 3; string frame_rate = 9;
// 线 //
string url = 4; int32 width = 10;
// //
repeated string backup_url = 5; int32 height = 11;
// md5 // DRM密钥
string md5 = 6; string widevine_pssh = 12;
} }
// Dash Response, 使 // :
message ResponseDash { message SegmentVideo {
repeated DashItem video = 1; repeated ResponseUrl segment = 1;
repeated DashItem audio = 2; }
}
//
// : : message ResponseUrl {
message StreamLimit { //
// uint32 order = 1;
string title = 1; //
// uint64 length = 2;
string uri = 2; //
// uint64 size = 3;
string msg = 3; // 线
} string url = 4;
//
repeated string backup_url = 5;
// -: VOD // md5
message VideoVod { string md5 = 6;
// aid }
int32 aid = 1;
// cid // Dash Response, 使
int32 cid = 2; message ResponseDash {
// repeated DashItem video = 1;
uint64 qn = 3; repeated DashItem audio = 2;
// }
int32 fnver = 4;
// // : :
int32 fnval = 5; message StreamLimit {
// //
// 0: 1:flv下载 2:dash下载 string title = 1;
uint32 download = 6; //
// url强制是用域名 string uri = 2;
// 0:使ip 1:使http 2:使https //
int32 force_host = 7; string msg = 3;
// 4K }
bool fourk = 8;
//
CodeType prefer_codec_type = 9; // -: VOD
// message VideoVod {
uint64 voice_balance = 10; // aid
} int32 aid = 1;
// cid
// -: VOD音视频信息 int32 cid = 2;
message VodInfo { //
// uint64 qn = 3;
uint32 quality = 1; //
// int32 fnver = 4;
string format = 2; //
// int32 fnval = 5;
uint64 timelength = 3; //
// id // 0: 1:flv下载 2:dash下载
uint32 video_codecid = 4; uint32 download = 6;
// // url强制是用域名
repeated Stream stream_list = 5; // 0:使ip 1:使http 2:使https
// int32 force_host = 7;
repeated DashItem dash_audio = 6; // 4K
// bool fourk = 8;
DolbyItem dolby = 7; //
// CodeType prefer_codec_type = 9;
VolumeInfo volume = 8; //
// HIRES伴音流信息 uint64 voice_balance = 10;
LossLessItem loss_less_item = 9; }
}
// -: VOD音视频信息
// message VodInfo {
message DolbyItem { //
// uint32 quality = 1;
enum Type { //
NONE = 0; // NONE string format = 2;
COMMON = 1; // //
ATMOS = 2; // uint64 timelength = 3;
} // id
// uint32 video_codecid = 4;
Type type = 1; //
// repeated Stream stream_list = 5;
DashItem audio = 2; //
} repeated DashItem dash_audio = 6;
//
// HIRES伴音流信息 DolbyItem dolby = 7;
message LossLessItem { //
// hires VolumeInfo volume = 8;
bool is_lossless_audio = 1; // HIRES伴音流信息
// LossLessItem loss_less_item = 9;
DashItem audio = 2; }
//
bool need_vip = 3; //
} message DolbyItem {
//
// enum Type {
message VolumeInfo { NONE = 0; // NONE
// Measured integrated loudness COMMON = 1; //
double measured_i = 1; ATMOS = 2; //
// Measured loudness range }
double measured_lra = 2; //
// Measured true peak Type type = 1;
double measured_tp = 3; //
// Measured threshold repeated DashItem audio = 2;
double measured_threshold = 4; }
// Target offset gain(Gain is applied before the true-peak limiter) Offset()
double target_offset = 5; // HIRES伴音流信息
// Target integrated loudness message LossLessItem {
double target_i = 6; // hires
// Target true peak bool is_lossless_audio = 1;
double target_tp = 7; //
} DashItem audio = 2;
//
// bool need_vip = 3;
message PlayArc { }
VideoType video_type = 1;
uint64 aid = 2; //
uint64 cid = 3; message VolumeInfo {
DrmTechType drm_tech_type = 4; // Measured integrated loudness
} double measured_i = 1;
// Measured loudness range
// -: PlayArcConf double measured_lra = 2;
message PlayArcConf { // Measured true peak
map<int32, PlayArc> arc_confs = 1; double measured_tp = 3;
} // Measured threshold
double measured_threshold = 4;
// : // Target offset gain(Gain is applied before the true-peak limiter) Offset()
message QnTrialButton { double target_offset = 5;
string text = 1; // Target integrated loudness
string link = 2; double target_i = 6;
} // Target true peak
double target_tp = 7;
// -: }
message QnTrialInfo {
// //
bool trial_able = 1; message PlayArc {
// //
int32 remaining_times = 2; VideoType video_type = 1;
// //
int32 start = 3; uint64 aid = 2;
// //
int32 time_length = 4; uint64 cid = 3;
// //
QnTrialToast start_toast = 5; DrmTechType drm_tech_type = 4;
// }
QnTrialToast end_toast = 6;
// // -: PlayArcConf
QnTrialButton quality_open_tip_btn = 8; message PlayArcConf {
} map<int32, ArcConf> arc_confs = 1;
}
// : Toast信息
message QnTrialToast { // -:
// toast文案 message QnTrialInfo {
string text = 1; //
// toast按钮 bool trial_able = 1;
QnTrialButton button = 2; //
} int32 remaining_times = 2;
//
// int32 start = 3;
message Event { //
// int32 time_length = 4;
Shake shake = 1; //
} Toast start_toast = 5;
//
// Toast end_toast = 6;
message Shake { //
// Button quality_open_tip_btn = 8;
string file = 1; }
}
// 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