bilibili-API-collect/grpc_api/bilibili/pgc/gateway/player/v1/playurl.proto
2022-02-05 18:34:14 +08:00

266 lines
6.8 KiB
Protocol Buffer

syntax = "proto3";
package bilibili.pgc.gateway.player.v1;
import "bilibili/app/playurl/v1/playurl.proto";
// 播放地址
service PlayURL {
// 播放页信息
rpc PlayView (PlayViewReq) returns (PlayViewReply);
// 获取投屏地址
rpc Project (ProjectReq) returns (ProjectReply);
// 直播播放页信息
rpc LivePlayView (LivePlayViewReq) returns (LivePlayViewReply);
}
// 其他业务信息
message BusinessInfo {
// 当前视频是否是预览
bool is_preview = 1;
// 用户是否承包过
bool bp = 2;
// drm使用
string marlin_token = 3;
}
// 事件
message Event {
// 震动
Shake shake = 1;
}
// 播放信息
message LivePlayInfo {
//
int32 current_qn = 1;
//
repeated QualityDescription quality_description = 2;
//
repeated ResponseDataUrl durl = 3;
}
// 直播播放页信息-响应
message LivePlayViewReply {
// 房间信息
RoomInfo room_info = 1;
// 播放信息
LivePlayInfo play_info = 2;
}
// 直播播放页信息-请求
message LivePlayViewReq {
// 剧集epid
int64 ep_id = 1;
// 清晰度
// 0,10000:原画 400:蓝光 250:超清 150:高清 80:流畅
uint32 quality = 2;
// 类型
// 0:音频 2:hevc 4:dash 8:p2p, 16:蒙版
uint32 ptype = 3;
// 是否请求https
bool https = 4;
// 0:默认直播间播放 1:投屏播放
uint32 play_type = 5;
// 投屏设备
// 0:默认其他 1:OTT设备
int32 device_type = 6;
}
// 禁用功能配置
message PlayAbilityConf {
bool background_play_disable = 1; // 后台播放
bool flip_disable = 2; // 镜像反转
bool cast_disable = 3; // 投屏
bool feedback_disable = 4; // 反馈
bool subtitle_disable = 5; // 字幕
bool playback_rate_disable = 6; // 播放速度
bool time_up_disable = 7; // 定时停止
bool playback_mode_disable = 8; // 播放方式
bool scale_mode_disable = 9; // 画面尺寸
bool like_disable = 10; // 赞
bool dislike_disable = 11; // 踩
bool coin_disable = 12; // 投币
bool elec_disable = 13; // 充电
bool share_disable = 14; // 分享
bool screen_shot_disable = 15; // 截图
bool lock_screen_disable = 16; // 锁定
bool recommend_disable = 17; // 相关推荐
bool playback_speed_disable = 18; // 播放速度
bool definition_disable = 19; // 清晰度
bool selections_disable = 20; // 选集
bool next_disable = 21; // 下一集
bool edit_dm_disable = 22; // 编辑弹幕
bool small_window_disable = 23; // 小窗
bool shake_disable = 24; // 震动
bool outer_dm_disable = 25; // 外层面板弹幕设置
bool inner_dm_disable = 26; // 三点内弹幕设置
bool freya_enter_disable = 27; // 一起看入口
bool dolby_disable = 28; // 杜比音效
bool freya_full_disable = 29; // 全屏一起看入口
bool skip_oped_switch_disable = 30; //
}
// 播放页信息-响应
message PlayViewReply {
// 视频流信息
bilibili.app.playurl.v1.VideoInfo video_info = 1;
// 播放控件用户自定义配置
PlayAbilityConf play_conf = 2;
// 业务需要的其他信息
BusinessInfo business = 3;
// 事件
Event event = 4;
}
// 播放页信息-请求
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;
// 流url强制是用域名
// 0:允许使用ip 1:使用http 2:使用https
int32 force_host = 7;
// 是否4K
bool fourk = 8;
// 当前页spm
string spmid = 9;
// 上一页spm
string from_spmid = 10;
// 青少年模式
int32 teenagers_mode = 11;
// 视频编码
bilibili.app.playurl.v1.CodeType prefer_codec_type = 12;
// 是否强制请求预览视频
bool is_preview = 13;
// 一起看房间id
int64 room_id = 14;
}
// 投屏地址-响应
message ProjectReply {
bilibili.app.playurl.v1.PlayURLReply project = 1;
}
// 投屏地址-请求
message ProjectReq {
// 剧集epid
int64 ep_id = 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;
// 使用协议
// 0:默认乐播 1:自建协议 2:云投屏 3:airplay
int32 protocol = 11;
// 投屏设备
// 0:默认其他 1:OTT设备
int32 device_type = 12;
//
bool use_new_project_code = 13;
}
//
message QualityDescription {
//
int32 qn = 1;
//
string desc = 2;
}
//
message ResponseDataUrl {
string url = 1;
// 表示stream类型,按位表示
// Value| 1 | 1 | 1 | 1 | 1
// --------------------------------------------
// desc | mask | p2p | dash | hevc | only-audio
uint32 stream_type = 2;
// 表示支持p2p的cdn厂商,按位表示
// 值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
// -----------------------------------------------
// CDN | hw | bdy | bsy | ws | txy | qn | js | bvc
uint32 ptag = 3;
}
// 房间信息
message RoomInfo {
// 房间长号
int64 room_id = 1;
// 主播mid
int64 uid = 2;
// 状态相关
RoomStatusInfo status = 3;
// 展示相关
RoomShowInfo show = 4;
}
// 房间信息-展示相关
message RoomShowInfo {
// 短号
int64 short_id = 1;
// 人气值
int64 popularity_count = 8;
// 最近一次开播时间戳
int64 live_start_time = 10;
}
// 房间信息-状态相关
message RoomStatusInfo {
// 直播间状态
// 0:未开播 1:直播中 2:轮播中
int64 live_status = 1;
// 横竖屏方向
// 0:横屏 1:竖屏
int64 live_screen_type = 2;
// 是否开播过标识
int64 live_mark = 3;
// 封禁状态
// 0:未封禁 1:审核封禁 2:全网封禁
int64 lock_status = 4;
// 封禁时间戳
int64 lock_time = 5;
// 隐藏状态
// 0:不隐藏 1:隐藏
int64 hidden_status = 6;
// 隐藏时间戳
int64 hidden_time = 7;
// 直播类型
// 0:默认 1:摄像头直播 2;录屏直播 3:语音直播
int64 live_type = 8;
//
int64 room_shield = 9;
}
// 震动
message Shake {
// 文件地址
string file = 1;
}