修改【readme】 添加【安卓端登录】appsec 添加大量【proto结构文件】

This commit is contained in:
SocialSisterYi 2021-02-03 00:02:04 +08:00
parent adfb20f144
commit 07d0396bbc
33 changed files with 7848 additions and 1578 deletions

View File

@ -1,5 +1,5 @@
<p align="center">
<img src="https://sm.ms/image/gQzJ5Vl2xcrwfL3" width="250" height="200">
<img src="imgs/Mylogo.png" width="250" height="200">
</p>
<h1 align="center">哔哩哔哩-API收集整理</h1>
<p align="center">
@ -190,17 +190,27 @@ B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/rea
(重要的话说三遍,本人不承担任何责任)
**--Project_by [社会易姐QwQ](https://space.bilibili.com/293793435)**
# 相关协议基础
http协议[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
json序列格式[传送门](https://www.sojson.com/json/json_index.html)
xml序列格式[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
protobuf序列格式[传送门](https://www.jianshu.com/p/a24c88c0526a )
# 交流
<img src="imgs/up_face.jpg" width="100" height="100">
**--by [社会易姐QwQ](https://space.bilibili.com/293793435)**
QQ粉丝交流群[1136462265](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
备注:
B站空间https://space.bilibili.com/293793435
不了解http的请移步[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
不了解json的请移步[传送门](https://www.sojson.com/json/json_index.html)
不了解protobuf的请移步[传送门](https://www.jianshu.com/p/a24c88c0526a )
个人博客https://shakaianee.top
# 发电

View File

@ -0,0 +1,62 @@
syntax = "proto3";
package bilibili.account.fission.v1;
//Fission裂变
service Fission {
//
//
rpc entrance (EntranceReq) returns (EntranceReply);
//
//
rpc window (WindowReq) returns (WindowReply);
}
//-
message EntranceReq {
}
//-
message EntranceReply {
//
string icon = 1;
//
string name = 2;
//
string url = 3;
//
AnimateIcon animateIcon = 4;
}
//-
message WindowReq {
}
//-
message WindowReply {
//
//0:
//1:
int32 type = 1;
//
string url = 2;
//
string reportData = 3;
}
//
message AnimateIcon {
//icon文件
string icon = 1;
//json文件
string json = 2;
}

View File

@ -0,0 +1,632 @@
syntax = "proto3";
package bilibili.ad.v1;
import "google/protobuf/wrappers.proto";
//
message AdAutoPlayVideoDto {
//avid
int64 avid = 1;
//cid
int64 cid = 2;
//P
int64 page = 3;
//
string from = 4;
//
string url = 5;
//
string cover = 6;
//
bool autoPlay = 7;
//
bool btnDycColor = 8;
// ms
int32 btnDycTime = 9;
//id
int64 bizId = 10;
//
repeated string process0Urls = 11;
//3S三方监控
repeated string play3SUrls = 12;
//5S三方监控
repeated string play5SUrls = 13;
//
int32 orientation = 14;
}
//
message AdBusinessMarkDto {
//
//0:
//1:+
//2:+
//3:
//4:
int32 type = 1;
//
string text = 2;
//,#80FFFFFF RGBA
string textColor = 3;
//
string textColorNight = 4;
//
string bgColor = 5;
//
string bgColorNight = 6;
//
string borderColor = 7;
//
string borderColorNight = 8;
//
string imgUrl = 9;
//
int32 imgHeight = 10;
//
int32 imgWidth = 11;
//
string bgBorderColor = 12;
}
//
message AdButtonDto {
//
//1:
//2:
//3:
int32 type = 1;
//
string text = 2;
//
string jumpUrl = 3;
//
string reportUrls = 4;
//schema
string dlsucCallupUrl = 5;
}
//
message AdCardDto {
//
int32 cardType = 1;
//
string title = 2;
//
string desc = 3;
//
string extraDesc = 4;
//
string longDesc = 5;
//, 广
string shortTitle = 6;
///广
string danmuTitle = 7;
///广100
int32 danmuHeight = 8;
///广100
int32 danmuWidth = 9;
///广
int32 danmuLife = 10;
///
int32 danmuBegin = 11;
//#80FFFFFF
string danmuColor = 12;
///广H5落地页
string danmuH5Url = 13;
/// 广icon
string danmuIcon = 14;
//
int32 foldTime = 15;
//广
string adTag = 16;
//cover数组
repeated AdCoverDto covers = 17;
//
string jumpUrl = 18;
//
string imaxLandingPageJsonString = 19;
//app唤起schema
string callupUrl = 20;
//univeral link域名
string universalApp = 21;
//,
string oriPrice = 22;
//,
int32 curPrice = 23;
///
string priceDesc = 24;
//
string priceSymbol = 25;
// "1000"
string goodsCurPrice = 26;
// "¥1002"
string goodsOriPrice = 27;
//
AdGoodDto good = 28;
//? 100
int32 rank = 29;
//
int32 hotScore = 30;
//
AdButtonDto button = 31;
//广logo
string adverLogo = 32;
//广name
string adverName = 33;
//广
string adverPageUrl = 34;
//广
repeated string videoBarrage = 35;
//
AdBusinessMarkDto adTagStyle = 36;
//
AdAutoPlayVideoDto video = 37;
//广
AdFeedbackPanelDto feedbackPanel = 38;
//
int64 adverMid = 39;
//
int64 adverAccountId = 40;
//
string duration = 41;
//
repeated QualityInfo qualityInfos = 42;
//
string dynamicText = 43;
//
AdverDto adver = 44;
}
//
message AdContentExtraDto {
//
string layout = 1;
//url
repeated string showUrls = 2;
//url
repeated string clickUrls = 3;
//
repeated string danmuListShowUrls = 4;
//
repeated string danmuListClickUrls = 5;
//
repeated string danmuDetailShowUrls = 6;
//
repeated string danmuTrolleyAddUrls = 7;
//useWebView默认false
bool useAdWebV2 = 8;
//app唤起白名单
repeated string openWhitelist = 9;
//app下载白名单
AppPackageDto downloadWhitelist = 10;
//
AdCardDto card = 11;
// ms
int32 reportTime = 12;
//app store
int32 appstorePriority = 13;
//广
int32 salesType = 14;
//
int32 preloadLandingpage = 15;
//
bool specialIndustry = 16;
//
string specialIndustryTips = 17;
//
bool enableDownloadDialog = 18;
//
bool enableShare = 19;
//广
//1:
//2:
//3:
int32 upzoneEntranceType = 20;
//广id,id(Mid)id或者小程序id
int32 upzoneEntranceReportId = 21;
//
AdShareInfoDto shareInfo = 22;
//topview图片链接
string topviewPicUrl = 23;
//topview视频链接
string topviewVideoUrl = 24;
//
//0:banner可点击
//1:
int32 clickArea = 25;
//
int64 shopId = 26;
//
int64 upMid = 27;
//
string trackId = 28;
//
int32 enableStoreDirectLaunch = 29;
}
//
message AdCoverDto {
//
string url = 1;
//
//0:
int32 loop = 2;
//
string jumpUrl = 3;
// click_urls使
repeated string reportUrls = 4;
//
int32 imageHeight = 5;
//
int32 imageWidth = 6;
}
//
message AdDto {
//广ID
int64 creativeId = 1;
//广
string adCb = 2;
//广
AdContentExtraDto extra = 3;
//广
int32 cmMark = 4;
//
int64 topViewId = 5;
//
int32 creativeType = 6;
//
int32 cardType = 7;
//
int32 creativeStyle = 8;
//
int32 isAd = 9;
//
CreativeDto creativeContent = 10;
}
//
message AdFeedbackPanelDto {
//广广
string panelTypeText = 1;
//
repeated AdFeedbackPanelModuleDto feedbackPanelDetail = 2;
}
//
message AdFeedbackPanelModuleDto {
//id
int32 moduleId = 1;
//icon url
string iconUrl = 2;
//
//1:
//2:H5
int32 jumpType = 3;
//
string jumpUrl = 4;
//
string text = 5;
//
AdSecondFeedbackPanelDto secondaryPanel = 6;
}
//
message AdGoodDto {
//ID
int64 itemId = 1;
//SKU ID
int64 skuId = 2;
//ID
int64 shopId = 3;
//SKU库存
int64 skuNum = 4;
}
//
message AdOgvEpDto {
//epid
int64 epid = 1;
// "荐"
bool hasRecommend = 2;
}
//
message AdSecondFeedbackPanelDto {
//id
int32 reasonId = 1;
//
string text = 2;
}
//
message AdShareInfoDto {
//
string title = 1;
//
string subtitle = 2;
//url
string imageUrl = 3;
}
//
message AdsControlDto {
//广
int32 hasDanmu = 1;
//P视频的cid
repeated int64 cids = 2;
//ogv ep
repeated AdOgvEpDto eps = 3;
}
//
message AdverDto {
//
int64 adverId = 1;
//
string adverLogo = 2;
//
string adverName = 3;
//
int32 adverType = 4;
//
string adverPageUrl = 5;
//
string adverDesc = 6;
}
//
message AppPackageDto {
//, bytes
int64 size = 1;
//
string displayName = 2;
//
string apkName = 3;
//url
string url = 4;
//bili schema url
string biliUrl = 5;
//md5
string md5 = 6;
//icon
string icon = 7;
//
string devName = 8;
//
string authUrl = 9;
//
string authName = 10;
//
string version = 11;
//
string updateTime = 12;
}
//
message CreativeDto {
//
string title = 1;
//
string description = 2;
//
string imageUrl = 3;
//
string imageMd5 = 4;
//
string url = 5;
//
string clickUrl = 6;
//
string showUrl = 7;
//
int64 videoId = 8;
//
string thumbnailUrl = 9;
//
string thumbnailUrlMd5 = 10;
//
string logoUrl = 11;
//
string logoMd5 = 12;
//
string username = 13;
}
//
message QualityInfo {
//
string icon = 1;
//
string text = 2;
}
//
message SourceContentDto {
//广ID
string requestId = 1;
//广source ID
int32 sourceId = 2;
//广resource ID
int32 resourceId = 3;
//广,广true
bool isAdLoc = 4;
//0:
//1:广
//, 0
google.protobuf.Int32Value serverType = 5;
//IP回传拼接
string clientIp = 6;
//广, , 0
google.protobuf.Int32Value cardIndex = 7;
//广source
int32 index = 8;
//广
AdDto adContent = 9;
}

View File

@ -0,0 +1,103 @@
syntax = "proto3";
package bilibili.api.player.v1;
//
service Heartbeat {
//
//
rpc mobile (HeartbeatReq) returns (HeartbeatReply);
}
//-
message HeartbeatReq {
//
int64 serverTime = 1;
//
string session = 2;
//
int64 mid = 3;
//
int64 aid = 4;
//
int64 cid = 5;
//
string sid = 6;
//
int64 epid = 7;
//
string type = 8;
//
int32 subType = 9;
//
int32 quality = 10;
//
int64 totalTime = 11;
//
int64 pausedTime = 12;
//
int64 playedTime = 13;
//
int64 videoDuration = 14;
//
string playType = 15;
//
int64 networkType = 16;
//
int64 lastPlayProgressTime = 17;
//
int64 maxPlayProgressTime = 18;
//
int32 from = 19;
//
string fromSpmid = 20;
//
string spmid = 21;
//
string epidStatus = 22;
//
string playStatus = 23;
//
string userStatus = 24;
//
int64 actualPlayedTime = 25;
//
int32 autoPlay = 26;
//
int64 listPlayTime = 27;
//
int64 detailPlayTime = 28;
}
//-
message HeartbeatReply {
//
int64 ts = 1;
}

View File

@ -0,0 +1,84 @@
syntax = "proto3";
package bilibili.api.probe.v1;
//
service Probe {
//
//
rpc testCode (CodeReq) returns (CodeReply);
//
//
rpc testReq (ProbeReq) returns (ProbeReply);
//
//
rpc testStream (ProbeStreamReq) returns (ProbeStreamReply);
//
//
rpc testSub (ProbeSubReq) returns (ProbeSubReply);
}
//-
message CodeReq {
//
int64 code = 1;
}
//-
message CodeReply {
}
//-
message ProbeReq {
//
int64 mid = 1;
//
string buvid = 2;
}
//-
message ProbeReply {
//
string content = 1;
//
int64 timestamp = 2;
}
//-
message ProbeStreamReq {
//
int64 mid = 1;
//
int64 sequence = 2;
}
//-
message ProbeStreamReply {
//
int64 sequence = 1;
//
int64 timestamp = 2;
//
string content = 3;
}
//-
message ProbeSubReq {
//
int64 buvid = 1;
}
//-
message ProbeSubReply {
//
int64 messageId = 1;
}

View File

@ -0,0 +1,243 @@
//稿v1模块
syntax = "proto3";
package bilibili.app.archive.v1;
//稿
message Arc{
//稿avid
int64 aid = 1;
//稿P数
int64 videos = 2;
//tid
int32 typeId = 3;
//
string typeName = 4;
//稿
//1: 2:
int32 copyright = 5;
//稿url
string pic = 6;
//稿
string title = 7;
//稿
int64 pubdate = 8;
//稿
int64 ctime = 9;
//稿
string desc = 10;
//稿
int32 state = 11;
//访
//0: 10000:
int32 access = 12;
//
int32 attribute = 13;
//
string tag = 14;
//
repeated string tags = 15;
//稿
int64 duration = 16;
//id
int64 missionId = 17;
//id
int64 orderId = 18;
//pgc稿件强制重定向url
string redirectUrl = 19;
//
int64 forward = 20;
//
Rights rights = 21;
//UP主信息
Author author = 22;
//
Stat stat = 23;
//
string reportResult = 24;
//稿
string dynamic = 25;
//稿1P cid
int64 firstCid = 26;
//稿1P
Dimension dimension = 27;
//
repeated StaffInfo staffInfo = 28;
//ugc合集id
int64 seasonId = 29;
//
int64 attributeV2 = 30;
}
//
message Author{
//UID
int64 mid = 1;
//
string name = 2;
//url
string face = 3;
}
//
message Dimension{
//
int64 width = 1;
//
int64 height = 2;
//
//0: 1:
int64 rotate = 3;
}
//P视频
message Page{
//cid
int64 cid = 1;
//P序号
int32 page = 2;
//
//vupload:B站 qq: hunan:
string from = 3;
//P标题
string part = 4;
//P时长
int64 duration = 5;
//vid
string vid = 6;
//P简介
string desc = 7;
//url
string webLink = 8;
//P分辨率
Dimension dimension = 9;
}
//稿
message Rights{
//
int32 bp = 1;
//
int32 elec = 2;
//
int32 download = 3;
//
int32 movie = 4;
//pgc稿件需要付费
int32 pay = 5;
//
int32 hd5 = 6;
//
int32 noReprint = 7;
//
int32 autoplay = 8;
//ugc稿件需要付费
int32 ugcPay = 9;
//
int32 isCooperation = 10;
//ugc付费预览
int32 ugcPayPreview = 11;
//
int32 noBackground = 12;
}
//
message StaffInfo{
//UID
int64 mid = 1;
//
string title = 2;
//
int64 attribute = 3;
}
//
message Stat{
//稿avid
int64 aid = 1;
//
int32 view = 2;
//
int32 danmaku = 3;
//
int32 reply = 4;
//
int32 fav = 5;
//
int32 coin = 6;
//
int32 share = 7;
//
int32 nowRank = 8;
//
int32 hisRank = 9;
//
int32 like = 10;
//
//0
int32 dislike = 11;
}

View File

@ -1,102 +0,0 @@
//稿v1模块
syntax = "proto3";
package bilibili.app.archive.v1;
//
message Author{
int64 mid = 1;//UID
string name = 2;//
string face = 3;//url
}
//
message Dimension{
int64 width = 1;//
int64 height = 2;//
int64 rotate = 3;//
}
//P视频
message Page{
int64 cid = 1;//cid
int32 page = 2;//P
string from = 3;//
string part = 4;
int64 duration = 5;
string vid = 6;
string desc = 7;
string webLink = 8;
Dimension dimension = 9;//
}
//
message Rights{
int32 bp = 1;
int32 elec = 2;
int32 download = 3;
int32 movie = 4;
int32 pay = 5;
int32 hd5 = 6;
int32 noReprint = 7;
int32 autoplay = 8;
int32 ugcPay = 9;
int32 isCooperation = 10;
int32 ugcPayPreview = 11;
int32 noBackground = 12;
}
//
message StaffInfo{
int64 mid = 1;//UID
string title = 2;//
int64 attribute = 3;//
}
//
message Stat{
int64 aid = 1;//avid
int32 view = 2;//
int32 danmaku = 3;//
int32 reply = 4;//
int32 fav = 5;//
int32 coin = 6;//
int32 share = 7;//
int32 nowRank = 8;//
int32 hisRank = 9;//
int32 like = 10;//
int32 dislike = 11;//
}
//稿
message Arc{
int64 aid = 1; //稿avid
int64 videos = 2; //稿P数
int32 typeId = 3; //tid
string typeName = 4; //
int32 copyright = 5; //稿
string pic = 6; //稿url
string title = 7; //稿
int64 pubdate = 8;
int64 ctime = 9;
string desc = 10; //
int32 state = 11; //稿
int32 access = 12;
int32 attribute = 13; //
string tag = 14;
repeated string tags = 15;
int64 duration = 16; //
int64 missionId = 17; //id
int64 orderId = 18;
string redirectUrl = 19; //url
int64 forward = 20;
Rights rights = 21;
Author author = 22; //UP主信息
Stat stat = 23; //
string reportResult = 24;
string dynamic = 25; //
int64 firstCid = 26; //1P cid
Dimension dimension = 27; //1P
repeated StaffInfo staffInfo = 28; //
int64 seasonId = 29;
int64 attributeV2 = 30;
}

View File

@ -0,0 +1,955 @@
syntax = "proto3";
package bilibili.app.card.v1;
message AdInfo {
//
int64 creativeId = 1;
//
int32 creativeType = 2;
//
int32 cardType = 3;
//
CreativeContent creativeContent = 4;
//
string adCb = 5;
//
int64 resource = 6;
//
int32 source = 7;
//
string requestId = 8;
//
bool isAd = 9;
//
int64 cmMark = 10;
//
int32 index = 11;
//
bool isAdLoc = 12;
//
int32 cardIndex = 13;
//
string clientIp = 14;
//
bytes extra = 15;
//
int32 creativeStyle = 16;
}
//
message Args {
//
int32 type = 1;
//
int64 upId = 2;
//
string upName = 3;
//
int32 rid = 4;
//
string rname = 5;
//
int64 tid = 6;
//
string tname = 7;
//
string trackId = 8;
//
string state = 9;
//
int32 convergeType = 10;
//
int64 aid = 11;
}
//
message Avatar {
//
string cover = 1;
//
string text = 2;
//
string uri = 3;
//
int32 type = 4;
//
string event = 5;
//
string eventV2 = 6;
//
int32 defalutCover = 7;
}
//
message Base {
//
string cardType = 1;
//
string cardGoto = 2;
//
string goto = 3;
//
string param = 4;
//
string cover = 5;
//
string title = 6;
//
string uri = 7;
//
ThreePoint threePoint = 8;
//
Args args = 9;
//
PlayerArgs playerArgs = 10;
//
int64 idx = 11;
//
AdInfo adInfo = 12;
//
Mask mask = 13;
//
string fromType = 14;
//
repeated ThreePointV2 threePointV2 = 15;
//
repeated ThreePointV3 threePointV3 = 16;
//
Button descButton = 17;
//
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;
//
int32 type = 6;
//
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 {
//
string title = 1;
//
string description = 2;
//
int64 videoId = 3;
//
string username = 4;
//
string imageUrl = 5;
//
string imageMd5 = 6;
//
string logUrl = 7;
//
string logMd5 = 8;
//
string url = 9;
//
string clickUrl = 10;
//
string showUrl = 11;
}
//
message DislikeReason {
//
int64 id = 1;
//
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;
//
string icon = 2;
//
string title = 3;
//
string moduleId = 4;
//
string uri = 5;
//
int64 entranceId = 6;
//
Bubble bubble = 7;
//
int32 entranceType = 8;
}
//
message HotTopic {
//
Base base = 1;
//
string desc = 2;
//
repeated HotTopicItem items = 3;
}
//
message HotTopicItem {
//
string cover = 1;
//
string uri = 2;
//
string param = 3;
//
string name = 4;
}
//
message HotwordEntrance {
//
int64 hotwordId = 1;
//
string hotText = 2;
//
string h5Url = 3;
//
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 {
//
int64 aid = 1;
//
int32 count = 2;
//
bool showCount = 3;
//
string event = 4;
//
int32 selected = 5;
//
string eventV2 = 6;
}
//
message Mask {
//
Avatar avatar = 1;
//
Button button = 2;
}
//
message MiddleCoverV3 {
//
Base base = 1;
//
string desc1 = 2;
//
string desc2 = 3;
//
ReasonStyle coverBadgeStyle = 4;
}
//
message PlayerArgs {
//
int32 isLive = 1;
//
int64 aid = 2;
//
int64 cid = 3;
//
int32 subType = 4;
//
int64 roomId = 5;
//
int64 epId = 7;
//
int32 isPreview = 8;
//
string type = 9;
//
int64 duration = 10;
//
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;
//
string iconUrl = 5;
//
string textColorNight = 6;
//
string bgColorNight = 7;
//
string borderColorNight = 8;
//
string iconNightUrl = 9;
//
int32 bgStyle = 10;
//
string uri = 11;
//
string iconBgUrl = 12;
//
string event = 13;
//
string eventV2 = 14;
//
int32 rightIconType = 15;
//
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;
//
string cover = 4;
//
int64 aid = 5;
//
string bvid = 6;
//
map<string,bool> shareTo = 7;
//
string author = 8;
//
int64 authorId = 9;
//
string shortLink = 10;
//
string playNumber = 11;
}
//
message SmallCoverRcmdItem {
//
string title = 1;
//
string cover = 2;
//
string uri = 3;
//
string param = 4;
//
string goto = 5;
//
string coverRightText1 = 6;
//
string rightDesc1 = 7;
//
string rightDesc2 = 8;
//
string coverGif = 9;
//
int32 rightIcon1 = 10;
//
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;
//
string coverLeftText = 2;
//
int32 coverLeftIcon = 3;
//
string desc1 = 4;
//
string desc2 = 5;
//
string badge = 6;
}
//
message ThreePoint {
//
repeated DislikeReason dislikeReasons = 1;
//
repeated DislikeReason feedbacks = 2;
//
int32 watchLater = 3;
}
//
message ThreePointV2 {
//
string title = 1;
//
string subtitle = 2;
//
repeated DislikeReason reasons = 3;
//
string type = 4;
//
int64 id = 5;
}
//
message ThreePointV3 {
//
string title = 1;
//
string selectedTitle = 2;
//
string subtitle = 3;
//
repeated DislikeReason reasons = 4;
//
string type = 5;
//
int64 id = 6;
//
int32 selected = 7;
//
string icon = 8;
//
string selectedIcon = 9;
//
string url = 10;
//
int32 defaultId = 11;
}
//
message ThreePointV4 {
//
SharePlane sharePlane = 1;
//
WatchLater watchLater = 2;
}
//
message TwoItemHV1Item {
//
string title = 1;
//
string cover = 2;
//
string uri = 3;
//
string param = 4;
//
Args args = 5;
//
string goto = 6;
//
string coverLeftText1 = 7;
//
int32 coverLeftIcon1 = 8;
//
string coverRightText = 9;
}
//
message Up {
//
int64 id = 1;
//
string name = 2;
//
string desc = 3;
//
Avatar avatar = 4;
//
int32 officialIcon = 5;
//
Button descButton = 6;
//
string cooperation = 8;
}
//
message WatchLater {
//
int64 aid = 1;
//
string bvid = 2;
}

View File

@ -0,0 +1,594 @@
syntax = "proto3";
package bilibili.app.interfaces.v1;
import "bilibili/app/playurl/v1.proto";
//
service History {
//
//https://app.bilibili.com/bilibili.app.interface.v1.History/Search
rpc search (SearchReq) returns (SearchReply);
//?
//https://app.bilibili.com/bilibili.app.interface.v1.History/LatestHistory
rpc latestHistory (LatestHistoryReq) returns (LatestHistoryReply);
//
//https://app.bilibili.com/bilibili.app.interface.v1.History/HistoryTab
rpc historyTab (HistoryTabReq) returns (HistoryTabReply);
//
//https://app.bilibili.com/bilibili.app.interface.v1.History/Delete
rpc delete (DeleteReq) returns (NoReply);
//v2接口
//https://app.bilibili.com/bilibili.app.interface.v1.History/CursorV2
rpc cursorV2 (CursorV2Req) returns (CursorV2Reply);
//v1接口
//https://app.bilibili.com/bilibili.app.interface.v1.History/Cursor
rpc cursor (CursorReq) returns (CursorReply);
//
//https://app.bilibili.com/bilibili.app.interface.v1.History/Clear
rpc clear (ClearReq) returns (NoReply);
}
//
service Search {
//
//https://app.bilibili.com/bilibili.app.interface.v1.Search/Suggest3
rpc suggest3 (SuggestionResult3Req) returns (SuggestionResult3Reply);
}
//-
message SearchReq {
//
string keyword = 1;
//
int64 pn = 2;
//
string business = 3;
}
//-
message SearchReply {
//
repeated CursorItem items = 1;
//
bool hasMore = 2;
//
Page page = 3;
}
//?-
message LatestHistoryReq {
//
string business = 1;
//
PlayerPreloadParams playerPreload = 2;
}
//?-
message LatestHistoryReply {
//
CursorItem items = 1;
//
string scene = 2;
}
//-
message HistoryTabReq {
//
string business = 1;
//
HistorySource source = 2;
//
string keyword = 3;
}
//-
message HistoryTabReply {
//
repeated CursorTab tab = 1;
}
//-
message DeleteReq {
//
HisInfo hisInfo = 1;
}
//v2接口-
message CursorV2Req {
//
Cursor cursor = 1;
//
string business = 2;
//
PlayerPreloadParams playerPreload = 3;
//
bilibili.app.playurl.v1.PlayerArgs playerArgs = 4;
}
//v2接口-
message CursorV2Reply {
//
repeated CursorItem items = 1;
//
Cursor cursor = 2;
//
bool hasMore = 3;
}
//v1接口-
message CursorReq {
//
Cursor cursor = 1;
//
string business = 2;
//
PlayerPreloadParams playerPreload = 3;
}
//v1接口-
message CursorReply {
//
repeated CursorItem items = 1;
//
repeated CursorTab tab = 2;
//
Cursor cursor = 3;
//
bool hasMore = 4;
}
//-
message ClearReq {
//
string business = 1;
}
//
message NoReply {
}
//-
message SuggestionResult3Req {
//
string keyword = 1;
//
int32 highlight = 2;
//
int32 teenagersMode = 3;
}
//-
message SuggestionResult3Reply {
//id
string trackid = 1;
//
repeated ResultItem list = 2;
//
string expStr = 3;
}
//
message CardArticle {
//uel
repeated string covers = 1;
//
string name = 2;
//UID
int64 mid = 3;
//
bool displayAttention = 4;
//
string badge = 5;
//
Relation relation = 6;
}
//
message CardCheese {
//url
string cover = 1;
//
int64 progress = 2;
//
int64 duration = 3;
//
string subtitle = 4;
}
//
message CardLive {
//url
string cover = 1;
//
string name = 2;
//UID
int64 mid = 3;
//
string tag = 4;
//
int32 ststus = 5;
//
bool displayAttention = 6;
//
Relation relation = 7;
}
//pgc稿件条目类型
message CardOGV {
//url
string cover = 1;
//
int64 progress = 2;
//
int64 duration = 3;
//
string subtitle = 4;
}
//ugc稿件条目类型
message CardUGC {
//url
string cover = 1;
//
int64 progress = 2;
//
int64 duration = 3;
//UP主昵称
string name = 4;
//UP主UID
int64 mid = 5;
//
bool displayAttention = 6;
//cid
int64 cid = 7;
//P
int32 page = 8;
//
string subtitle = 9;
//
Relation relation = 10;
//稿bvid
string bvid = 11;
//P数
int64 videos = 12;
//
string shortLink = 13;
//
string shareSubtitle = 14;
//
int64 view = 15;
}
//
message Cursor {
//
int64 max = 1;
//
int32 maxTp = 2;
}
//
message CursorItem {
//
oneof cardItemCase {
//ugc稿件
CardUGC cardUGC = 1;
//pgc稿件
CardOGV cardOGV = 2;
//
CardArticle cardArticle = 3;
//
CardLive cardLive = 4;
//
CardCheese cardCheese = 5;
}
//
string title = 6;
//uri/url
string uri = 7;
//
int64 viewAt = 8;
//id
int64 kid = 9;
//id
int64 oid = 10;
//
string business = 11;
//
int32 tp = 12;
//
DeviceType dt = 13;
//
bool hasShare = 14;
}
//
message CursorTab {
//
string business = 1;
//
string name = 2;
//uri
string router = 3;
//
bool focus = 4;
}
//
enum DT {
//
Unknown_VALUE = 0;
//
Phone_VALUE = 1;
//ipad端
Pad_VALUE = 2;
//web端
PC_VALUE = 3;
}
//
message DeviceType {
//
DT type = 1;
//url
string icon = 2;
}
//
message HisInfo {
//
string business = 1;
//id
int64 kid = 2;
}
//
enum HistorySource {
//
history_VALUE = 0;
//
shopping_VALUE = 1;
}
//
message OfficialVerify {
//
int32 type = 1;
//
string desc = 2;
}
//
message Page {
//
int64 pn = 1;
//
int64 total = 2;
}
//
message PlayerPreloadParams {
//
int64 qn = 1;
//
int64 fnver = 2;
//
int64 fnval = 3;
//
int64 forceHost = 4;
//4K
int64 fourk = 5;
}
//
message ReasonStyle {
//
string text = 1;
//
string textColor = 2;
//
string textColorNight = 3;
//
string bgColor = 4;
//
string bgColorNight = 5;
//
string borderColor = 6;
//
string borderColorNight = 7;
//
int32 bgStyle = 8;
}
//
message Relation {
//
int32 status = 1;
//
int32 isFollow = 2;
//
int32 isFollowed = 3;
}
//
message ResultItem {
//
string from = 1;
//()
string title = 2;
//
string keyword = 3;
//
int32 position = 4;
//
string cover = 5;
//
double coverSize = 6;
//
string sugType = 7;
//
int32 termType = 8;
//
string goto = 9;
//
string uri = 10;
//
OfficialVerify officialVerify = 11;
//
string param = 12;
//
int64 mid = 13;
//
int32 fans = 14;
//
int32 level = 15;
//
int32 archives = 16;
//
int64 ptime = 17;
//
string seasonTypeName = 18;
//
string area = 19;
//
string style = 20;
//
string label = 21;
//
double rating = 22;
//
int32 vote = 23;
//
repeated ReasonStyle badges = 24;
//
string styles = 25;
//
int64 moduleId = 26;
//
string liveLink = 27;
}

View File

@ -0,0 +1,844 @@
//APP端视频播放v1接口
syntax = "proto3";
package bilibili.app.playurl.v1;
//
service PlayURL {
//
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayConf
rpc playConf (PlayConfReq) returns (PlayConfReply);
//
//
rpc playConfEdit (PlayConfEditReq) returns (PlayConfEditReply);
//url
//
rpc playURL (PlayURLReq) returns (PlayURLReply);
//
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayView
rpc playView (PlayViewReq) returns (PlayViewReply);
//
//
rpc project (ProjectReq) returns (ProjectReply);
}
//-
message PlayConfReq {
}
//-
message PlayConfReply {
//
PlayAbilityConf playConf = 1;
}
//-
message PlayConfEditReq {
//
repeated PlayConfState playConf = 1;
}
//-
message PlayConfEditReply {
}
//url-
message PlayURLReq {
//稿avid
int64 aid = 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 forceHost = 7;
//4K
bool fourk = 8;
//
string spmid = 9;
//
string fromSpmid = 10;
}
//url-
message PlayURLReply {
//
uint32 quality = 1;
//
string format = 2;
//
uint64 timelength = 3;
//
uint32 videoCodecid = 4;
//
uint32 fnver = 5;
//
uint32 fnval = 6;
//
bool videoProject = 7;
//
repeated ResponseUrl durl = 8;
//
ResponseDash dash = 9;
//
int32 noRexcode = 10;
//
UpgradeLimit upgradeLimit = 11;
//
repeated FormatDescription supportFormats = 12;
//
VideoType type = 13;
}
//-
message PlayViewReq {
//稿avid
int64 aid = 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 forceHost = 7;
//4K
bool fourk = 8;
//
string spmid = 9;
//
string fromSpmid = 10;
//
int32 teenagersMode = 11;
//
CodeType preferCodecType = 12;
}
//-
message PlayViewReply {
//
VideoInfo info = 1;
//
PlayAbilityConf PlayConf = 2;
//
UpgradeLimit upgradeLimit = 3;
//
Chronos chronos = 4;
//稿
PlayArcConf playArc = 5;
//
Event event = 6;
}
//-
message ProjectReq {
//稿avid
int64 aid = 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 forceHost = 7;
//4K
bool fourk = 8;
//
string spmid = 9;
//
string fromSpmid = 10;
//
int32 protocol = 11;
//
int32 deviceType = 12;
}
//-
message ProjectReply {
//
PlayURLReply project = 1;
}
//
message ArcConf {
//
bool isSupport=1;
}
//
message Chronos {
//
string md5=1;
//
string file=2;
}
//
message CloudConf {
//
bool show = 1;
//
ConfType confType = 2;
//
FieldValue fieldValue = 3;
}
//
enum CodeType {
//
NOCODE_VALUE = 0;
//
CODE264_VALUE = 1;
//
CODE265_VALUE = 2;
}
//
enum ConfType {
//
NoType_VALUE = 0;
//
FLIPCONF_VALUE = 1;
//
CASTCONF_VALUE = 2;
//
FEEDBACK_VALUE = 3;
//
SUBTITLE_VALUE = 4;
//
PLAYBACKRATE_VALUE = 5;
//
TIMEUP_VALUE = 6;
//
PLAYBACKMODE_VALUE = 7;
//
SCALEMODE_VALUE = 8;
//
BACKGROUNDPLAY_VALUE = 9;
//
LIKE_VALUE = 10;
//
DISLIKE_VALUE = 11;
//
COIN_VALUE = 12;
//
ELEC_VALUE = 13;
//
SHARE_VALUE = 14;
//
SCREENSHOT_VALUE = 15;
//
LOCKSCREEN_VALUE = 16;
//
RECOMMEND_VALUE = 17;
//
PLAYBACKSPEED_VALUE = 18;
//
DEFINITION_VALUE = 19;
//
SELECTIONS_VALUE = 20;
//
NEXT_VALUE = 21;
//
EDITDM_VALUE = 22;
//
SMALLWINDOW_VALUE = 23;
//
SHAKE_VALUE = 24;
//
OUTERDM_VALUE = 25;
//
INNERDM_VALUE = 26;
//
PANORAMA_VALUE = 27;
//
DOLBY_VALUE = 28;
}
//
message DashItem {
//
uint32 id=1;
//线
string baseUrl=2;
//
repeated string backupUrl=3;
//
uint32 bandwidth=4;
//
uint32 codecid=5;
//md5
string md5=6;
//
uint64 size=7;
}
//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 DolbyItem{
//
int32 type=1;
//
DashItem audio=2;
}
//
message Event{
//
Shake shake=1;
}
//
message FieldValue {
//
oneof valueCase {
//
bool value = 1;
}
}
//
message FormatDescription {
//
int32 quality = 1;
//
string format = 2;
//
string description = 3;
//
string newDescription = 4;
//
string displayDesc = 5;
//
string superscript = 6;
}
//
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{
//
ArcConf backgroundPlayConf=1;
//
ArcConf flipConf=2;
//
ArcConf castConf=3;
//
ArcConf feedbackConf=4;
//
ArcConf subtitleConf=5;
//
ArcConf playbackRateConf=6;
//
ArcConf timeUpConf=7;
//
ArcConf playbackModeConf=8;
//
ArcConf scaleModeConf=9;
//
ArcConf likeConf=10;
//
ArcConf dislikeConf=11;
//
ArcConf coinConf=12;
//
ArcConf elecConf=13;
//
ArcConf shareConf=14;
//
ArcConf screenShotConf=15;
//
ArcConf lockScreenConf=16;
//
ArcConf recommendConf=17;
//
ArcConf playbackSpeedConf=18;
//
ArcConf definitionConf=19;
//
ArcConf selectionsConf=20;
//
ArcConf nextConf=21;
//
ArcConf editDmConf=22;
//
ArcConf smallWindowConf=23;
//
ArcConf shakeConf=24;
//
ArcConf outerDmConf=25;
//
ArcConf innerDmConf=26;
//
ArcConf freyaEnterConf=27;
//
ArcConf dolbyConf=28;
}
//
message PlayConfState {
//
ConfType confType = 1;
//
bool show = 2;
//
FieldValue fieldValue = 3;
}
//
enum PlayErr {
//
NoErr_VALUE = 0;
//
WithMultiDeviceLoginErr_VALUE = 1;
}
//
message PlayerArgs {
//
int64 qn = 1;
//
int64 fnver = 2;
//
int64 fnval = 3;
//
int64 forceHost = 4;
}
//
message ResponseDash {
//
repeated DashItem video = 1;
//
repeated DashItem audio = 2;
}
//
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 Shake{
//
string file=1;
}
//
message Stream{
//
StreamInfo info=1;
//
oneof contentCase {
//dash流
DashVideo dashvideo=2;
//
SegmentVideo segmentvideo=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;
}
//
message Limit{
//
string title=1;
//
string uri=2;
//
string msg=3;
}
//
message UpgradeButton {
//
string title = 1;
//
string link = 2;
}
//
message UpgradeLimit{
//
int32 code =1;
//
string message =2;
//url
string image =3;
//
UpgradeButton button=4;
}
//url信息
message VideoInfo{
//
uint32 quality=1;
//
string format=2;
//
uint64 timelength=3;
//
uint32 videoCodecid=4;
//
repeated Stream streamList=5;
//
repeated DashItem audio=6;
//
DolbyItem dolby=7;
}
//
enum VideoType {
//
Unknown_VALUE = 0;
//
FLV_VALUE = 1;
//
DASH_VALUE = 2;
//
MP4_VALUE = 3;
}

View File

@ -1,213 +0,0 @@
//APP端视频播放v1接口
syntax = "proto3";
package bilibili.app.playurl.v1;
message VideoInfo{
message stream{
message streamInfo{
message Limit{
string title=1;
string uri=2;
string msg=3;
}
uint32 quality=1;//
string format=2;//
string description=3;//
uint32 errCode=4;
Limit limit=5;
bool needVip=6;//vip
bool needLogin=7;//
bool intact=8;
bool noRexcode=9;
int64 attribute=10;
string newDescription=11;//
string displayDesc=12;//
string superscript=13;//
}
message DashVideo{
string baseUrl=1;//线
repeated string backupUrl=2;//
uint32 bandwidth=3;//
uint32 codecid=4;
string md5=5;//md5
uint64 size=6;//
uint32 audioId=7;
bool noRexcode=8;
}
message SegmentVideo{
message ResponseUrl{
uint32 order=1;
uint64 length=2;
uint64 size=3;
string url=4;
repeated string backupUrl=5;
string md5=6;
}
repeated ResponseUrl segment=1;
}
streamInfo info=1;//
DashVideo dashvideo=2;//dash流
SegmentVideo segmentvideo=3;//flv流
}
message DashAudio{
uint32 id=1;
string baseUrl=2;//线
repeated string backupUrl=3;//
uint32 bandwidth=4;//
uint32 codecid=5;//
string md5=6;//md5
uint64 size=7;//
}
message DolbyItem{
int32 type=1;
DashAudio audio=2;
}
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 UpgradeLimit{
message Report{
string showEventId=1;
string clickEventId=2;
string extends=3;
}
message ButtonInfo{
message BadgeInfo{
string text=1;
string bgColor=2;
string bgColorNight=3;
}
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;
}
int32 code =1;
string message =2;
string image =3;
ButtonInfo button=4;
}
message Chronos{
string md5=1;
string file=2;
}
message PlayArcConf{
message ArcConf{
bool isSupport=1;
}
ArcConf backgroundPlayConf=1;
ArcConf flipConf=2;
ArcConf castConf=3;
ArcConf feedbackConf=4;
ArcConf subtitleConf=5;
ArcConf playbackRateConf=6;
ArcConf timeUpConf=7;
ArcConf playbackModeConf=8;
ArcConf scaleModeConf=9;
ArcConf likeConf=10;
ArcConf dislikeConf=11;
ArcConf coinConf=12;
ArcConf elecConf=13;
ArcConf shareConf=14;
ArcConf screenShotConf=15;
ArcConf lockScreenConf=16;
ArcConf recommendConf=17;
ArcConf playbackSpeedConf=18;
ArcConf definitionConf=19;
ArcConf selectionsConf=20;
ArcConf nextConf=21;
ArcConf editDmConf=22;
ArcConf smallWindowConf=23;
ArcConf shakeConf=24;
ArcConf outerDmConf=25;
ArcConf innerDmConf=26;
ArcConf freyaEnterConf=27;
ArcConf dolbyConf=28;
}
message Event{
message Shake{
string file=1;
}
Shake shake=1;
}
//url
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayView
//
message PlayURLReq{
int64 aid = 1; //avid
int64 cid = 2; //cid
int64 qn = 3; //
int32 fnver = 4; //
int32 fnval = 5;
uint32 download = 6; // 0: 1:flv下载 2:dash下载
int32 forceHost = 7;
bool fourk = 8; //4K
string spmid = 9;
string fromSpmid = 10;
}
//
message PlayViewReply{
VideoInfo info = 1; //
PlayAbilityConf PlayConf = 2; //
UpgradeLimit upgradeLimit = 3;
Chronos chronos = 4;
PlayArcConf playArc = 5;
Event event = 6;
}
//
//https://app.bilibili.com/bilibili.app.playurl.v1.PlayURL/PlayConf
//
message PlayConfReq{
}
//
message PlayConfReply{
PlayAbilityConf playConf = 1;
}

View File

@ -0,0 +1,27 @@
syntax = "proto3";
package bilibili.app.show.gateway.v1;
import "bilibili/broadcast/message/main.proto";
//
service AppShow {
//
//
rpc getActProgress (GetActProgressReq) returns (GetActProgressReply);
}
//-
message GetActProgressReq {
//
int64 pageID = 1;
//
int64 mid = 2;
}
//-
message GetActProgressReply {
//
bilibili.broadcast.message.main.NativePageEvent event = 1;
}

View File

@ -0,0 +1,139 @@
syntax = "proto3";
package bilibili.app.show.popular.v1;
import "bilibili/app/playurl/v1.proto";
import "bilibili/app/card/v1.proto";
//
service Popular {
//
//
rpc index (PopularResultReq) returns (PopularReply);
}
//-
message PopularResultReq {
//
int64 idx = 1;
//
int32 loginEvent = 2;
//
int32 qn = 3;
//
int32 fnver = 4;
//
int32 fnval = 5;
//
int32 forceHost = 6;
//
int32 fourk = 7;
//
sfixed32 spmid = 8;
//
sfixed32 lastParam = 9;
//
sfixed32 ver = 10;
//
int64 entranceId = 11;
//
sfixed32 locationIds = 12;
//
int32 sourceId = 13;
//
int32 flush = 14;
//
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;
//
string bottomTextCover = 3;
//
string bottomTextUrl = 4;
//
repeated EntranceShow topItems = 5;
//
string headImage = 6;
//
repeated EntranceShow pageItems = 7;
//
int32 hit = 8;
}
//
message EntranceShow {
//
string icon = 1;
//
string title = 2;
//
string moduleId = 3;
//
string uri = 4;
//
Bubble bubble = 5;
//
int64 entranceId = 6;
//
string topPhoto = 7;
//
int32 entranceType = 8;
}

View File

@ -0,0 +1,146 @@
syntax = "proto3";
package bilibili.app.show.rank.v1;
//
service Rank {
//
//
rpc rankAll (RankAllResultReq) returns (RankListReply);
//
//
rpc rankRegion (RankRegionResultReq) returns (RankListReply);
}
//-
message RankAllResultReq {
//
string order = 1;
//
int32 pn = 2;
//
int32 ps = 3;
}
//-
message RankRegionResultReq {
//
int32 rid = 1;
//
int32 pn = 2;
//
int32 ps = 3;
}
//-
message RankListReply {
//
repeated Item items = 1;
}
//
message Item {
//
string title = 1;
//
string cover = 2;
//
string param = 3;
//
string uri = 4;
//
string redirectUrl = 5;
//
string goto = 6;
//
int32 play = 7;
//
int32 danmaku = 8;
//
int64 mid = 9;
//
string name = 10;
//
string face = 11;
//
int32 reply = 12;
//
int32 favourite = 13;
//
int64 pubDate = 14;
//
int32 rid = 15;
//
string rname = 16;
//
int64 duration = 17;
//
int32 like = 18;
//
int64 cid = 19;
//
int64 pts = 20;
//
string cooperation = 21;
//
int32 attribute = 22;
//
int64 follower = 23;
//
OfficialVerify officialVerify = 24;
//
repeated Item children = 25;
//
Relation relation = 26;
}
//
message OfficialVerify {
//
int32 type = 1;
//
string desc = 2;
}
//
message Relation {
//
int32 status = 1;
//
int32 isFollow = 2;
//
int32 isFollowed = 3;
}

View File

@ -0,0 +1,67 @@
syntax = "proto3";
package bilibili.app.show.region.v1;
//
service Region {
//
//
rpc region (RegionReq) returns (RegionReply);
}
//
message RegionReq {
//
string lang = 1;
}
//
message RegionReply {
//
repeated RegionInfo regions = 1;
}
//
message RegionConfig {
//
string scenesName = 1;
//
string scenesType = 2;
}
//
message RegionInfo {
//
int32 tid = 1;
//
int32 reid = 2;
//
string name = 3;
//
string logo = 4;
//
string goto = 5;
//
string param = 6;
//
string uri = 7;
//
int32 type = 8;
//
int32 isBangumi = 9;
//
repeated RegionInfo children = 10;
//
repeated RegionConfig config = 11;
}

View File

@ -0,0 +1,139 @@
syntax = "proto3";
package bilibili.app.space.v1;
//
service Space {
//
//
rpc archive (ArchiveReq) returns (ArchiveReply);
}
//-
message ArchiveReq {
//
int64 vmid = 1;
//
int32 pn = 2;
//
int32 ps = 3;
//
string order = 4;
}
//-
message ArchiveReply {
//
repeated BiliSpaceVideo item = 1;
//
int32 count = 2;
//
EpisodicButton episodicButton = 3;
//
repeated OrderConfig order = 4;
}
//
message Badge {
//
string text = 1;
//
string textColor = 2;
//
string textColorNight = 3;
//
string bgColor = 4;
//
string bgColorNight = 5;
//
string borderColor = 6;
//
string borderColorNight = 7;
//
int32 bgStyle = 8;
}
//
message BiliSpaceVideo {
//
string title = 1;
//
string tname = 2;
//
int64 duration = 3;
//
string cover = 4;
//
string uri = 5;
//
string param = 6;
//
string danmaku = 7;
//
int32 play = 8;
//
int64 ctime = 9;
//
bool state = 10;
//
bool isPopular = 11;
//
repeated Badge badges = 12;
//
string coverRight = 13;
//
string bvid = 14;
//
bool isSteins = 15;
//
bool isUgcpay = 16;
//
bool isCooperation = 17;
}
//
message EpisodicButton {
//
string text = 1;
//
string uri = 2;
}
//
message OrderConfig {
//
string title = 1;
//
string value = 2;
}

View File

@ -0,0 +1,180 @@
syntax = "proto3";
package bilibili.app.splash.v1;
import "google/protobuf/any.proto";
//
service Splash {
//
//
rpc list (SplashReq) returns (SplashReply);
}
//-
message SplashReq {
//
int32 width = 1;
//
int32 height = 2;
//
string birth = 3;
//
string adExtra = 4;
//
string network = 5;
}
//-
message SplashReply {
//
int32 maxTime = 1;
//
int32 minInterval = 2;
//
int32 pullInterval = 3;
//
repeated SplashItem list = 4;
//
repeated ShowStrategy show = 5;
}
//
message ShowStrategy {
//
int32 id = 1;
//
int64 stime = 2;
//
int64 etime = 3;
}
//
message SplashItem {
//
int32 id = 1;
//
int32 type = 2;
//
int32 cardType = 3;
//
int32 duration = 4;
//
int64 beginTime = 5;
//
int64 endTime = 6;
//
string thumb = 7;
//
string hash = 8;
//
string logoUrl = 9;
//
string logoHash = 10;
//
string videoUrl = 11;
//
string videoHash = 12;
//
int32 videoWidth = 13;
//
int32 videoHeight = 14;
//
string schema = 15;
//
string schemaTitle = 16;
//
string schemaPackageName = 17;
//
repeated string schemaCallupWhiteList = 18;
//
int32 skip = 19;
//
string uri = 20;
//
string uriTitle = 21;
//
int32 source = 22;
//
int32 cmMark = 23;
//
string adCb = 24;
//
int64 resourceId = 25;
//
string requestId = 26;
//
string clientIp = 27;
//
bool isAd = 28;
//
bool isAdLoc = 29;
//
google.protobuf.Any extra = 30;
//
int64 cardIndex = 31;
//
int64 serverType = 32;
//
int64 index = 33;
//
string clickUrl = 34;
//
string showUrl = 35;
//
int32 timeTarget = 36;
//
int32 encryption = 37;
//
bool enablePreDownload = 38;
//
bool enableBackgroundDownload = 39;
}

View File

@ -0,0 +1,42 @@
syntax = "proto3";
package bilibili.app.wall.v1;
//
service Wall {
//
//
rpc ruleInfo (RuleRequest) returns (RulesReply);
}
//-
message RuleRequest {
}
//-
message RulesReply {
//
map<string,RulesInfo> rulesInfo = 1;
}
//
message RuleInfo {
//
bool tf = 1;
//
string m = 2;
//
string a = 3;
//
string p = 4;
}
//
message RulesInfo {
//
repeated RuleInfo rulesInfo = 1;
}

View File

@ -0,0 +1,189 @@
syntax = "proto3";
package bilibili.broadcast.message.main;
import "google/protobuf/empty.proto";
//
service NativePage {
//
//
rpc watchNotify (google.protobuf.Empty) returns (NativePageEvent);
}
//
service Resource {
//
//
rpc topActivity (google.protobuf.Empty) returns (TopActivityReply);
}
//
message NativePageEvent {
//
int64 pageID = 1;
//
repeated EventItem items = 2;
}
//
message TopActivityReply {
//
TopOnline online = 1;
//
string hash = 2;
}
//
message Animate {
//
string icon = 1;
//
string json = 2;
//
string svg = 3;
//
int32 loop = 4;
}
//
message CommandDm {
//
int64 id = 1;
//
int64 oid = 2;
//
int64 mid = 3;
//
int32 type = 4;
//
string command = 5;
//
string content = 6;
//
int32 state = 7;
//
int32 progress = 8;
//
string ctime = 9;
//
string mtime = 10;
//
string extra = 11;
//
string idStr = 12;
}
//
message DanmakuElem {
//
int64 id = 1;
//
int32 progress = 2;
//
int32 mode = 3;
//
int32 fontsize = 4;
//
uint32 color = 5;
//
string midHash = 6;
//
string content = 7;
//
int64 ctime = 8;
//
string action = 9;
//
int32 pool = 10;
//
string idStr = 11;
}
//
message DanmukuEvent {
//
DanmakuElem elems = 1;
}
//
message EventItem {
//
int64 itemID = 1;
//
string type = 2;
//
int64 num = 3;
//
string displayNum = 4;
//
string webKey = 5;
//
int64 dimension = 6;
}
//
message RedDot {
//
int32 type = 1;
//
int32 number = 2;
}
//
message TopOnline {
//
int32 type = 1;
//
string icon = 2;
//
string uri = 3;
//
string uniqueId = 4;
//
Animate animate = 5;
//
RedDot redDot = 6;
//
string name = 7;
//
int64 interval = 8;
}

View File

@ -1,8 +1,20 @@
//APP端课程播放v1接口
syntax = "proto3";
package bilibili.cheese.gateway.player.v1;
import public "bilibili/app/playurl_v1.proto";
import "bilibili/app/playurl/v1.proto";
service PlayURL {
//url接口
//https://app.bilibili.com/bilibili.cheese.gateway.player.v1.PlayURL/PlayView
rpc PlayView (playViewReq) returns (PlayViewReply);
}
enum CodeType{
NOCODE = 0;
CODE264 = 1;
CODE265 = 2;
}
message PlayAbilityConf{
bool backgroundPlayDisable=1;
@ -36,30 +48,54 @@ message PlayAbilityConf{
}
//url
//https://app.bilibili.com/bilibili.cheese.gateway.player.v1.PlayURL/PlayView
//
message playViewReq{
enum CodeType{
NOCODE = 0;
CODE264 = 1;
CODE265 = 2;
}
int64 epid = 1; //epid
int64 cid = 2; //cid
int64 qn = 3; //
//epid
int64 epid = 1;
//cid
int64 cid = 2;
//
int64 qn = 3;
//
int32 fnver = 4;
int32 fnval = 5; //
uint32 download = 6; // 0: 1:flv下载 2:dash下载
//
int32 fnval = 5;
//
//0: 1:flv下载 2:dash下载
uint32 download = 6;
//url强制是用域名
//0:使ip 1:使http 2:使https
int32 forceHost = 7;
bool fourk = 8; //4K
//4K
bool fourk = 8;
//
string spmid = 9;
//
string fromSpmid = 10;
//
int32 teenagersMode = 11;
CodeType codetype = 12; //
//
CodeType codetype = 12;
//
bool isPreview = 13;
}
//
message PlayViewReply{
bilibili.app.playurl.v1.VideoInfo info = 1; //
PlayAbilityConf PlayConf = 2; //
//
bilibili.app.playurl.v1.VideoInfo info = 1;
//
PlayAbilityConf PlayConf = 2;
}

View File

@ -0,0 +1,387 @@
syntax = "proto3";
package bilibili.community.service.dm.v1;
//
message DanmakuAIFlag{
//
repeated DanmakuFlag dmFlags = 1;
}
//
message DanmakuElem{
//dmid
int64 id = 1;
//
int32 progress = 2;
//
int32 mode = 3;
//
int32 fontsize = 4;
//
uint32 color = 5;
//UID hash
string midHash = 6;
//
string content = 7;
//
int64 ctime = 8;
//
int32 weight = 9;
//
string action = 10;
//
int32 pool = 11;
//dmid-str
string idStr = 12;
//
//0: 4: 16:?
int32 attr = 13;
}
//
message DanmakuFlag{
//
int64 dmid = 1;
//
uint32 flag = 2;
}
//
message DanmakuFlagConfig{
//
int32 recFlag = 1;
//
string recText = 2;
//
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
int64 id = 1;
//id-str
string idStr = 2;
//
string lan = 3;
//
string lanDoc = 4;
//url
string subtitleUrl = 5;
//
UserInfo author = 6;
}
//
message UserInfo{
//uid
int64 mid = 1;
//
string name = 2;
//
string sex = 3;
//url
string face = 4;
//
string sign = 5;
//
int32 rank = 6;
}
//
message VideoMask{
//cid
int64 cid = 1;
//
//0:web端 1:app端
int32 plat = 2;
//
int32 fps = 3;
//
int64 time = 4;
//url
string maskUrl = 5;
}
//
message VideoSubtitle{
//
string lan = 1;
//
string lanDoc = 2;
//
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

@ -0,0 +1,774 @@
//v1接口
syntax = "proto3";
package bilibili.main.community.reply.v1;
import "google/protobuf/any.proto";
service Reply {
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/MainList
rpc MainList(MainListReq) returns (MainListReply);
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DetailList
rpc DetailList(DetailListReq) returns (DetailListReply);
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DialogList
rpc DialogList(DialogListReq) returns (DialogListReply);
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItemPreHook
rpc SearchItemPreHook(SearchItemPreHookReq) returns (SearchItemPreHookReply);
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItem
rpc SearchItem(SearchItemReq) returns (SearchItemReply);
}
//
enum Mode{
//
DEFAULT = 0;
//
UNSPECIFIED = 1;
//
MAIN_LIST_TIME = 2;
//
MAIN_LIST_HOT = 3;
}
//
message CursorReq{
//
int64 next = 1;
//
int64 prev = 2;
//
Mode mode = 4;
}
//
message CursorReply{
//
int64 next = 1;
//
int64 prev = 2;
//
bool isBegin = 3;
//
bool isEnd = 4;
//
Mode mode = 5;
}
//
enum SearchItemType{
//
DEFAULT_ITEM_TYPE = 0;
//
GOODS_VALUE = 1;
//
VIDEO_VALUE = 2;
//
ARTICLE_VALUE = 3;
}
//
enum DetailListScene{
//
REPLY = 0;
//
MSG_FEED = 1;
}
//
message SearchItemCursorReq{
//
int64 next = 1;
//
SearchItemType itemType = 2;
}
//
message SearchItemCursorReply{
//
bool hasNext = 1;
//
int64 next = 2;
}
//
message Member{
//UID
int64 mid = 1;
//
string name = 2;
//
string sex = 3;
//url
string face = 4;
//
int64 level = 5;
//
int64 officialVerifyType = 6;
/****VIP相关****/
//
int64 vipType = 7;
//
int64 vipStatus = 8;
//
int64 vipThemeType = 9;
//url
string vipLabelPath = 10;
/****装扮相关****/
//url
string garbPendantImage = 11;
//url
string garbCardImage = 12;
//url
string garbCardImageWithFocus = 13;
//url
string garbCardJumpUrl = 14;
//id
string garbCardNumber = 15;
//id显示颜色
string garbCardFanColor = 16;
//
bool garbCardIsFan = 17;
/****粉丝勋章相关****/
//
string fansMedalName = 18;
//
int64 fansMedalLevel = 19;
//
int64 fansMedalColor = 20;
}
//
message Emote{
//
//1: 2:
int64 size = 1;
//url
string url = 2;
}
//
message Topic{
//url
string link = 1;
//id
int64 id = 2;
}
//
message Url{
//
string title = 1;
//
int64 state = 2;
//url
string prefixIcon = 3;
//
string appUrlSchema = 4;
//
string appName = 5;
//
string appPackageName = 6;
//
string clickReport = 7;
}
//
message Vote{
//id
int64 id = 1;
//
string title = 2;
//
int64 count = 3;
}
//
message Content{
//
string message = 1;
//at到的用户信息
map<string,Member> menber = 2;
//
map<string,Emote> emote = 3;
//
map<string,Topic> topic = 4;
//
map<string,Url> url = 5;
//
Vote vote = 6;
}
//
message ReplyControl{
//
//0: 1: 2:
int64 action = 1;
//UP觉得很赞
bool upLike = 2;
//UP回复
bool upReply = 3;
//
bool showFollowBtn = 4;
//
bool isAssist = 5;
//
string labelText = 6;
//
bool following = 7;
//
bool followed = 8;
//
bool blocked = 9;
//
bool hasFoldedReply = 10;
//
bool isFoldedReply = 11;
//UP置顶
bool isUpTop = 12;
//
bool isAdminTop = 13;
//
bool isVoteTop = 14;
//
int64 maxLine = 15;
//
bool invisible = 16;
}
//
message ReplyInfo{
//
repeated ReplyInfo replies = 1;
//rpid
int64 id = 2;
//id
int64 oid = 3;
//
int64 type = 4;
//UID
int64 mid = 5;
//rpid
int64 root = 6;
//rpid
int64 parent = 7;
//rpid
int64 dialog = 8;
//
int64 like = 9;
//
int64 ctime = 10;
//
int64 count = 11;
//
Content content = 12;
//
Member member = 13;
//
ReplyControl replyControl = 14;
}
//
message SubjectControl{
//UP主UID
int64 upMid = 1;
//
bool isAssist = 2;
//
bool readOnly = 3;
//
bool hasVoteAccess = 4;
//
bool hasLotteryAccess = 5;
//
bool hasFoldedReply = 6;
//
string bgText = 7;
//UP拉黑
bool upBlocked = 8;
//
bool hasActivityAccess = 9;
//
bool showTitle = 10;
//UP主操作标志
bool showUpAction = 11;
//
int64 switcherType = 12;
//
bool inputDisable = 13;
//
string rootText = 14;
//
string childText = 15;
//
int64 count = 16;
//
string title = 17;
}
//
message Notice{
//
int64 id = 1;
//
string content = 2;
//
string link = 3;
}
//
message Lottery{
//
int64 lotteryId = 1;
//
int64 lotteryStatus = 2;
//
int64 lotteryMid = 3;
//
int64 lotteryTime = 4;
//
int64 oid = 5;
//
int64 type = 6;
//
int64 ctime = 7;
//
Content content = 8;
//
Member member = 9;
//
ReplyControl replyControl = 10;
}
//
message Activity{
//
int64 activityId = 1;
//
int64 activityState = 2;
//
string activityPlaceholder = 3;
}
//
message UpSelection{
//
int64 pendingCount = 1;
//
int64 ignoreCount = 2;
}
//
message CM{
//
google.protobuf.Any sourceContent = 1;
}
//
message ArticleSearchItem{
//
string title = 1;
//
string upNickname = 2;
//
repeated string covers = 3;
}
//
message GoodsSearchItem{
//
int64 id = 1;
//
string name = 2;
//
string price = 3;
//
string income = 4;
//
string img = 5;
//
string label = 6;
}
//
enum VideoItemCase{
//
VIDEOITEM_NOT_SET = 0;
//
UGC = 2;
//
PGC = 3;
}
//
message UGCVideoSearchItem{
//
string title = 1;
//
string upNickname = 2;
//
int64 duration = 3;
//
string cover = 4;
}
//
message PGCVideoSearchItem{
//
string title = 1;
//
string category = 2;
//
string cover = 3;
}
//
message VideoSearchItem{
//
VideoItemCase type = 1;
//
UGCVideoSearchItem UGCVideo = 2;
//
PGCVideoSearchItem PGCVideo = 3;
}
//
enum ItemCase{
//
ITEM_NOT_SET = 0;
//
GOODS = 2;
//
VIDEO = 3;
//
ARTICLE = 4;
}
//
message SearchItem{
//
string url = 1;
//
GoodsSearchItem goods = 2;
//
VideoSearchItem video = 3;
//
ArticleSearchItem article = 4;
}
//
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

@ -1,340 +0,0 @@
//v1接口
syntax = "proto3";
package bilibili.main.community.reply.v1;
import "google/protobuf/any.proto";
message CursorReq{
enum Mode{
DEFAULT = 0;
UNSPECIFIED = 1;
MAIN_LIST_TIME = 2;
MAIN_LIST_HOT = 3;
}
int64 next = 1;
int64 prev = 2;
Mode mode = 3; //
}
message CursorReply{
enum Mode{
DEFAULT = 0;
UNSPECIFIED = 1;
MAIN_LIST_TIME = 2;
MAIN_LIST_HOT = 3;
}
int64 next = 1;
int64 prev = 2;
bool isBegin = 3;
bool isEnd = 4;
Mode mode = 5;
}
enum SearchItemType{
DEFAULT_ITEM_TYPE = 0;
GOODS_VALUE = 1;
VIDEO_VALUE = 2;
ARTICLE_VALUE = 3;
}
message SearchItemCursorReq{
int64 next = 1;
SearchItemType itemType = 2;
}
message SearchItemCursorReply{
bool hasNext = 1;
int64 next = 2;
}
message Member{
int64 mid = 1; //UID
string name = 2; //
string sex = 3; //
string face = 4; //url
int64 level = 5; //
int64 officialVerifyType = 6; //
int64 vipType = 7; //
int64 vipStatus = 8; //
int64 vipThemeType = 9;
string vipLabelPath = 10;
string garbPendantImage = 11; //url
string garbCardImage = 12; //url
string garbCardImageWithFocus = 13;
string garbCardJumpUrl = 14;//url
string garbCardNumber = 15;//id
string garbCardFanColor = 16;//id显示颜色
bool garbCardIsFan = 17;//
string fansMedalName = 18;
int64 fansMedalLevel = 19;
int64 fansMedalColor = 20;
}
message Content{
message Emote{
int64 size = 1;// 1: 2:
string url = 2;//url
}
message Topic{
string link = 1;
int64 id = 2;
}
message Url{
string title = 1; //
int64 state = 2;
string prefixIcon = 3; //url
string appUrlSchema = 4;
string appName = 5;
string appPackageName = 6;
string clickReport = 7;
}
message Vote{
int64 id = 1;
string title = 2;
int64 count = 3;
}
string message = 1; //
map<string,Member> menber = 2; //at到的用户信息
map<string,Emote> emote = 3; //
map<string,Topic> topic = 4; //
map<string,Url> url = 5; //
Vote vote = 6;
}
message ReplyControl{
int64 action = 1; // 0: 1: 2:
bool upLike = 2; //UP觉得很赞
bool upReply = 3; //UP回复
bool showFollowBtn = 4; //
bool isAssist = 5;
string labelText = 6;
bool following = 7; //
bool followed = 8; //
bool blocked = 9;
bool hasFoldedReply = 10;
bool isFoldedReply = 11;
bool isUpTop = 12; //UP置顶
bool isAdminTop = 13; //
bool isVoteTop = 14; //
int64 maxLine = 15; //
bool invisible = 16;
}
message ReplyInfo{
repeated ReplyInfo replies = 1; //
int64 id = 2; //rpid
int64 oid = 3; //id
int64 type = 4; //id
int64 mid = 5; //UID
int64 root = 6; //rpid
int64 parent = 7; //rpid
int64 dialog = 8; //rpid
int64 like = 9; //
int64 ctime = 10; //
int64 count = 11; //
Content content = 12; //
Member member = 13; //
ReplyControl replyControl = 14; //
}
message SubjectControl{
int64 upMid = 1; //UP主UID
bool isAssist = 2;
bool readOnly = 3;
bool hasVoteAccess = 4;
bool hasLotteryAccess = 5;
bool hasFoldedReply = 6;
string bgText = 7; //
bool upBlocked = 8;
bool hasActivityAccess = 9;
bool showTitle = 10;
bool showUpAction = 11;
int64 switcherType = 12;
bool inputDisable = 13;
string rootText = 14; //
string childText = 15;
int64 count = 16; //
string title = 17; //
}
message Notice{
int64 id = 1;
string content = 2;
string link = 3;
}
message Lottery{
int64 lotteryId = 1;
int64 lotteryStatus = 2;
int64 lotteryMid = 3;
int64 lotteryTime = 4;
int64 oid = 5;
int64 type = 6;
int64 ctime = 7;
Content content = 8;
Member member = 9;
ReplyControl replyControl = 10;
}
message Activity{
int64 activityId = 1;
int64 activityState = 2;
string activityPlaceholder = 3;
}
message UpSelection{
int64 pendingCount = 1;
int64 ignoreCount = 2;
}
message CM{
google.protobuf.Any sourceContent = 1;
}
message SearchItem{
message ArticleSearchItem{
string title = 1;
string upNickname = 2;
repeated string covers = 3;
}
message GoodsSearchItem{
int64 id = 1;
string name = 2;
string price = 3;
string income = 4;
string img = 5;
string label = 6;
}
message VideoSearchItem{
enum VideoItemCase{
VIDEOITEM_NOT_SET = 0;
UGC = 2;
PGC = 3;
}
message UGCVideoSearchItem{
string title = 1;
string upNickname = 2;
int64 duration = 3;
string cover = 4;
}
message PGCVideoSearchItem{
string title = 1;
string category = 2;
string cover = 3;
}
VideoItemCase type = 1;
UGCVideoSearchItem UGCVideo = 2;
PGCVideoSearchItem PGCVideo = 3;
}
enum ItemCase{
ITEM_NOT_SET = 0;
GOODS = 2;
VIDEO = 3;
ARTICLE = 4;
}
string url = 1;
GoodsSearchItem goods = 2;
VideoSearchItem video = 3;
ArticleSearchItem article = 4;
}
message SearchItemReplyExtraInfo{
string eventId = 1;
}
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/MainList
//
message MainListReq{
int64 oid = 1; //id
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; //
ReplyInfo upTop = 4; //UP置顶评论
ReplyInfo adminTop = 5; //
ReplyInfo voteTop = 6; //
Notice notice = 7;
Lottery lottery = 8; //
Activity activity = 9;
UpSelection upSelection = 10;
CM cm = 11;
}
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DetailList
//
message DetailListReq{
enum DetailListScene{
REPLY = 0; //
MSG_FEED = 1; //
}
int64 oid = 1; //id
int64 type = 2; //
int64 root = 3; //rpid
int64 rpid = 4; //rpid
CursorReq cursor = 5; //
DetailListScene scene = 6; //
}
//
message DetailListReply{
CursorReply cursor = 1; //
SubjectControl subjectControl = 2; //
ReplyInfo root = 3; //()
Activity activity = 4;
}
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DialogList
//
message DialogListReq{
int64 oid = 1; //id
int64 type = 2; //
int64 root = 3; //rpid
int64 rpid = 4; //rpid
CursorReq cursor = 5; //
}
//
message DialogListReply{
CursorReply cursor = 1; //
SubjectControl subjectControl = 2; //
repeated ReplyInfo replies = 3; //
Activity activity = 4;
}
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItemPreHook
//
message SearchItemPreHookReq{
int64 oid = 1; //id
int64 type = 2; //
}
//
message SearchItemPreHookReply{
string placeholderText = 1;
string backgroundText = 2;
repeated SearchItemType orderedType = 3;
}
//
//https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItem
//
message SearchItemReq{
SearchItemCursorReq cursor = 1; //
int64 oid = 2; //id
int64 type = 3; //
string keyword = 4; //
}
//
message SearchItemReply{
SearchItemCursorReply cursor = 1;
repeated SearchItem items = 2;
SearchItemReplyExtraInfo extra = 3;
}

View File

@ -1,20 +1,46 @@
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,10 +1,30 @@
syntax = "proto3";
package bilibili.metadata.locale;
message LocaleIds{
//
string language = 1;
//
string script = 2;
//
string region = 3;
}
//
//x-bili-locale-bin
message LocaleIds{
string language = 1;
string script = 2;
string region = 3;
}
message Locale {
//App设置的locale
LocaleIds c_locale = 1;
//locale
LocaleIds s_locale = 2;
//sim卡的国家码+
string sim_code = 3;
//
string timezone = 4;
}

View File

@ -1,23 +1,28 @@
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;
}
import "google/protobuf/any.proto";
//
//grpc-status-details-bin
message Status{
int32 code = 1; //
string message = 2; //
repeated google.protobuf.Any details = 3; //
}

View File

@ -1,25 +1,61 @@
syntax = "proto3";
package bilibili.metadata.network;
//
enum Type{
//
NT_UNKNOWN = 0;
WIFI = 1; //wifi
CELLULAR = 2; //
OFFLINE = 3; //线
ETHERNET = 5; //
OTHERNET = 4; //
//wifi
WIFI = 1;
//
CELLULAR = 2;
//
OFFLINE = 3;
//
ETHERNET = 5;
//
OTHERNET = 4;
}
/*
enum Tf{
//
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; //
//Tf tf = 2;
int32 tf = 2;
//
Type type = 1;
//
TFType tf = 2;
//
string oid = 3;
}

View File

@ -1,8 +1,30 @@
syntax = "proto3";
package bilibili.metadata.restriction;
//
enum ModeType{
NORMAL = 0;
TEENAGERS = 1;
LESSONS = 2;
}
//
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

@ -0,0 +1,409 @@
//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;
}
//
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{
//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;
//
int32 forceHost = 7;
//4K
bool fourk = 8;
//
string spmid = 9;
//
string fromSpmid = 10;
//
int32 teenagersMode = 11;
//
CodeType codetype = 12;
//
bool isPreview = 13;
//
int64 roomId = 14;
//
bool isNeedViewInfo = 15;
}
//
message PlayViewReply{
//
VideoInfo info=1;
//
PlayAbilityConf PlayConf=2;
//
PlayViewBusinessInfo Business=3;
//
Event event=4;
//
ViewInfo viewInfo=5;
}

View File

@ -1,245 +0,0 @@
//APP端PGC播放v2接口
//https://app.bilibili.com/bilibili.pgc.gateway.player.v2.PlayURL/PlayView
syntax = "proto3";
package bilibili.pgc.gateway.player.v2;
import "google/protobuf/timestamp.proto";
message playViewReq{
enum CodeType{
NOCODE = 0;
CODE264 = 1;
CODE265 = 2;
}
int64 epid = 1; //epid
int64 cid = 2; //cid
int64 qn = 3; //
int32 fnver = 4;
int32 fnval = 5; //
uint32 download = 6; // 0: 1:flv下载 2:dash下载
int32 forceHost = 7;
bool fourk = 8; //4K
string spmid = 9;
string fromSpmid = 10;
int32 teenagersMode = 11;
CodeType codetype = 12; //
bool isPreview = 13;
int64 roomId = 14;
bool isNeedViewInfo = 15;
}
message VideoInfo{
message stream{
message streamInfo{
message Limit{
string title=1;
string uri=2;
string msg=3;
}
uint32 quality=1;//
string format=2;//
string description=3;//
uint32 errCode=4;
Limit limit=5;
bool needVip=6;//vip
bool needLogin=7;//
bool intact=8;
bool noRexcode=9;
int64 attribute=10;
string newDescription=11;//
string displayDesc=12;//
string superscript=13;//
}
message DashVideo{
string baseUrl=1;//线
repeated string backupUrl=2;//
uint32 bandwidth=3;//
uint32 codecid=4;
string md5=5;//md5
uint64 size=6;//
uint32 audioId=7;
bool noRexcode=8;
}
message SegmentVideo{
message ResponseUrl{
uint32 order=1;
uint64 length=2;
uint64 size=3;
string url=4;
repeated string backupUrl=5;
string md5=6;
}
repeated ResponseUrl segment=1;
}
streamInfo info=1;//
DashVideo dashvideo=2;//dash流
SegmentVideo segmentvideo=3;//flv流
}
message DashAudio{
uint32 id=1;
string baseUrl=2;//线
repeated string backupUrl=3;//
uint32 bandwidth=4;//
uint32 codecid=5;//
string md5=6;//md5
uint64 size=7;//
}
message DolbyItem{
int32 type=1;
DashAudio audio=2;
}
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 Event{
message Shake{
string file=1;
}
Shake shake=1;
}
message ViewInfo{
message Report{
string showEventId=1;
string clickEventId=2;
string extends=3;
}
message ButtonInfo{
message BadgeInfo{
string text=1;
string bgColor=2;
string bgColorNight=3;
}
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 Dialog{
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;
}
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 CouponInfo{
message CouponToast{
message CouponTextInfo{
string positivePreview=1;
string section=2;
}
CouponTextInfo textInfo=1;
ButtonInfo button=2;
}
message PopWin{
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;
}
string title=1;
repeated Coupon coupon=2;
repeated ButtonInfo button=3;
string bottomText=4;
}
CouponToast toast=1;
PopWin popWin=2;
}
message EndPage{
Dialog dialog=1;
bool hide=2;
}
Dialog dialog=1;
Toast toast=2;
CouponInfo couponInfo=3;
repeated int64 demandNoPayEpids=4;
EndPage endPage=5;
}
message PlayViewReply{
VideoInfo info=1;//
PlayAbilityConf PlayConf=2;//
PlayViewBusinessInfo Business=3;
Event event=4;
ViewInfo viewInfo=5;
}

View File

@ -1,4 +1,5 @@
syntax = "proto3";
package bilibili.rpc;
import "google/protobuf/any.proto";
@ -6,7 +7,12 @@ import "google/protobuf/any.proto";
//
//grpc-status-details-bin
message Status{
int32 code = 1; //
string message = 2; //
repeated google.protobuf.Any details = 3; //
//
int32 code = 1;
//
string message = 2;
//
repeated google.protobuf.Any details = 3;
}

View File

@ -48,7 +48,7 @@ Token有效期为1月更改密码或过期失效
| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | |
| aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | |
| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | | | |
| bca7e84c2d947ac6 | | 安卓 | 客户端 | 登录专用 |
| bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | 安卓 | 客户端 | 登录专用 |
| cc578d267072c94d | | 安卓 | 轻视频 | |
| cc8617fd6961e070 | | 安卓 | 漫画 | |
| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 |