mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2025-01-29 13:20:09 +08:00
739 lines
11 KiB
Protocol Buffer
739 lines
11 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package bilibili.app.playurl.v1;
|
|
|
|
//视频url
|
|
service PlayURL {
|
|
// 获取视频url
|
|
rpc PlayURL (PlayURLReq) returns (PlayURLReply);
|
|
// 获取投屏url
|
|
rpc Project (ProjectReq) returns (ProjectReply);
|
|
// 获取视频url及播放界面配置
|
|
rpc PlayView (PlayViewReq) returns (PlayViewReply);
|
|
// 编辑播放界面配置
|
|
rpc PlayConfEdit (PlayConfEditReq) returns (PlayConfEditReply);
|
|
// 获取播放界面配置
|
|
rpc PlayConf (PlayConfReq) returns (PlayConfReply);
|
|
}
|
|
|
|
// 获取视频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;
|
|
// 当前页spm
|
|
string spmid = 9;
|
|
// 上一页spm
|
|
string fromSpmid = 10;
|
|
}
|
|
|
|
// 视频url-回复
|
|
message PlayURLReply {
|
|
// 清晰的
|
|
uint32 quality = 1;
|
|
// 格式
|
|
string format = 2;
|
|
// 总时长(单位为ms)
|
|
uint64 timelength = 3;
|
|
// 编码id
|
|
uint32 videoCodecid = 4;
|
|
// 视频流版本
|
|
uint32 fnver = 5;
|
|
// 视频流格式
|
|
uint32 fnval = 6;
|
|
// 是否支持投影
|
|
bool videoProject = 7;
|
|
// 分段视频流
|
|
repeated ResponseUrl durl = 8;
|
|
// dash视频流
|
|
ResponseDash dash = 9;
|
|
// 是否非全二压
|
|
int32 noRexcode = 10;
|
|
//
|
|
UpgradeLimit upgradeLimit = 11;
|
|
//
|
|
repeated FormatDescription supportFormats = 12;
|
|
// 视频格式
|
|
VideoType type = 13;
|
|
}
|
|
|
|
//获取播放界面配置-请求
|
|
message PlayConfReq {
|
|
|
|
}
|
|
|
|
//获取播放界面配置-回复
|
|
message PlayConfReply {
|
|
//播放控件用户自定义配置
|
|
PlayAbilityConf playConf = 1;
|
|
}
|
|
|
|
//-请求
|
|
message PlayConfEditReq {
|
|
//
|
|
repeated PlayConfState playConf = 1;
|
|
}
|
|
|
|
//-回复
|
|
message PlayConfEditReply {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取视频播放业务数据-请求
|
|
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 = 0;
|
|
// H.264
|
|
CODE264 = 1;
|
|
// H.265
|
|
CODE265 = 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格式
|
|
FLV_VALUE = 1;
|
|
// dash格式
|
|
DASH_VALUE = 2;
|
|
// mp4格式
|
|
MP4_VALUE = 3;
|
|
} |