更新【proto文件】

This commit is contained in:
SocialSisterYi
2021-02-05 18:32:00 +08:00
parent 84eab33d9e
commit c454b3a409
18 changed files with 1919 additions and 1442 deletions

View File

@@ -2,6 +2,294 @@ syntax = "proto3";
package bilibili.app.card.v1;
//卡片信息
message Card {
oneof item {
//小封面条目
SmallCoverV5 smallCoverV5 = 1;
//
LargeCoverV1 largeCoverV1 = 2;
//
ThreeItemAllV2 threeItemAllV2 = 3;
//
ThreeItemV1 threeItemV1 = 4;
//
HotTopic hotTopic = 5;
//
DynamicHot dynamicHot = 6;
//
MiddleCoverV3 middleCoverV3 = 7;
//
LargeCoverV4 largeCoverV4 = 8;
//热门列表顶部按钮
PopularTopEntrance popularTopEntrance = 9;
//
RcmdOneItem rcmdOneItem = 10;
}
}
//小封面条目
message SmallCoverV5 {
//条目基本信息
Base base = 1;
//
string coverGif = 2;
//
Up up = 3;
//封面右下角标文案(时长)
string coverRightText1 = 4;
//右侧文案1UP主昵称
string rightDesc1 = 5;
//右侧文案2播放量 时间)
string rightDesc2 = 6;
//右侧推荐原因标签框
ReasonStyle rcmdReasonStyle = 7;
//
HotwordEntrance hotwordEntrance = 8;
//
ReasonStyle cornerMarkStyle = 9;
//右侧文案1图标id
int32 rightIcon1 = 10;
//右侧文案2图标id
int32 rightIcon2 = 11;
//
ReasonStyle leftCornerMarkStyle = 12;
}
//
message LargeCoverV1 {
//条目基本信息
Base base = 1;
//
string coverGif = 2;
//
Avatar avatar = 3;
//
string coverLeftText1 = 4;
//
string coverLeftText2 = 5;
//
string coverLeftText3 = 6;
//
string coverBadge = 7;
//
string topRcmdReason = 8;
//
string bottomRcmdReason = 9;
//
string desc = 10;
//
int32 officialIcon = 11;
//
int32 canPlay = 12;
//
ReasonStyle topRcmdReasonStyle = 13;
//
ReasonStyle bottomRcmdReasonStyle = 14;
//
ReasonStyle rcmdReasonStyleV2 = 15;
//
ReasonStyle leftCoverBadgeStyle = 16;
//
ReasonStyle rightCoverBadgeStyle = 17;
//
string coverBadge2 = 18;
//
LikeButton likeButton = 19;
//
int32 titleSingleLine = 20;
//
string coverRightText = 21;
}
//
message ThreeItemAllV2 {
//条目基本信息
Base base = 1;
//
ReasonStyle topRcmdReasonStyle = 2;
//
repeated TwoItemHV1Item item = 3;
}
//
message ThreeItemV1 {
//条目基本信息
Base base = 1;
//
int32 titleIcon = 2;
//
string moreUri = 3;
//
string moreText = 4;
//
repeated ThreeItemV1Item items = 5;
}
//
message HotTopic {
//条目基本信息
Base base = 1;
//
string desc = 2;
//
repeated HotTopicItem items = 3;
}
//
message DynamicHot {
//条目基本信息
Base base = 1;
//
string topLeftTitle = 2;
//
string desc1 = 3;
//
string desc2 = 4;
//
string moreUri = 5;
//
string moreText = 6;
//
repeated string covers = 7;
//
string coverRightText = 8;
//
ReasonStyle topRcmdReasonStyle = 9;
}
//
message MiddleCoverV3 {
//条目基本信息
Base base = 1;
//
string desc1 = 2;
//
string desc2 = 3;
//
ReasonStyle coverBadgeStyle = 4;
}
//
message LargeCoverV4 {
//条目基本信息
Base base = 1;
//
string coverLeftText1 = 2;
//
string coverLeftText2 = 3;
//
string coverLeftText3 = 4;
//
string coverBadge = 5;
//
int32 canPlay = 6;
//
Up up = 7;
//
string shortLink = 8;
//
string shareSubtitle = 9;
//
string playNumber = 10;
//
string bvid = 11;
//
string subParam = 12;
}
//热门列表顶部按钮
message PopularTopEntrance {
//条目基本信息
Base base = 1;
//按钮项
repeated EntranceItem items = 2;
}
//推荐
message RcmdOneItem {
//条目基本信息
Base base = 1;
//标签框信息
ReasonStyle topRcmdReasonStyle = 2;
//小封面推荐内容信息
SmallCoverRcmdItem item = 3;
}
//
message AdInfo {
//
int64 creativeId = 1;
@@ -112,27 +400,28 @@ message Avatar {
int32 defalutCover = 7;
}
//
//条目基本信息
message Base {
//
//卡片类型
string cardType = 1;
//
//卡片跳转类型?
string cardGoto = 2;
//
//跳转类型
//av:视频稿件 mid:用户空间
string goto = 3;
//
//目标参数
string param = 4;
//
//封面url
string cover = 5;
//
//标题
string title = 6;
//
//跳转uri
string uri = 7;
//
@@ -144,7 +433,7 @@ message Base {
//
PlayerArgs playerArgs = 10;
//
//条目排位序号
int64 idx = 11;
//
@@ -153,7 +442,8 @@ message Base {
//
Mask mask = 13;
//
//来源标识
//recommend:推荐 operation:管理?
string fromType = 14;
//
@@ -165,84 +455,50 @@ message Base {
//
Button descButton = 17;
//
//三点v4
ThreePointV4 threePointV4 = 18;
}
//
//气泡信息
message Bubble {
//
//文案
string bubbleContent = 1;
//
//版本
int32 version = 2;
//
//起始时间
int64 stime = 3;
}
//
//按钮信息
message Button {
//
//文案
string text = 1;
//
//参数
string param = 2;
//
string uri = 3;
//
//事件
string event = 4;
//
int32 selected = 5;
//
//类型
//2:
int32 type = 6;
//
//事件v2
string eventV2 = 7;
//
//关系信息
Relation relation = 8;
}
//
message Card {
oneof itemCase {
//
SmallCoverV5 smallCoverV5 = 1;
//
LargeCoverV1 largeCoverV1 = 2;
//
ThreeItemAllV2 threeItemAllV2 = 3;
//
ThreeItemV1 threeItemV1 = 4;
//
HotTopic hotTopic = 5;
//
DynamicHot dynamicHot = 6;
//
MiddleCoverV3 middleCoverV3 = 7;
//
LargeCoverV4 largeCoverV4 = 8;
//
PopularTopEntrance popularTopEntrance = 9;
//
RcmdOneItem rcmdOneItem = 10;
}
}
//
message CreativeContent {
//
@@ -288,75 +544,33 @@ message DislikeReason {
string name = 2;
}
//
message DynamicHot {
//
Base base = 1;
//
string topLeftTitle = 2;
//
string desc1 = 3;
//
string desc2 = 4;
//
string moreUri = 5;
//
string moreText = 6;
//
repeated string covers = 7;
//
string coverRightText = 8;
//
ReasonStyle topRcmdReasonStyle = 9;
}
//
//热门列表按钮信息
message EntranceItem {
//
//跳转类型
string goto = 1;
//
//图标url
string icon = 2;
//
//标题
string title = 3;
//
//入口模块id
string moduleId = 4;
//
//跳转uri
string uri = 5;
//
//入口id
int64 entranceId = 6;
//
//气泡信息
Bubble bubble = 7;
//
//入口类型?
int32 entranceType = 8;
}
//
message HotTopic {
//
Base base = 1;
//
string desc = 2;
//
repeated HotTopicItem items = 3;
}
//
message HotTopicItem {
//
@@ -387,111 +601,6 @@ message HotwordEntrance {
string icon = 4;
}
//
message LargeCoverV1 {
//
Base base = 1;
//
string coverGif = 2;
//
Avatar avatar = 3;
//
string coverLeftText1 = 4;
//
string coverLeftText2 = 5;
//
string coverLeftText3 = 6;
//
string coverBadge = 7;
//
string topRcmdReason = 8;
//
string bottomRcmdReason = 9;
//
string desc = 10;
//
int32 officialIcon = 11;
//
int32 canPlay = 12;
//
ReasonStyle topRcmdReasonStyle = 13;
//
ReasonStyle bottomRcmdReasonStyle = 14;
//
ReasonStyle rcmdReasonStyleV2 = 15;
//
ReasonStyle leftCoverBadgeStyle = 16;
//
ReasonStyle rightCoverBadgeStyle = 17;
//
string coverBadge2 = 18;
//
LikeButton likeButton = 19;
//
int32 titleSingleLine = 20;
//
string coverRightText = 21;
}
//
message LargeCoverV4 {
//
Base base = 1;
//
string coverLeftText1 = 2;
//
string coverLeftText2 = 3;
//
string coverLeftText3 = 4;
//
string coverBadge = 5;
//
int32 canPlay = 6;
//
Up up = 7;
//
string shortLink = 8;
//
string shareSubtitle = 9;
//
string playNumber = 10;
//
string bvid = 11;
//
string subParam = 12;
}
//
message LikeButton {
//
@@ -522,21 +631,6 @@ message Mask {
Button button = 2;
}
//
message MiddleCoverV3 {
//
Base base = 1;
//
string desc1 = 2;
//
string desc2 = 3;
//
ReasonStyle coverBadgeStyle = 4;
}
//
message PlayerArgs {
//
@@ -570,57 +664,37 @@ message PlayerArgs {
int64 seasonId = 11;
}
//
message PopularTopEntrance {
//
Base base = 1;
//
repeated EntranceItem items = 2;
}
//
message RcmdOneItem {
//
Base base = 1;
//
ReasonStyle topRcmdReasonStyle = 2;
//
SmallCoverRcmdItem item = 3;
}
//
//标签框信息
message ReasonStyle {
//
//文案
string text = 1;
//
//文字颜色
string textColor = 2;
//
//背景色
string bgColor = 3;
//
//边框色
string borderColor = 4;
//
//图标url
string iconUrl = 5;
//
//文字颜色-夜间
string textColorNight = 6;
//
//背景色-夜间
string bgColorNight = 7;
//
//边框色-夜间
string borderColorNight = 8;
//
//图标url-夜间
string iconNightUrl = 9;
//
//背景风格id
//1:无背景 2:有背景
int32 bgStyle = 10;
//
@@ -642,162 +716,94 @@ message ReasonStyle {
string leftIconType = 16;
}
//
//关系信息
message Relation {
//
//关系状态
int32 status = 1;
//
//是否关注
int32 isFollow = 2;
//
//是否粉丝
int32 isFollowed = 3;
}
//
//分享面板信息
message SharePlane {
//
//标题
string title = 1;
//
//副标贴文案(观看次数)
string shareSubtitle = 2;
//
//备注
string desc = 3;
//
//封面url
string cover = 4;
//
//稿件avid
int64 aid = 5;
//
//稿件bvid
string bvid = 6;
//
//允许分享方式
map<string,bool> shareTo = 7;
//
//UP主昵称
string author = 8;
//
//UP主UID
int64 authorId = 9;
//
//短连接
string shortLink = 10;
//
//播放次数文案
string playNumber = 11;
}
//
//小封面推荐内容信息
message SmallCoverRcmdItem {
//
//标题
string title = 1;
//
//封面url
string cover = 2;
//
//跳转uri
string uri = 3;
//
//参数
string param = 4;
//
//跳转类型
//av:视频稿件
string goto = 5;
//
//封面右下角标文案(时长)
string coverRightText1 = 6;
//
//右侧文案1UP主昵称
string rightDesc1 = 7;
//
//右侧文案2播放量 时间)
string rightDesc2 = 8;
//
string coverGif = 9;
//
//右侧文案1图标id
int32 rightIcon1 = 10;
//
//右侧文案2图标id
int32 rightIcon2 = 11;
}
//
message SmallCoverV5 {
//
Base base = 1;
//
string coverGif = 2;
//
Up up = 3;
//
string coverRightText1 = 4;
//
string rightDesc1 = 5;
//
string rightDesc2 = 6;
//
ReasonStyle rcmdReasonStyle = 7;
//
HotwordEntrance hotwordEntrance = 8;
//
ReasonStyle cornerMarkStyle = 9;
//
int32 rightIcon1 = 10;
//
int32 rightIcon2 = 11;
//
ReasonStyle leftCornerMarkStyle = 12;
}
//
message ThreeItemAllV2 {
//
Base base = 1;
//
ReasonStyle topRcmdReasonStyle = 2;
//
repeated TwoItemHV1Item item = 3;
}
//
message ThreeItemV1 {
//
Base base = 1;
//
int32 titleIcon = 2;
//
string moreUri = 3;
//
string moreText = 4;
//
repeated ThreeItemV1Item items = 5;
}
//
message ThreeItemV1Item {
//
//条目基本信息
Base base = 1;
//
@@ -824,7 +830,7 @@ message ThreePoint {
//
repeated DislikeReason feedbacks = 2;
//
//稍后再看
int32 watchLater = 3;
}
@@ -882,12 +888,12 @@ message ThreePointV3 {
int32 defaultId = 11;
}
//
//三点v4
message ThreePointV4 {
//
//分享面板信息
SharePlane sharePlane = 1;
//
//稍后再看
WatchLater watchLater = 2;
}
@@ -945,11 +951,11 @@ message Up {
string cooperation = 8;
}
//
//稍后再看信息
message WatchLater {
//
//稿件avid
int64 aid = 1;
//
//稿件bvid
string bvid = 2;
}

View File

@@ -3,27 +3,27 @@ syntax = "proto3";
package bilibili.app.playurl.v1;
//
//视频url
service PlayURL {
//获取播放界面配置
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayConf
rpc playConf (PlayConfReq) returns (PlayConfReply);
rpc PlayConf (PlayConfReq) returns (PlayConfReply);
//
//
rpc playConfEdit (PlayConfEditReq) returns (PlayConfEditReply);
rpc PlayConfEdit (PlayConfEditReq) returns (PlayConfEditReply);
//视频url
//获取视频url
//
rpc playURL (PlayURLReq) returns (PlayURLReply);
rpc PlayURL (PlayURLReq) returns (PlayURLReply);
//视频播放业务数据
//获取视频播放业务数据
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayView
rpc playView (PlayViewReq) returns (PlayViewReply);
rpc PlayView (PlayViewReq) returns (PlayViewReply);
//
//
rpc project (ProjectReq) returns (ProjectReply);
rpc Project (ProjectReq) returns (ProjectReply);
}
//获取播放界面配置-请求
@@ -59,10 +59,10 @@ message PlayURLReq {
//清晰度
int64 qn = 3;
//流类型
//视频流版本
int32 fnver = 4;
//
//视频流功能
int32 fnval = 5;
//下载模式
@@ -125,7 +125,7 @@ message PlayURLReply {
VideoType type = 13;
}
//-请求
//获取视频播放业务数据-请求
message PlayViewReq {
//稿件avid
int64 aid = 1;
@@ -166,7 +166,7 @@ message PlayViewReq {
CodeType preferCodecType = 12;
}
//-回复
//获取视频播放业务数据-回复
message PlayViewReply {
//视频流信息
VideoInfo info = 1;
@@ -261,16 +261,16 @@ message CloudConf {
FieldValue fieldValue = 3;
}
//
//编码类型
enum CodeType {
//
NOCODE_VALUE = 0;
//默认
NOCODE = 0;
//
CODE264_VALUE = 1;
//H.264
CODE264 = 1;
//
CODE265_VALUE = 2;
//H.265
CODE265 = 2;
}
//
@@ -388,7 +388,7 @@ message DashItem {
}
//dash视频流
message DashVideo{
message DashVideo {
//主线流
string baseUrl=1;
@@ -415,7 +415,7 @@ message DashVideo{
}
//杜比音频信息
message DolbyItem{
message DolbyItem {
//
int32 type=1;
@@ -424,7 +424,7 @@ message DolbyItem{
}
//事件
message Event{
message Event {
//震动
Shake shake=1;
}
@@ -459,95 +459,95 @@ message FormatDescription {
string superscript = 6;
}
//播放控件用户自定义配置
message PlayAbilityConf{
//
//禁用功能配置
message PlayAbilityConf {
//后台播放
bool backgroundPlayDisable=1;
//
//镜像反转
bool flipDisable=2;
//
//投屏
bool castDisable=3;
//
//反馈
bool feedbackDisable=4;
//
//字幕
bool subtitleDisable=5;
//
//播放速度
bool playbackRateDisable=6;
//
//定时停止
bool timeUpDisable=7;
//
//播放方式
bool playbackModeDisable=8;
//
//画面尺寸
bool scaleModeDisable=9;
//
//
bool likeDisable=10;
//
//
bool dislikeDisable=11;
//
//投币
bool coinDisable=12;
//
//充电
bool elecDisable=13;
//
//分享
bool shareDisable=14;
//
//截图
bool screenShotDisable=15;
//
//锁定
bool lockScreenDisable=16;
//
//相关推荐
bool recommendDisable=17;
//
//播放速度
bool playbackSpeedDisable=18;
//
//清晰度
bool definitionDisable=19;
//
//选集
bool selectionsDisable=20;
//
//下一集
bool nextDisable=21;
//
//编辑弹幕
bool editDmDisable=22;
//
//小窗
bool smallWindowDisable=23;
//
//震动
bool shakeDisable=24;
//
bool outerDmDisable=25;
//
bool innerDmDisable=26;
//
bool freyaEnterDisable=27;
//
//杜比音效
bool dolbyDisable=28;
}
//播放控件稿件配置
message PlayArcConf{
message PlayArcConf {
//后台播放
ArcConf backgroundPlayConf=1;
@@ -629,7 +629,7 @@ message PlayArcConf{
//
ArcConf freyaEnterConf=27;
//
//杜比音效
ArcConf dolbyConf=28;
}
@@ -679,7 +679,7 @@ message ResponseDash {
}
//分段流条目
message ResponseUrl{
message ResponseUrl {
//分段序号
uint32 order = 1;
@@ -700,19 +700,19 @@ message ResponseUrl{
}
//分段视频流
message SegmentVideo{
message SegmentVideo {
//分段视频流列表
repeated ResponseUrl segment=1;
}
//震动
message Shake{
message Shake {
//
string file=1;
}
//视频流信息
message Stream{
message Stream {
//元数据
StreamInfo info=1;
@@ -727,7 +727,7 @@ message Stream{
}
//流媒体元数据
message StreamInfo{
message StreamInfo {
//清晰度 qn
uint32 quality=1;
@@ -769,7 +769,7 @@ message StreamInfo{
}
//不满足条件信息
message Limit{
message Limit {
//
string title=1;
@@ -790,7 +790,7 @@ message UpgradeButton {
}
//互动视频升级提示
message UpgradeLimit{
message UpgradeLimit {
//错误码
int32 code =1;
@@ -805,7 +805,7 @@ message UpgradeLimit{
}
//视频url信息
message VideoInfo{
message VideoInfo {
//视频清晰度
uint32 quality=1;

View File

@@ -1,47 +1,48 @@
syntax = "proto3";
package bilibili.app.show.popular.v1;
package bilibili.app.show.v1;
import "bilibili/app/playurl/v1.proto";
import "bilibili/app/card/v1.proto";
//
//热门
service Popular {
//
//
rpc index (PopularResultReq) returns (PopularReply);
//热门列表
//https://app.bilibili.com/bilibili.app.show.v1.Popular/Index
rpc Index (PopularResultReq) returns (PopularReply);
}
//-请求
//热门列表-请求
message PopularResultReq {
//
//排位索引id为上此请求末尾项的idx
int64 idx = 1;
//
//登录标识
//1:未登陆用户第一页 2:登陆用户第一页
int32 loginEvent = 2;
//
//清晰度
int32 qn = 3;
//
//视频流版本
int32 fnver = 4;
//
//视频流功能
int32 fnval = 5;
//
//是否强制使用域名
int32 forceHost = 6;
//
//是否4K
int32 fourk = 7;
//
sfixed32 spmid = 8;
//
//上此请求末尾项的param
sfixed32 lastParam = 9;
//
//上此请求的ver
sfixed32 ver = 10;
//
@@ -60,80 +61,80 @@ message PopularResultReq {
bilibili.app.playurl.v1.PlayerArgs playerArgs = 15;
}
//-回复
//热门列表-回复
message PopularReply {
//
//卡片列表
repeated bilibili.app.card.v1.Card items = 1;
//
//配置信息
Config config = 2;
//
//版本?
string ver = 3;
}
//
//气泡信息
message Bubble {
//
//文案
string bubbleContent = 1;
//
//版本
int32 version = 2;
//
//起始时间
int64 stime = 3;
}
//
//配置信息
message Config {
//
//标题
string itemTitle = 1;
//
//底部文案
string bottomText = 2;
//
//底部图片url
string bottomTextCover = 3;
//
//底部跳转页url
string bottomTextUrl = 4;
//
//顶部按钮信息列表
repeated EntranceShow topItems = 5;
//
//头图url
string headImage = 6;
//
//当前页按钮信息
repeated EntranceShow pageItems = 7;
//
//?
int32 hit = 8;
}
//
//按钮信息
message EntranceShow {
//
//按钮图标url
string icon = 1;
//
//按钮名
string title = 2;
//
//入口模块id
string moduleId = 3;
//
//跳转uri
string uri = 4;
//
//气泡信息
Bubble bubble = 5;
//
//入口id
int64 entranceId = 6;
//
//头图url
string topPhoto = 7;
//
//入口类型?
int32 entranceType = 8;
}

View File

@@ -1,146 +1,153 @@
syntax = "proto3";
package bilibili.app.show.rank.v1;
package bilibili.app.show.v1;
//
//排行榜
service Rank {
//
//
rpc rankAll (RankAllResultReq) returns (RankListReply);
//全站排行榜
//https://app.bilibili.com/bilibili.app.show.v1.Rank/RankAll
rpc RankAll (RankAllResultReq) returns (RankListReply);
//
//
rpc rankRegion (RankRegionResultReq) returns (RankListReply);
//分区排行榜
//https://app.bilibili.com/bilibili.app.show.v1.Rank/RankRegion
rpc RankRegion (RankRegionResultReq) returns (RankListReply);
}
//-请求
//全站排行榜-请求
message RankAllResultReq {
//
//必须为"all"
string order = 1;
//
//页码
//默认1页
int32 pn = 2;
//
//每页项数
//默认100项最大100
int32 ps = 3;
}
//-请求
//分区排行榜-请求
message RankRegionResultReq {
//
//一级分区tid二级分区不可用
//0:全站
int32 rid = 1;
//
//页码
//默认1页
int32 pn = 2;
//
//每页项数
//默认100项最大100
int32 ps = 3;
}
//-回复
//排行榜信息-回复
message RankListReply {
//
//排行榜列表
repeated Item items = 1;
}
//
//排行榜列表项
message Item {
//
//标题
string title = 1;
//
//封面url
string cover = 2;
//
//参数稿件avid
string param = 3;
//
//跳转uri
string uri = 4;
//
//重定向url?
string redirectUrl = 5;
//
//跳转类型
//av:视频稿件
string goto = 6;
//
//播放数
int32 play = 7;
//
//弹幕数
int32 danmaku = 8;
//
//UP主UID
int64 mid = 9;
//
//UP主昵称
string name = 10;
//
//UP主头像url
string face = 11;
//
//评论数
int32 reply = 12;
//
//收藏数
int32 favourite = 13;
//
//发布时间
int64 pubDate = 14;
//
//分区tid
int32 rid = 15;
//
//子分区名
string rname = 16;
//
//视频总时长
int64 duration = 17;
//
//点赞数
int32 like = 18;
//
//1P cid
int64 cid = 19;
//
//综合评分
int64 pts = 20;
//
//合作视频文案
string cooperation = 21;
//
//属性位
int32 attribute = 22;
//
//UP主粉丝数
int64 follower = 23;
//
//UP主认证信息
OfficialVerify officialVerify = 24;
//
//同一UP收起子项列表
repeated Item children = 25;
//
//关系信息
Relation relation = 26;
}
//
//认证信息
message OfficialVerify {
//
//认证类型
//-1:无认证 0:个人认证 1:机构认证
int32 type = 1;
//
//认证信息
string desc = 2;
}
//
//关系信息
message Relation {
//
//关系状态id
int32 status = 1;
//
//是否关注
int32 isFollow = 2;
//
//是否粉丝
int32 isFollowed = 3;
}

View File

@@ -10,46 +10,8 @@ service PlayURL {
rpc PlayView (playViewReq) returns (PlayViewReply);
}
enum CodeType{
NOCODE = 0;
CODE264 = 1;
CODE265 = 2;
}
message PlayAbilityConf{
bool backgroundPlayDisable=1;
bool flipDisable=2;
bool castDisable=3;
bool feedbackDisable=4;
bool subtitleDisable=5;
bool playbackRateDisable=6;
bool timeUpDisable=7;
bool playbackModeDisable=8;
bool scaleModeDisable=9;
bool likeDisable=10;
bool dislikeDisable=11;
bool coinDisable=12;
bool elecDisable=13;
bool shareDisable=14;
bool screenShotDisable=15;
bool lockScreenDisable=16;
bool recommendDisable=17;
bool playbackSpeedDisable=18;
bool definitionDisable=19;
bool selectionsDisable=20;
bool nextDisable=21;
bool editDmDisable=22;
bool smallWindowDisable=23;
bool shakeDisable=24;
bool outerDmDisable=25;
bool innerDmDisable=26;
bool freyaEnterDisable=27;
bool dolbyDisable=28;
}
//获取播放url
//请求
message playViewReq{
//获取播放url-请求
message playViewReq {
//目标课程epid
int64 epid = 1;
@@ -59,10 +21,10 @@ message playViewReq{
//清晰度
int64 qn = 3;
//
//视频流版本
int32 fnver = 4;
//流类型
//视频流功能
int32 fnval = 5;
//下载模式
@@ -82,7 +44,7 @@ message playViewReq{
//
string fromSpmid = 10;
//
//青少年模式
int32 teenagersMode = 11;
//编码类型
@@ -91,11 +53,111 @@ message playViewReq{
//是否强制请求预览视频
bool isPreview = 13;
}
//回复
message PlayViewReply{
//获取播放url-回复
message PlayViewReply {
//视频信息
bilibili.app.playurl.v1.VideoInfo info = 1;
//播放界面配置
PlayAbilityConf PlayConf = 2;
}
//编码类型
enum CodeType {
//默认
NOCODE = 0;
//H.264
CODE264 = 1;
//H.265
CODE265 = 2;
}
//禁用功能配置
message PlayAbilityConf {
//后台播放
bool backgroundPlayDisable=1;
//镜像反转
bool flipDisable=2;
//投屏
bool castDisable=3;
//反馈
bool feedbackDisable=4;
//字幕
bool subtitleDisable=5;
//播放速度
bool playbackRateDisable=6;
//定时停止
bool timeUpDisable=7;
//播放方式
bool playbackModeDisable=8;
//画面尺寸
bool scaleModeDisable=9;
//赞
bool likeDisable=10;
//踩
bool dislikeDisable=11;
//投币
bool coinDisable=12;
//充电
bool elecDisable=13;
//分享
bool shareDisable=14;
//截图
bool screenShotDisable=15;
//锁定
bool lockScreenDisable=16;
//相关推荐
bool recommendDisable=17;
//播放速度
bool playbackSpeedDisable=18;
//清晰度
bool definitionDisable=19;
//选集
bool selectionsDisable=20;
//下一集
bool nextDisable=21;
//编辑弹幕
bool editDmDisable=22;
//小窗
bool smallWindowDisable=23;
//震动
bool shakeDisable=24;
//
bool outerDmDisable=25;
//
bool innerDmDisable=26;
//
bool freyaEnterDisable=27;
//杜比音效
bool dolbyDisable=28;
}

View File

@@ -2,6 +2,181 @@ syntax = "proto3";
package bilibili.community.service.dm.v1;
//弹幕
service DM {
//修改弹幕配置
//https://app.bilibili.com/bilibili.community.service.dm.v1.DM/DmPlayerConfig
rpc DmPlayerConfig (DmPlayerConfigReq) returns (Response);
//获取分段弹幕
//
rpc DmSegMobile (DmSegMobileReq) returns (DmSegMobileReply);
//获取弹幕元数据
//https://app.bilibili.com/bilibili.community.service.dm.v1.DM/DmView
rpc DmView (DmViewReq) returns (DmViewReply);
}
//修改弹幕配置-请求
message DmPlayerConfigReq{
//
int64 ts = 1;
//
PlayerDanmakuSwitch switch = 2;
//
PlayerDanmakuSwitchSave switchSave = 3;
//
PlayerDanmakuUseDefaultConfig useDefaultConfig = 4;
//
PlayerDanmakuAiRecommendedSwitch aiRecommendedSwitch = 5;
//
PlayerDanmakuAiRecommendedLevel aiRecommendedLevel = 6;
//
PlayerDanmakuBlocktop blocktop = 7;
//
PlayerDanmakuBlockscroll blockscroll = 8;
//
PlayerDanmakuBlockbottom blockbottom = 9;
//
PlayerDanmakuBlockcolorful blockcolorful = 10;
//
PlayerDanmakuBlockrepeat blockrepeat = 11;
//
PlayerDanmakuBlockspecial blockspecial = 12;
//
PlayerDanmakuOpacity opacity = 13;
//
PlayerDanmakuScalingfactor scalingfactor = 14;
//
PlayerDanmakuDomain domain = 15;
//
PlayerDanmakuSpeed speed = 16;
//
PlayerDanmakuEnableblocklist enableblocklist = 17;
//
InlinePlayerDanmakuSwitch inlinePlayerDanmakuSwitch = 18;
}
//修改弹幕配置-回复
message Response{
//
int32 code = 1;
//
string message = 2;
}
//获取分段弹幕-请求
message DmSegMobileReq{
//稿件avid/漫画epid
int64 pid = 1;
//视频cid/漫画cid
int64 oid = 2;
//弹幕类型
//1:视频 2:漫画
int32 type = 3;
//分段序号
int64 segmentIndex = 4;
//是否青少年模式
int32 teenagersMode = 5;
}
//获取分段弹幕-回复
message DmSegMobileReply{
//弹幕条目
repeated DanmakuElem elems = 1;
//是否已关闭弹幕
//0:未关闭 1:已关闭
int32 state = 2;
//
DanmakuAIFlag aiFlag = 3;
}
//获取弹幕元数据-请求
message DmViewReq{
//稿件avid/漫画epid
int64 pid = 1;
//视频cid/漫画cid
int64 oid = 2;
//弹幕类型
//1:视频 2:漫画
int32 type = 3;
//页面spm
string spmid = 4;
//是否冷启
int32 isHardBoot = 5;
}
//获取弹幕元数据-回复
message DmViewReply{
//是否已关闭弹幕
//0:未关闭 1:已关闭
bool closed = 1;
//智能防挡弹幕蒙版信息
VideoMask mask = 2;
//视频字幕信息
VideoSubtitle subtitle = 3;
//高级弹幕专包url
repeated string specialDms = 4;
//云屏蔽配置信息
DanmakuFlagConfig aiFlag = 5;
//
DanmuPlayerViewConfig playerConfig = 6;
//
int32 sendBoxStyle = 7;
//是否允许
bool allow = 8;
//
string checkBox = 9;
//
string checkBoxShowMsg = 10;
//
string textPlaceholder = 11;
//弹幕输入框文案
string inputPlaceholder = 12;
//
repeated string reportFilterContent = 13;
}
//
message DanmakuAIFlag{
//
@@ -72,128 +247,231 @@ message DanmakuFlagConfig{
int32 recSwitch = 3;
}
//
message DanmuDefaultPlayerConfig{
//
bool playerDanmakuUseDefaultConfig = 1;
//
bool playerDanmakuAiRecommendedSwitch = 4;
//
int32 playerDanmakuAiRecommendedLevel = 5;
//
bool playerDanmakuBlocktop = 6;
//
bool playerDanmakuBlockscroll = 7;
//
bool playerDanmakuBlockbottom = 8;
//
bool playerDanmakuBlockcolorful = 9;
//
bool playerDanmakuBlockrepeat = 10;
//
bool playerDanmakuBlockspecial = 11;
//
float playerDanmakuOpacity = 12;
//
float playerDanmakuScalingfactor = 13;
//
float playerDanmakuDomain = 14;
//
int32 playerDanmakuSpeed = 15;
//
bool inlinePlayerDanmakuSwitch = 16;
}
//
message DanmuPlayerConfig{
//
bool playerDanmakuSwitch = 1;
//
bool playerDanmakuSwitchSave = 2;
//
bool playerDanmakuUseDefaultConfig = 3;
//
bool playerDanmakuAiRecommendedSwitch = 4;
//
int32 playerDanmakuAiRecommendedLevel = 5;
//
bool playerDanmakuBlocktop = 6;
//
bool playerDanmakuBlockscroll = 7;
//
bool playerDanmakuBlockbottom = 8;
//
bool playerDanmakuBlockcolorful = 9;
//
bool playerDanmakuBlockrepeat = 10;
//
bool playerDanmakuBlockspecial = 11;
//
float playerDanmakuOpacity = 12;
//
float playerDanmakuScalingfactor = 13;
//
float playerDanmakuDomain = 14;
//
int32 playerDanmakuSpeed = 15;
//
bool playerDanmakuEnableblocklist = 16;
//
bool inlinePlayerDanmakuSwitch = 17;
//
int32 inlinePlayerDanmakuConfig = 18;
}
//
message DanmuPlayerDynamicConfig{
//
int32 progress = 1;
//
float playerDanmakuDomain = 2;
}
//
message DanmuPlayerViewConfig{
//
DanmuDefaultPlayerConfig danmukuDefaultPlayerConfig = 1;
//
DanmuPlayerConfig danmukuPlayerConfig = 2;
//
repeated DanmuPlayerDynamicConfig danmukuPlayerDynamicConfig = 3;
}
//
message InlinePlayerDanmakuSwitch{
//
bool value = 1;
}
//
message PlayerDanmakuAiRecommendedLevel{
//
bool value = 1;
}
//
message PlayerDanmakuAiRecommendedSwitch{
//
bool value = 1;
}
//
message PlayerDanmakuBlockbottom{
//
bool value = 1;
}
//
message PlayerDanmakuBlockcolorful{
//
bool value = 1;
}
//
message PlayerDanmakuBlockrepeat{
//
bool value = 1;
}
//
message PlayerDanmakuBlockscroll{
//
bool value = 1;
}
//
message PlayerDanmakuBlockspecial{
//
bool value = 1;
}
//
message PlayerDanmakuBlocktop{
//
bool value = 1;
}
//
message PlayerDanmakuDomain{
//
float value = 1;
}
//
message PlayerDanmakuEnableblocklist{
//
bool value = 1;
}
//
message PlayerDanmakuOpacity{
//
float value = 1;
}
//
message PlayerDanmakuScalingfactor{
//
float value = 1;
}
//
message PlayerDanmakuSpeed{
//
int32 value = 1;
}
//
message PlayerDanmakuSwitch{
//
bool value = 1;
}
//
message PlayerDanmakuSwitchSave{
//
bool value = 1;
}
//
message PlayerDanmakuUseDefaultConfig{
//
bool value = 1;
}
message Response{
int32 code = 1;
string message = 2;
}
//单个字幕信息
message SubtitleItem{
//字幕id
@@ -265,123 +543,4 @@ message VideoSubtitle{
//视频字幕列表
repeated SubtitleItem subtitles = 3;
}
//修改弹幕配置
//https://app.bilibili.com/bilibili.community.service.dm.v1.DM/DmPlayerConfig
//请求
message DmPlayerConfigReq{
int64 ts = 1;
PlayerDanmakuSwitch switch = 2;
PlayerDanmakuSwitchSave switchSave = 3;
PlayerDanmakuUseDefaultConfig useDefaultConfig = 4;
PlayerDanmakuAiRecommendedSwitch aiRecommendedSwitch = 5;
PlayerDanmakuAiRecommendedLevel aiRecommendedLevel = 6;
PlayerDanmakuBlocktop blocktop = 7;
PlayerDanmakuBlockscroll blockscroll = 8;
PlayerDanmakuBlockbottom blockbottom = 9;
PlayerDanmakuBlockcolorful blockcolorful = 10;
PlayerDanmakuBlockrepeat blockrepeat = 11;
PlayerDanmakuBlockspecial blockspecial = 12;
PlayerDanmakuOpacity opacity = 13;
PlayerDanmakuScalingfactor scalingfactor = 14;
PlayerDanmakuDomain domain = 15;
PlayerDanmakuSpeed speed = 16;
PlayerDanmakuEnableblocklist enableblocklist = 17;
InlinePlayerDanmakuSwitch inlinePlayerDanmakuSwitch = 18;
}
//获取分段弹幕
//请求
message DmSegMobileReq{
//稿件avid/漫画epid
int64 pid = 1;
//视频cid/漫画cid
int64 oid = 2;
//弹幕类型
//1:视频 2:漫画
int32 type = 3;
//分段序号
int64 segmentIndex = 4;
//是否青少年模式
int32 teenagersMode = 5;
}
//回复
message DmSegMobileReply{
//弹幕条目
repeated DanmakuElem elems = 1;
//是否已关闭弹幕
//0:未关闭 1:已关闭
int32 state = 2;
//
DanmakuAIFlag aiFlag = 3;
}
//获取弹幕元数据
//https://app.bilibili.com/bilibili.community.service.dm.v1.DM/DmView
//请求
message DmViewReq{
//稿件avid/漫画epid
int64 pid = 1;
//视频cid/漫画cid
int64 oid = 2;
//弹幕类型
//1:视频 2:漫画
int32 type = 3;
//页面spm
string spmid = 4;
//是否冷启
int32 isHardBoot = 5;
}
//回复
message DmViewReply{
//是否已关闭弹幕
//0:未关闭 1:已关闭
bool closed = 1;
//智能防挡弹幕蒙版信息
VideoMask mask = 2;
//视频字幕信息
VideoSubtitle subtitle = 3;
//高级弹幕专包url
repeated string specialDms = 4;
//云屏蔽配置信息
DanmakuFlagConfig aiFlag = 5;
//
DanmuPlayerViewConfig playerConfig = 6;
//
int32 sendBoxStyle = 7;
//是否允许
bool allow = 8;
//
string checkBox = 9;
//
string checkBoxShowMsg = 10;
//
string textPlaceholder = 11;
//弹幕输入框文案
string inputPlaceholder = 12;
//
repeated string reportFilterContent = 13;
}

View File

@@ -18,6 +18,10 @@ service Reply {
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DialogList
rpc DialogList(DialogListReq) returns (DialogListReply);
//
//
rpc previewList (PreviewListReq) returns (PreviewListReply);
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItemPreHook
rpc SearchItemPreHook(SearchItemPreHookReq) returns (SearchItemPreHookReply);
@@ -27,6 +31,213 @@ service Reply {
rpc SearchItem(SearchItemReq) returns (SearchItemReply);
}
//主评论列表-请求
message MainListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//页面游标
CursorReq cursor = 3;
//
string extra = 4;
//
string adExtra = 5;
//
int64 rpid = 6;
}
//主评论列表-回复
message MainListReply{
//页面游标
CursorReply cursor = 1;
//评论列表
repeated ReplyInfo replies = 2;
//评论区显示控制
SubjectControl subjectControl = 3;
//UP置顶评论
ReplyInfo upTop = 4;
//管理员置顶评论
ReplyInfo adminTop = 5;
//投票置顶评论
ReplyInfo voteTop = 6;
//
Notice notice = 7;
//抽奖评论
Lottery lottery = 8;
//
Activity activity = 9;
//
UpSelection upSelection = 10;
//
CM cm = 11;
}
//二级评论明细-请求
message DetailListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//根评论rpid
int64 root = 3;
//目标评论rpid
int64 rpid = 4;
//页面游标
CursorReq cursor = 5;
//来源标识
DetailListScene scene = 6;
}
//二级评论明细-回复
message DetailListReply{
//页面游标
CursorReply cursor = 1;
//评论区显示控制
SubjectControl subjectControl = 2;
//根评论信息(带二级评论)
ReplyInfo root = 3;
//
Activity activity = 4;
}
//对话评论树-请求
message DialogListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//根评论rpid
int64 root = 3;
//目标评论rpid
int64 rpid = 4;
//页面游标
CursorReq cursor = 5;
}
//对话评论树-回复
message DialogListReply{
//页面游标
CursorReply cursor = 1;
//评论区显示控制
SubjectControl subjectControl = 2;
//评论树列表
repeated ReplyInfo replies = 3;
//
Activity activity = 4;
}
//?-请求
message PreviewListReq {
//
int64 oid = 1;
//
int64 type = 2;
//
CursorReq cursor = 3;
}
//?-回复
message PreviewListReply {
//
CursorReply cursor = 1;
//
repeated ReplyInfo replies = 2;
//
SubjectControl subjectControl = 3;
//
ReplyInfo upTop = 4;
//
ReplyInfo adminTop = 5;
//
ReplyInfo voteTop = 6;
}
//?-请求
message SearchItemPreHookReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
}
//?-回复
message SearchItemPreHookReply{
//
string placeholderText = 1;
//
string backgroundText = 2;
//
repeated SearchItemType orderedType = 3;
}
//搜索评论区插入项目-请求
message SearchItemReq{
//页面游标
SearchItemCursorReq cursor = 1;
//目标评论区id
int64 oid = 2;
//评论区类型
int64 type = 3;
//搜索关键词
string keyword = 4;
}
//搜索评论区插入项目-回复
message SearchItemReply{
//
SearchItemCursorReply cursor = 1;
//
repeated SearchItem items = 2;
//
SearchItemReplyExtraInfo extra = 3;
}
//排序方式
enum Mode{
//
@@ -597,178 +808,4 @@ message SearchItem{
message SearchItemReplyExtraInfo{
//
string eventId = 1;
}
//主评论列表
//请求
message MainListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//页面游标
CursorReq cursor = 3;
//
string extra = 4;
//
string adExtra = 5;
//
int64 rpid = 6;
}
//回复
message MainListReply{
//页面游标
CursorReply cursor = 1;
//评论列表
repeated ReplyInfo replies = 2;
//评论区显示控制
SubjectControl subjectControl = 3;
//UP置顶评论
ReplyInfo upTop = 4;
//管理员置顶评论
ReplyInfo adminTop = 5;
//投票置顶评论
ReplyInfo voteTop = 6;
//
Notice notice = 7;
//抽奖评论
Lottery lottery = 8;
//
Activity activity = 9;
//
UpSelection upSelection = 10;
//
CM cm = 11;
}
//二级评论明细
//请求
message DetailListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//根评论rpid
int64 root = 3;
//目标评论rpid
int64 rpid = 4;
//页面游标
CursorReq cursor = 5;
//来源标识
DetailListScene scene = 6;
}
//回复
message DetailListReply{
//页面游标
CursorReply cursor = 1;
//评论区显示控制
SubjectControl subjectControl = 2;
//根评论信息(带二级评论)
ReplyInfo root = 3;
//
Activity activity = 4;
}
//对话评论树
//请求
message DialogListReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
//根评论rpid
int64 root = 3;
//目标评论rpid
int64 rpid = 4;
//页面游标
CursorReq cursor = 5;
}
//回复
message DialogListReply{
//页面游标
CursorReply cursor = 1;
//评论区显示控制
SubjectControl subjectControl = 2;
//评论树列表
repeated ReplyInfo replies = 3;
//
Activity activity = 4;
}
//搜索提示信息?
//请求
message SearchItemPreHookReq{
//目标评论区id
int64 oid = 1;
//评论区类型
int64 type = 2;
}
//回复
message SearchItemPreHookReply{
//
string placeholderText = 1;
//
string backgroundText = 2;
//
repeated SearchItemType orderedType = 3;
}
//搜索评论区插入项目
//请求
message SearchItemReq{
//页面游标
SearchItemCursorReq cursor = 1;
//目标评论区id
int64 oid = 2;
//评论区类型
int64 type = 3;
//搜索关键词
string keyword = 4;
}
//回复
message SearchItemReply{
//
SearchItemCursorReply cursor = 1;
//
repeated SearchItem items = 2;
//
SearchItemReplyExtraInfo extra = 3;
}

View File

@@ -0,0 +1,184 @@
syntax = "proto3";
package bilibili.metadata;
/**********环境参数1**********/
//x-bili-device-bin
message Device{
//产品id
int32 appId = 1;
//构建id
int32 build = 2;
//设备buvid
string buvid = 3;
//包类型
string mobiApp = 4;
//平台类型
string platform = 5;
//设备类型
string device = 6;
//渠道
string channel = 7;
//品牌
string brand = 8;
//型号
string model = 9;
//系统版本
string osver = 10;
//
string fpLocal = 11;
//
string fpRemote = 12;
//APP版本号
string versionName = 13;
}
/**********环境参数2**********/
//x-bili-metadata-bin
message Metadata{
//登录Token
string accessKey = 1;
//包类型
string mobiApp = 2;
//设备类型
string device = 3;
//构建id
int32 build = 4;
//渠道
string channel = 5;
//设备buvid
string buvid = 6;
//平台类型
string platform = 7;
}
/**********区域标识**********/
//x-bili-locale-bin
message Locale {
//App设置的locale
LocaleIds c_locale = 1;
//系统默认的locale
LocaleIds s_locale = 2;
//sim卡的国家码+运营商码
string sim_code = 3;
//时区
string timezone = 4;
}
//
message LocaleIds{
//
string language = 1;
//
string script = 2;
//
string region = 3;
}
/**********网络类型标识**********/
//x-bili-network-bin
message Network{
//网络类型
Type type = 1;
//免流类型
TFType tf = 2;
//运营商
string oid = 3;
}
//网络类型
enum Type{
//未知
NT_UNKNOWN = 0;
//wifi
WIFI = 1;
//蜂窝网络
CELLULAR = 2;
//未连接
OFFLINE = 3;
//以太网
ETHERNET = 5;
//其他
OTHERNET = 4;
}
//免流类型
enum TFType {
//正常计费
TF_UNKNOWN = 0;
//联通卡
U_CARD = 1;
//联通包
U_PKG = 2;
//移动卡
C_CARD = 3;
//移动包
C_PKG = 4;
//电信卡
T_CARD = 5;
//电信包
T_PKG = 6;
}
/**********限制条件**********/
message Restriction {
//青少年模式开关状态
bool teenagers_mode = 1;
//课堂模式开关状态
bool lessons_mode = 2;
//模式类型
ModeType mode = 3;
//app审核review状态
bool review = 4;
}
//模式类型
enum ModeType{
//正常
NORMAL = 0;
//青少年模式
TEENAGERS = 1;
//课堂模式
LESSONS = 2;
}

View File

@@ -1,46 +0,0 @@
syntax = "proto3";
package bilibili.metadata.device;
//环境参数1
//x-bili-device-bin
message Device{
//产品id
int32 appId = 1;
//构建id
int32 build = 2;
//设备buvid
string buvid = 3;
//包类型
string mobiApp = 4;
//平台类型
string platform = 5;
//设备类型
string device = 6;
//渠道
string channel = 7;
//品牌
string brand = 8;
//型号
string model = 9;
//系统版本
string osver = 10;
//
string fpLocal = 11;
//
string fpRemote = 12;
//APP版本号
string versionName = 13;
}

View File

@@ -1,30 +0,0 @@
syntax = "proto3";
package bilibili.metadata.locale;
message LocaleIds{
//
string language = 1;
//
string script = 2;
//
string region = 3;
}
//区域标识
//x-bili-locale-bin
message Locale {
//App设置的locale
LocaleIds c_locale = 1;
//系统默认的locale
LocaleIds s_locale = 2;
//sim卡的国家码+运营商码
string sim_code = 3;
//时区
string timezone = 4;
}

View File

@@ -1,28 +0,0 @@
syntax = "proto3";
package bilibili.metadata;
//环境参数2
//x-bili-metadata-bin
message Metadata{
//登录Token
string accessKey = 1;
//包类型
string mobiApp = 2;
//设备类型
string device = 3;
//构建id
int32 build = 4;
//渠道
string channel = 5;
//设备buvid
string buvid = 6;
//平台类型
string platform = 7;
}

View File

@@ -1,61 +0,0 @@
syntax = "proto3";
package bilibili.metadata.network;
//网络类型
enum Type{
//未知
NT_UNKNOWN = 0;
//wifi
WIFI = 1;
//蜂窝网络
CELLULAR = 2;
//未连接
OFFLINE = 3;
//以太网
ETHERNET = 5;
//其他
OTHERNET = 4;
}
//免流类型
enum TFType {
//正常计费
TF_UNKNOWN = 0;
//联通卡
U_CARD = 1;
//联通包
U_PKG = 2;
//移动卡
C_CARD = 3;
//移动包
C_PKG = 4;
//电信卡
T_CARD = 5;
//电信包
T_PKG = 6;
}
//网络类型标识
//x-bili-network-bin
message Network{
//网络类型
Type type = 1;
//免流类型
TFType tf = 2;
//运营商
string oid = 3;
}

View File

@@ -1,30 +0,0 @@
syntax = "proto3";
package bilibili.metadata.restriction;
//模式类型
enum ModeType{
//正常
NORMAL = 0;
//青少年模式
TEENAGERS = 1;
//课堂模式
LESSONS = 2;
}
//限制条件
message Restriction {
//青少年模式开关状态
bool teenagers_mode = 1;
//课堂模式开关状态
bool lessons_mode = 2;
//模式类型
ModeType mode = 3;
//app审核review状态
bool review = 4;
}

View File

@@ -1,349 +1,18 @@
//https://app.bilibili.com/bilibili.pgc.gateway.player.v2.PlayURL/PlayView
syntax = "proto3";
package bilibili.pgc.gateway.player.v2;
import "google/protobuf/timestamp.proto";
enum CodeType{
NOCODE = 0;
CODE264 = 1;
CODE265 = 2;
//播放url
service PlayURL {
//获取播放url
//https://app.bilibili.com/bilibili.pgc.gateway.player.v2.PlayURL/PlayView
rpc PlayView (PlayViewReq) returns (PlayViewReply);
}
//不满足条件信息
message Limit{
//
string title=1;
//
string uri=2;
//
string msg=3;
}
//流媒体元数据
message streamInfo{
//清晰度 qn
uint32 quality=1;
//格式
string format=2;
//格式描述
string description=3;
//错误码
uint32 errCode=4;
//不满足条件信息
Limit limit=5;
//是否需要vip
bool needVip=6;
//是否需要登录
bool needLogin=7;
//是否完整
bool intact=8;
//是否非全二压
bool noRexcode=9;
//
int64 attribute=10;
//新版格式描述
string newDescription=11;
//格式文字
string displayDesc=12;
//新版格式描述备注
string superscript=13;
}
//dash视频流
message DashVideo{
//主线流
string baseUrl=1;
//备用流
repeated string backupUrl=2;
//带宽
uint32 bandwidth=3;
//
uint32 codecid=4;
//md5
string md5=5;
//大小
uint64 size=6;
//
uint32 audioId=7;
//是否非全二压
bool noRexcode=8;
}
//分段流条目
message ResponseUrl{
//分段序号
uint32 order = 1;
//分段时长
uint64 length = 2;
//分段大小
uint64 size = 3;
//主线流
string url = 4;
//备用流
repeated string backupUrl = 5;
//md5
string md5 = 6;
}
//分段视频流
message SegmentVideo{
//分段视频流列表
repeated ResponseUrl segment=1;
}
//视频流信息
message stream{
//元数据
streamInfo info=1;
//dash流
DashVideo dashvideo=2;
//分段流
SegmentVideo segmentvideo=3;
}
//dash音频流
message DashAudio{
//音质id
uint32 id=1;
//主线流
string baseUrl=2;
//备用流
repeated string backupUrl=3;
//带宽
uint32 bandwidth=4;
//
uint32 codecid=5;
//md5
string md5=6;
//大小
uint64 size=7;
}
//杜比音频信息
message DolbyItem{
//
int32 type=1;
//音频流
DashAudio audio=2;
}
//视频url信息
message VideoInfo{
//视频清晰度
uint32 quality=1;
//视频格式
string format=2;
//视频时长
uint64 timelength=3;
//
uint32 videoCodecid=4;
//视频流
repeated stream streamList=5;
//伴音流
repeated DashAudio audio=6;
//杜比伴音流
DolbyItem dolby=7;
}
message PlayAbilityConf{
bool backgroundPlayDisable=1;
bool flipDisable=2;
bool castDisable=3;
bool feedbackDisable=4;
bool subtitleDisable=5;
bool playbackRateDisable=6;
bool timeUpDisable=7;
bool playbackModeDisable=8;
bool scaleModeDisable=9;
bool likeDisable=10;
bool dislikeDisable=11;
bool coinDisable=12;
bool elecDisable=13;
bool shareDisable=14;
bool screenShotDisable=15;
bool lockScreenDisable=16;
bool recommendDisable=17;
bool playbackSpeedDisable=18;
bool definitionDisable=19;
bool selectionsDisable=20;
bool nextDisable=21;
bool editDmDisable=22;
bool smallWindowDisable=23;
bool shakeDisable=24;
bool outerDmDisable=25;
bool innerDmDisable=26;
bool freyaEnterDisable=27;
bool dolbyDisable=28;
}
message PlayViewBusinessInfo{
bool isPreview=1;
bool bp=2;
string marlinToken=3;
}
message Shake{
string file=1;
}
message Event{
Shake shake=1;
}
message Report{
string showEventId=1;
string clickEventId=2;
string extends=3;
}
message BadgeInfo{
string text=1;
string bgColor=2;
string bgColorNight=3;
}
message ButtonInfo{
string text=1;
string textColor=2;
string textColorNight=3;
string bgColor=4;
string bgColorNight=5;
string link=6;
string actionType=7;
BadgeInfo badgeInfo=8;
Report report=9;
}
message DialogConfig{
bool isShowCover=1;
bool isOrientationEnable=2;
bool isNestedScrollEnable=3;
bool isForceHalfscreenEnable=4;
}
message TextInfo{
string text=1;
string textColor=2;
string textColorNight=3;
}
message ImageInfo{
string url=1;
}
message Dialog{
int64 code=1;
string msg=2;
string type=3;
string styleType=4;
DialogConfig config=5;
TextInfo title=6;
TextInfo subtitle=7;
ImageInfo image=8;
repeated ButtonInfo button=9;
ButtonInfo bottomDesc=10;
Report report=11;
int32 countDownSec=12;
}
message Toast{
string text=1;
ButtonInfo button=2;
}
message CouponTextInfo{
string positivePreview=1;
string section=2;
}
message CouponToast{
CouponTextInfo textInfo=1;
ButtonInfo button=2;
}
message Coupon{
string couponToken=1;
int64 type=2;
string value=3;
string useDesc=4;
string title=5;
string desc=6;
string payButtonText=7;
string payButtonTextLineThrough=8;
string realAmount=9;
google.protobuf.Timestamp expireTime=10;
}
message PopWin{
string title=1;
repeated Coupon coupon=2;
repeated ButtonInfo button=3;
string bottomText=4;
}
message CouponInfo{
CouponToast toast=1;
PopWin popWin=2;
}
message EndPage{
Dialog dialog=1;
bool hide=2;
}
message ViewInfo{
Dialog dialog=1;
Toast toast=2;
CouponInfo couponInfo=3;
repeated int64 demandNoPayEpids=4;
EndPage endPage=5;
}
//请求
message playViewReq{
//获取播放url-请求
message PlayViewReq{
//目标剧集epid
int64 epid = 1;
@@ -353,10 +22,10 @@ message playViewReq{
//清晰度
int64 qn = 3;
//
//视频流版本
int32 fnver = 4;
//流类型
//视频流功能
int32 fnval = 5;
//下载模式
@@ -390,20 +59,558 @@ message playViewReq{
//
bool isNeedViewInfo = 15;
}
//回复
//获取播放url-回复
message PlayViewReply{
//视频流信息
VideoInfo info=1;
VideoInfo info = 1;
//用户播放界面配置
PlayAbilityConf PlayConf=2;
PlayAbilityConf PlayConf = 2;
//
PlayViewBusinessInfo Business=3;
PlayViewBusinessInfo Business = 3;
//
Event event=4;
Event event = 4;
//
ViewInfo viewInfo=5;
ViewInfo viewInfo = 5;
}
//编码类型
enum CodeType {
//默认
NOCODE = 0;
//H.264
CODE264 = 1;
//H.265
CODE265 = 2;
}
//不满足条件信息
message Limit {
//
string title = 1;
//
string uri = 2;
//
string msg = 3;
}
//流媒体元数据
message streamInfo {
//清晰度 qn
uint32 quality = 1;
//格式
string format = 2;
//格式描述
string description = 3;
//错误码
uint32 errCode = 4;
//不满足条件信息
Limit limit = 5;
//是否需要vip
bool needVip = 6;
//是否需要登录
bool needLogin = 7;
//是否完整
bool intact = 8;
//是否非全二压
bool noRexcode = 9;
//
int64 attribute = 10;
//新版格式描述
string newDescription = 11;
//格式文字
string displayDesc = 12;
//新版格式描述备注
string superscript = 13;
}
//dash视频流
message DashVideo {
//主线流
string baseUrl = 1;
//备用流
repeated string backupUrl = 2;
//带宽
uint32 bandwidth = 3;
//
uint32 codecid = 4;
//md5
string md5 = 5;
//大小
uint64 size = 6;
//
uint32 audioId = 7;
//是否非全二压
bool noRexcode = 8;
}
//分段流条目
message ResponseUrl {
//分段序号
uint32 order = 1;
//分段时长
uint64 length = 2;
//分段大小
uint64 size = 3;
//主线流
string url = 4;
//备用流
repeated string backupUrl = 5;
//md5
string md5 = 6;
}
//分段视频流
message SegmentVideo {
//分段视频流列表
repeated ResponseUrl segment = 1;
}
//视频流信息
message stream {
//元数据
streamInfo info = 1;
//dash流
DashVideo dashvideo = 2;
//分段流
SegmentVideo segmentvideo = 3;
}
//dash音频流
message DashAudio {
//音质id
uint32 id = 1;
//主线流
string baseUrl = 2;
//备用流
repeated string backupUrl = 3;
//带宽
uint32 bandwidth = 4;
//
uint32 codecid = 5;
//md5
string md5 = 6;
//大小
uint64 size = 7;
}
//杜比音频信息
message DolbyItem {
//
int32 type = 1;
//音频流
DashAudio audio = 2;
}
//视频url信息
message VideoInfo {
//视频清晰度
uint32 quality = 1;
//视频格式
string format = 2;
//视频时长
uint64 timelength = 3;
//
uint32 videoCodecid = 4;
//视频流
repeated stream streamList = 5;
//伴音流
repeated DashAudio audio = 6;
//杜比伴音流
DolbyItem dolby = 7;
}
//禁用功能配置
message PlayAbilityConf{
//后台播放
bool backgroundPlayDisable = 1;
//镜像反转
bool flipDisable = 2;
//投屏
bool castDisable = 3;
//反馈
bool feedbackDisable = 4;
//字幕
bool subtitleDisable = 5;
//播放速度
bool playbackRateDisable = 6;
//定时停止
bool timeUpDisable = 7;
//播放方式
bool playbackModeDisable = 8;
//画面尺寸
bool scaleModeDisable = 9;
//赞
bool likeDisable = 10;
//踩
bool dislikeDisable = 11;
//投币
bool coinDisable = 12;
//充电
bool elecDisable = 13;
//分享
bool shareDisable = 14;
//截图
bool screenShotDisable = 15;
//锁定
bool lockScreenDisable = 16;
//相关推荐
bool recommendDisable = 17;
//播放速度
bool playbackSpeedDisable = 18;
//清晰度
bool definitionDisable = 19;
//选集
bool selectionsDisable = 20;
//下一集
bool nextDisable = 21;
//编辑弹幕
bool editDmDisable = 22;
//小窗
bool smallWindowDisable = 23;
//震动
bool shakeDisable = 24;
//
bool outerDmDisable = 25;
//
bool innerDmDisable = 26;
//
bool freyaEnterDisable = 27;
//杜比音效
bool dolbyDisable = 28;
}
//
message PlayViewBusinessInfo {
//
bool isPreview = 1;
//
bool bp = 2;
//
string marlinToken = 3;
}
//
message Shake {
//
string file = 1;
}
//
message Event {
//
Shake shake = 1;
}
//
message Report {
//
string showEventId = 1;
//
string clickEventId = 2;
//
string extends = 3;
}
//
message BadgeInfo {
//
string text = 1;
//
string bgColor = 2;
//
string bgColorNight = 3;
}
//
message ButtonInfo {
//
string text = 1;
//
string textColor = 2;
//
string textColorNight = 3;
//
string bgColor = 4;
//
string bgColorNight = 5;
//
string link = 6;
//
string actionType = 7;
//
BadgeInfo badgeInfo = 8;
//
Report report = 9;
}
//
message DialogConfig {
//
bool isShowCover = 1;
//
bool isOrientationEnable = 2;
//
bool isNestedScrollEnable = 3;
//
bool isForceHalfscreenEnable = 4;
}
//
message TextInfo {
//
string text = 1;
//
string textColor = 2;
//
string textColorNight = 3;
}
//
message ImageInfo {
//
string url = 1;
}
//
message Dialog {
//
int64 code = 1;
//
string msg = 2;
//
string type = 3;
//
string styleType = 4;
//
DialogConfig config = 5;
//
TextInfo title = 6;
//
TextInfo subtitle = 7;
//
ImageInfo image = 8;
//
repeated ButtonInfo button = 9;
//
ButtonInfo bottomDesc = 10;
//
Report report = 11;
//
int32 countDownSec = 12;
}
//
message Toast {
//
string text = 1;
//
ButtonInfo button = 2;
}
//
message CouponTextInfo {
//
string positivePreview = 1;
//
string section = 2;
}
//
message CouponToast {
//
CouponTextInfo textInfo = 1;
//
ButtonInfo button = 2;
}
//
message Coupon {
//
string couponToken = 1;
//
int64 type = 2;
//
string value = 3;
//
string useDesc = 4;
//
string title = 5;
//
string desc = 6;
//
string payButtonText = 7;
//
string payButtonTextLineThrough = 8;
//
string realAmount = 9;
//
google.protobuf.Timestamp expireTime = 10;
}
//
message PopWin {
//
string title = 1;
//
repeated Coupon coupon = 2;
//
repeated ButtonInfo button = 3;
//
string bottomText = 4;
}
//
message CouponInfo {
//
CouponToast toast = 1;
//
PopWin popWin = 2;
}
//
message EndPage {
//
Dialog dialog = 1;
//
bool hide = 2;
}
//
message ViewInfo {
//
Dialog dialog = 1;
//
Toast toast = 2;
//
CouponInfo couponInfo = 3;
//
repeated int64 demandNoPayEpids = 4;
//
EndPage endPage = 5;
}

View File

@@ -6,7 +6,7 @@ import "google/protobuf/any.proto";
//接口回复报错信息
//grpc-status-details-bin
message Status{
message Status {
//业务错误码
int32 code = 1;

View File

@@ -3,6 +3,8 @@ rem 递归编译proto
set lang="python"
set patch=%CD%
for /r %patch% %%a in (*.proto) do (
protoc.exe -I %patch% --%lang%_out=. %%~fa
echo comp %%~fa ok!
)
protoc -I %patch% --%lang%_out=. %%~fa
echo comp %%~fa
)
echo all done
pause >nul

6
grpc_api/comp_proto.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
# 递归编译proto
lang='python'
patch=$(cd $(dirname $0); pwd)
find $patch -name '*.proto' -exec protoc -I $patch --${lang}_out=. {} \; -exec echo comp {} \;
echo 'all Done'

View File

@@ -1,6 +1,7 @@
# grpc接口定义protobuf结构体
- `comp_proto.bat`---win递归批量编译脚本
- `conp_proto.sh`---linux递归编译脚本
注:
@@ -10,18 +11,18 @@
## grpc头部
- [bilibili.metadata.locale](bilibili/metadata/locale.proto)区域信息
- [bilibili.metadata.network](bilibili/metadata/network.proto):网络信息
- [bilibili.metadata](bilibili/metadata/metadata.proto):环境参数
- [bilibili.metadata.restriction](bilibili/metadata/restriction.proto):限制值
- [bilibili.metadata.device](bilibili/metadata/device.proto):设备信息
- [bilibili.metadata](bilibili/metadata.proto)环境参数
- [bilibili.rpc](bilibili/rpc.proto):响应错误信息
## 接口请求定义
- [blibili.app.archive.v1](bilibili/app/archive_v1.proto):稿件信息v1模块
- [blibili.app.playurl.v1](bilibili/app/playurl_v1.proto)APP端视频播放v1接口
- [blibili.app.view.v1](bilibili/app/view_v1.proto)视频页v1接口
- [bilibili.pgc.gateway.player.v2](bilibili/pgc/gateway_player_v2.proto)APP端PGC播放v2接口
- [bilibili.cheese.gateway.player.v1](bilibili/cheese_gateway_player_v1.proto)APP端课程播放v1接口
- [bilibili.main.community.reply.v1](bilibili/main_community_reply_v1.proto)评论区v1接口
- [blibili.app.archive.v1](bilibili/app/archive/v1.proto):稿件信息
- [bilibili.app.card.v1](bilibili/app/card/v1.proro)卡片
- [blibili.app.playurl.v1](bilibili/app/playurl/v1.proto)APP端视频播放业务
- [blibili.app.show.v1.Popular](bilibili/app/show/popular/v1.proto):热门内容
- [blibili.app.show.v1.Rank](bilibili/app/show/rank/v1.proto):榜单
- [blibili.app.view.v1](bilibili/app/view/v1.proto)稿件详情页
- [bilibili.cheese.gateway.player.v1](bilibili/cheese/gateway/player/v1.proto)APP端课程播放
- [bilibili.pgc.gateway.player.v2](bilibili/pgc/gateway/player/v2.proto)APP端PGC播放
- [bilibili.community.service.dm.v1](bilibili/community/service/dm/v1.proto):弹幕
- [bilibili.main.community.reply.v1](bilibili/main/community/reply/v1.proto):评论区