bilibili-API-collect/grpc_api/bilibili/app/playurl/v1/playurl.proto
2021-06-14 01:33:41 +08:00

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;
}