#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Animation {
#[prost(map = "string, string", tag = "1")]
pub qn_svga_animation_map: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
}
impl ::prost::Name for Animation {
const NAME: &'static str = "Animation";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Animation".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Animation".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AudioMaterialProto {
#[prost(string, tag = "1")]
pub audio_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub edition: ::prost::alloc::string::String,
#[prost(int64, tag = "4")]
pub person_id: i64,
#[prost(string, tag = "5")]
pub person_name: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub person_avatar: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "7")]
pub audio: ::prost::alloc::vec::Vec<DashItem>,
}
impl ::prost::Name for AudioMaterialProto {
const NAME: &'static str = "AudioMaterialProto";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.AudioMaterialProto".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.AudioMaterialProto".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BadgeInfo {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub bg_color: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub bg_color_night: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub text_color: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub bg_gradient_color: ::core::option::Option<GradientColor>,
#[prost(string, tag = "6")]
pub img: ::prost::alloc::string::String,
}
impl ::prost::Name for BadgeInfo {
const NAME: &'static str = "BadgeInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.BadgeInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.BadgeInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BottomDisplay {
#[prost(message, optional, tag = "1")]
pub title: ::core::option::Option<TextInfo>,
#[prost(string, tag = "2")]
pub icon: ::prost::alloc::string::String,
}
impl ::prost::Name for BottomDisplay {
const NAME: &'static str = "BottomDisplay";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.BottomDisplay".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.BottomDisplay".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrandReport {
#[prost(string, tag = "1")]
pub brand_list: ::prost::alloc::string::String,
}
impl ::prost::Name for BrandReport {
const NAME: &'static str = "BrandReport";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.BrandReport".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.BrandReport".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ButtonInfo {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub text_color: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub text_color_night: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub bg_color: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub bg_color_night: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub link: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub action_type: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub badge_info: ::core::option::Option<BadgeInfo>,
#[prost(message, optional, tag = "9")]
pub report: ::core::option::Option<Report>,
#[prost(string, tag = "10")]
pub left_strikethrough_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "11")]
pub simple_text_info: ::core::option::Option<TextInfo>,
#[prost(string, tag = "12")]
pub simple_bg_color: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub simple_bg_color_night: ::prost::alloc::string::String,
#[prost(message, optional, tag = "14")]
pub bg_gradient_color: ::core::option::Option<GradientColor>,
#[prost(map = "string, string", tag = "15")]
pub order_report_params: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(message, optional, tag = "16")]
pub task_param: ::core::option::Option<TaskParam>,
#[prost(string, tag = "17")]
pub pc_link: ::prost::alloc::string::String,
#[prost(int64, tag = "18")]
pub jump_type: i64,
}
impl ::prost::Name for ButtonInfo {
const NAME: &'static str = "ButtonInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ButtonInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ButtonInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CastTips {
#[prost(int32, tag = "1")]
pub code: i32,
#[prost(string, tag = "2")]
pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for CastTips {
const NAME: &'static str = "CastTips";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.CastTips".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.CastTips".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClipInfo {
#[prost(int64, tag = "1")]
pub material_no: i64,
#[prost(int32, tag = "2")]
pub start: i32,
#[prost(int32, tag = "3")]
pub end: i32,
#[prost(enumeration = "ClipType", tag = "4")]
pub clip_type: i32,
#[prost(string, tag = "5")]
pub toast_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub multi_view: ::core::option::Option<MultiView>,
}
impl ::prost::Name for ClipInfo {
const NAME: &'static str = "ClipInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ClipInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ClipInfo".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ContinuePlayInfo {
#[prost(int64, tag = "1")]
pub continue_play_ep_id: i64,
}
impl ::prost::Name for ContinuePlayInfo {
const NAME: &'static str = "ContinuePlayInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ContinuePlayInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ContinuePlayInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Coupon {
#[prost(string, tag = "1")]
pub coupon_token: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub r#type: i64,
#[prost(string, tag = "3")]
pub value: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub use_desc: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub desc: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub pay_button_text: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub pay_button_text_line_through: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub real_amount: ::prost::alloc::string::String,
#[prost(message, optional, tag = "10")]
pub expire_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(int64, tag = "11")]
pub otype: i64,
#[prost(string, tag = "12")]
pub amount: ::prost::alloc::string::String,
#[prost(enumeration = "RedemptionMode", tag = "13")]
pub redemption_mode: i32,
}
impl ::prost::Name for Coupon {
const NAME: &'static str = "Coupon";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Coupon".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Coupon".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CouponInfo {
#[prost(message, optional, tag = "1")]
pub toast: ::core::option::Option<CouponToast>,
#[prost(message, optional, tag = "2")]
pub pop_win: ::core::option::Option<PopWin>,
}
impl ::prost::Name for CouponInfo {
const NAME: &'static str = "CouponInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.CouponInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.CouponInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CouponTextInfo {
#[prost(string, tag = "1")]
pub positive_preview: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub section: ::prost::alloc::string::String,
}
impl ::prost::Name for CouponTextInfo {
const NAME: &'static str = "CouponTextInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.CouponTextInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.CouponTextInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CouponToast {
#[prost(message, optional, tag = "1")]
pub text_info: ::core::option::Option<CouponTextInfo>,
#[prost(message, optional, tag = "2")]
pub button: ::core::option::Option<ButtonInfo>,
}
impl ::prost::Name for CouponToast {
const NAME: &'static str = "CouponToast";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.CouponToast".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.CouponToast".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DashItem {
#[prost(int32, tag = "1")]
pub id: i32,
#[prost(string, tag = "2")]
pub base_url: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "3")]
pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int32, tag = "4")]
pub bandwidth: i32,
#[prost(int32, tag = "5")]
pub codecid: i32,
#[prost(string, tag = "6")]
pub md5: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub size: i64,
#[prost(string, tag = "8")]
pub frame_rate: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub widevine_pssh: ::prost::alloc::string::String,
}
impl ::prost::Name for DashItem {
const NAME: &'static str = "DashItem";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.DashItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.DashItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DashVideo {
#[prost(string, tag = "1")]
pub base_url: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "2")]
pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int32, tag = "3")]
pub bandwidth: i32,
#[prost(int32, tag = "4")]
pub codecid: i32,
#[prost(string, tag = "5")]
pub md5: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub size: i64,
#[prost(int32, tag = "7")]
pub audio_id: i32,
#[prost(bool, tag = "8")]
pub no_rexcode: bool,
#[prost(string, tag = "9")]
pub frame_rate: ::prost::alloc::string::String,
#[prost(int32, tag = "10")]
pub width: i32,
#[prost(int32, tag = "11")]
pub height: i32,
#[prost(string, tag = "12")]
pub widevine_pssh: ::prost::alloc::string::String,
}
impl ::prost::Name for DashVideo {
const NAME: &'static str = "DashVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.DashVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.DashVideo".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DataControl {
#[prost(bool, tag = "1")]
pub need_watch_progress: bool,
}
impl ::prost::Name for DataControl {
const NAME: &'static str = "DataControl";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.DataControl".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.DataControl".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dialog {
#[prost(int64, tag = "1")]
pub code: i64,
#[prost(string, tag = "2")]
pub msg: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub style_type: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub config: ::core::option::Option<DialogConfig>,
#[prost(message, optional, tag = "6")]
pub title: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "7")]
pub subtitle: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "8")]
pub image: ::core::option::Option<ImageInfo>,
#[prost(message, repeated, tag = "9")]
pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
#[prost(message, optional, tag = "10")]
pub bottom_desc: ::core::option::Option<ButtonInfo>,
#[prost(message, optional, tag = "11")]
pub report: ::core::option::Option<Report>,
#[prost(int32, tag = "12")]
pub count_down_sec: i32,
#[prost(message, optional, tag = "13")]
pub right_bottom_desc: ::core::option::Option<TextInfo>,
#[prost(message, repeated, tag = "14")]
pub bottom_display: ::prost::alloc::vec::Vec<BottomDisplay>,
#[prost(message, repeated, tag = "15")]
pub play_list: ::prost::alloc::vec::Vec<Playlist>,
#[prost(string, tag = "16")]
pub link: ::prost::alloc::string::String,
#[prost(message, optional, tag = "17")]
pub half_image: ::core::option::Option<ImageInfo>,
#[prost(int32, tag = "18")]
pub hide_button_on_half: i32,
#[prost(string, tag = "19")]
pub link_desc: ::prost::alloc::string::String,
}
impl ::prost::Name for Dialog {
const NAME: &'static str = "Dialog";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Dialog".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Dialog".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DialogConfig {
#[prost(bool, tag = "1")]
pub is_show_cover: bool,
#[prost(bool, tag = "2")]
pub is_orientation_enable: bool,
#[prost(bool, tag = "3")]
pub is_nested_scroll_enable: bool,
#[prost(bool, tag = "4")]
pub is_force_halfscreen_enable: bool,
#[prost(bool, tag = "5")]
pub is_background_translucent_enable: bool,
}
impl ::prost::Name for DialogConfig {
const NAME: &'static str = "DialogConfig";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.DialogConfig".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.DialogConfig".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Dimension {
#[prost(int32, tag = "1")]
pub width: i32,
#[prost(int32, tag = "2")]
pub height: i32,
#[prost(int32, tag = "3")]
pub rotate: i32,
}
impl ::prost::Name for Dimension {
const NAME: &'static str = "Dimension";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Dimension".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Dimension".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DolbyItem {
#[prost(enumeration = "dolby_item::Type", tag = "1")]
pub r#type: i32,
#[prost(message, repeated, tag = "2")]
pub audio: ::prost::alloc::vec::Vec<DashItem>,
}
pub mod dolby_item {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Type {
None = 0,
Common = 1,
Atmos = 2,
}
impl Type {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::None => "NONE",
Self::Common => "COMMON",
Self::Atmos => "ATMOS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NONE" => Some(Self::None),
"COMMON" => Some(Self::Common),
"ATMOS" => Some(Self::Atmos),
_ => None,
}
}
}
}
impl ::prost::Name for DolbyItem {
const NAME: &'static str = "DolbyItem";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.DolbyItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.DolbyItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EndPage {
#[prost(message, optional, tag = "1")]
pub dialog: ::core::option::Option<Dialog>,
#[prost(bool, tag = "2")]
pub hide: bool,
}
impl ::prost::Name for EndPage {
const NAME: &'static str = "EndPage";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EndPage".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EndPage".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EpInlineVideo {
#[prost(int64, tag = "1")]
pub material_no: i64,
#[prost(int64, tag = "2")]
pub aid: i64,
#[prost(int64, tag = "3")]
pub cid: i64,
}
impl ::prost::Name for EpInlineVideo {
const NAME: &'static str = "EpInlineVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EpInlineVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EpInlineVideo".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EpPreVideo {
#[prost(int64, tag = "1")]
pub aid: i64,
#[prost(int64, tag = "2")]
pub cid: i64,
}
impl ::prost::Name for EpPreVideo {
const NAME: &'static str = "EpPreVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EpPreVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EpPreVideo".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EpPublicityVideo {
#[prost(enumeration = "EpPublicityVideoType", tag = "1")]
pub r#type: i32,
#[prost(oneof = "ep_publicity_video::Data", tags = "2, 3")]
pub data: ::core::option::Option<ep_publicity_video::Data>,
}
pub mod ep_publicity_video {
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Data {
#[prost(message, tag = "2")]
EpPreVideo(super::EpPreVideo),
#[prost(message, tag = "3")]
EpInline(super::EpInlineVideo),
}
}
impl ::prost::Name for EpPublicityVideo {
const NAME: &'static str = "EpPublicityVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EpPublicityVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EpPublicityVideo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EpisodeAdvertisementInfo {
#[prost(int64, tag = "1")]
pub aid: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub link: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub follow_video_bnt_flag: i32,
#[prost(string, tag = "5")]
pub next_video_title: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub next_video_link: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub cid: i64,
#[prost(int32, tag = "8")]
pub season_id: i32,
#[prost(int32, tag = "9")]
pub follow: i32,
}
impl ::prost::Name for EpisodeAdvertisementInfo {
const NAME: &'static str = "EpisodeAdvertisementInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EpisodeAdvertisementInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EpisodeAdvertisementInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EpisodeInfo {
#[prost(int32, tag = "1")]
pub ep_id: i32,
#[prost(int64, tag = "2")]
pub cid: i64,
#[prost(int64, tag = "3")]
pub aid: i64,
#[prost(int32, tag = "4")]
pub ep_status: i32,
#[prost(message, optional, tag = "5")]
pub season_info: ::core::option::Option<SeasonInfo>,
#[prost(string, tag = "6")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub title: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub interaction: ::core::option::Option<Interaction>,
#[prost(string, tag = "9")]
pub long_title: ::prost::alloc::string::String,
}
impl ::prost::Name for EpisodeInfo {
const NAME: &'static str = "EpisodeInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.EpisodeInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.EpisodeInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Event {
#[prost(message, optional, tag = "1")]
pub shake: ::core::option::Option<Shake>,
}
impl ::prost::Name for Event {
const NAME: &'static str = "Event";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Event".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Event".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExtraData {
#[prost(string, tag = "1")]
pub harmony_dialog_pay_link: ::prost::alloc::string::String,
}
impl ::prost::Name for ExtraData {
const NAME: &'static str = "ExtraData";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ExtraData".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ExtraData".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FreyaConfig {
#[prost(string, tag = "1")]
pub desc: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub r#type: i32,
#[prost(int32, tag = "3")]
pub issued_cnt: i32,
#[prost(bool, tag = "4")]
pub is_always_show: bool,
#[prost(int32, tag = "5")]
pub screen_number: i32,
#[prost(int32, tag = "6")]
pub full_screen_number: i32,
}
impl ::prost::Name for FreyaConfig {
const NAME: &'static str = "FreyaConfig";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.FreyaConfig".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.FreyaConfig".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GradientColor {
#[prost(string, tag = "1")]
pub start_color: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub end_color: ::prost::alloc::string::String,
}
impl ::prost::Name for GradientColor {
const NAME: &'static str = "GradientColor";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.GradientColor".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.GradientColor".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct HideField {
#[prost(bool, tag = "1")]
pub fragment_disable: bool,
#[prost(int32, tag = "2")]
pub vip_status: i32,
}
impl ::prost::Name for HideField {
const NAME: &'static str = "HideField";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.HideField".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.HideField".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HighDefinitionTrialInfo {
#[prost(bool, tag = "1")]
pub trial_able: bool,
#[prost(int32, tag = "2")]
pub remaining_times: i32,
#[prost(int32, tag = "3")]
pub start: i32,
#[prost(int32, tag = "4")]
pub time_length: i32,
#[prost(message, optional, tag = "5")]
pub start_toast: ::core::option::Option<Toast>,
#[prost(message, optional, tag = "6")]
pub end_toast: ::core::option::Option<Toast>,
#[prost(message, optional, tag = "7")]
pub report: ::core::option::Option<Report>,
#[prost(message, optional, tag = "8")]
pub quality_open_tip_btn: ::core::option::Option<ButtonInfo>,
#[prost(message, optional, tag = "9")]
pub no_longer_trial_btn: ::core::option::Option<ButtonInfo>,
#[prost(int32, tag = "10")]
pub trial_quality_type: i32,
}
impl ::prost::Name for HighDefinitionTrialInfo {
const NAME: &'static str = "HighDefinitionTrialInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.HighDefinitionTrialInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.HighDefinitionTrialInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HistoryNode {
#[prost(int64, tag = "1")]
pub node_id: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub cid: i64,
}
impl ::prost::Name for HistoryNode {
const NAME: &'static str = "HistoryNode";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.HistoryNode".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.HistoryNode".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImageInfo {
#[prost(string, tag = "1")]
pub url: ::prost::alloc::string::String,
}
impl ::prost::Name for ImageInfo {
const NAME: &'static str = "ImageInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ImageInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ImageInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Interaction {
#[prost(message, optional, tag = "1")]
pub history_node: ::core::option::Option<HistoryNode>,
#[prost(int64, tag = "2")]
pub graph_version: i64,
#[prost(string, tag = "3")]
pub msg: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub is_interaction: bool,
}
impl ::prost::Name for Interaction {
const NAME: &'static str = "Interaction";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Interaction".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Interaction".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterialInfo {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(string, tag = "2")]
pub img: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub title: ::prost::alloc::string::String,
}
impl ::prost::Name for MaterialInfo {
const NAME: &'static str = "MaterialInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.MaterialInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.MaterialInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiDashVideo {
#[prost(message, repeated, tag = "1")]
pub dash_videos: ::prost::alloc::vec::Vec<DashVideo>,
}
impl ::prost::Name for MultiDashVideo {
const NAME: &'static str = "MultiDashVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.MultiDashVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.MultiDashVideo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiView {
#[prost(string, tag = "1")]
pub button_material: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub ep_id: i64,
#[prost(int64, tag = "3")]
pub cid: i64,
#[prost(int64, tag = "4")]
pub avid: i64,
}
impl ::prost::Name for MultiView {
const NAME: &'static str = "MultiView";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.MultiView".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.MultiView".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PayTip {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub url: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub icon: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub r#type: i32,
#[prost(int32, tag = "5")]
pub show_type: i32,
#[prost(string, tag = "6")]
pub img: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub bg_day_color: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub bg_night_color: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub bg_line_color: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub bg_night_line_color: ::prost::alloc::string::String,
#[prost(string, tag = "11")]
pub text_color: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub text_night_color: ::prost::alloc::string::String,
#[prost(int64, tag = "13")]
pub view_start_time: i64,
#[prost(message, repeated, tag = "14")]
pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
#[prost(int32, tag = "15")]
pub url_open_type: i32,
#[prost(message, optional, tag = "16")]
pub report: ::core::option::Option<Report>,
#[prost(int32, tag = "17")]
pub angle_style: i32,
#[prost(int32, tag = "18")]
pub report_type: i32,
#[prost(map = "string, string", tag = "19")]
pub order_report_params: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(string, tag = "20")]
pub giant_screen_img: ::prost::alloc::string::String,
}
impl ::prost::Name for PayTip {
const NAME: &'static str = "PayTip";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PayTip".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PayTip".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PlayAbilityConf {
#[prost(bool, tag = "1")]
pub background_play_disable: bool,
#[prost(bool, tag = "2")]
pub flip_disable: bool,
#[prost(bool, tag = "3")]
pub cast_disable: bool,
#[prost(bool, tag = "4")]
pub feedback_disable: bool,
#[prost(bool, tag = "5")]
pub subtitle_disable: bool,
#[prost(bool, tag = "6")]
pub playback_rate_disable: bool,
#[prost(bool, tag = "7")]
pub time_up_disable: bool,
#[prost(bool, tag = "8")]
pub playback_mode_disable: bool,
#[prost(bool, tag = "9")]
pub scale_mode_disable: bool,
#[prost(bool, tag = "10")]
pub like_disable: bool,
#[prost(bool, tag = "11")]
pub dislike_disable: bool,
#[prost(bool, tag = "12")]
pub coin_disable: bool,
#[prost(bool, tag = "13")]
pub elec_disable: bool,
#[prost(bool, tag = "14")]
pub share_disable: bool,
#[prost(bool, tag = "15")]
pub screen_shot_disable: bool,
#[prost(bool, tag = "16")]
pub lock_screen_disable: bool,
#[prost(bool, tag = "17")]
pub recommend_disable: bool,
#[prost(bool, tag = "18")]
pub playback_speed_disable: bool,
#[prost(bool, tag = "19")]
pub definition_disable: bool,
#[prost(bool, tag = "20")]
pub selections_disable: bool,
#[prost(bool, tag = "21")]
pub next_disable: bool,
#[prost(bool, tag = "22")]
pub edit_dm_disable: bool,
#[prost(bool, tag = "23")]
pub small_window_disable: bool,
#[prost(bool, tag = "24")]
pub shake_disable: bool,
#[prost(bool, tag = "25")]
pub outer_dm_disable: bool,
#[prost(bool, tag = "26")]
pub inner_dm_disable: bool,
#[prost(bool, tag = "27")]
pub freya_enter_disable: bool,
#[prost(bool, tag = "28")]
pub dolby_disable: bool,
#[prost(bool, tag = "29")]
pub freya_full_disable: bool,
#[prost(bool, tag = "30")]
pub skip_oped_switch_disable: bool,
#[prost(bool, tag = "31")]
pub record_screen_disable: bool,
#[prost(bool, tag = "32")]
pub color_optimize_disable: bool,
#[prost(bool, tag = "33")]
pub dubbing_disable: bool,
#[prost(bool, tag = "34")]
pub system_record_screen_disable: bool,
}
impl ::prost::Name for PlayAbilityConf {
const NAME: &'static str = "PlayAbilityConf";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayAbilityConf".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayAbilityConf".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayAbilityExtConf {
#[prost(bool, tag = "1")]
pub allow_close_subtitle: bool,
#[prost(message, optional, tag = "2")]
pub freya_config: ::core::option::Option<FreyaConfig>,
#[prost(message, optional, tag = "3")]
pub cast_tips: ::core::option::Option<CastTips>,
}
impl ::prost::Name for PlayAbilityExtConf {
const NAME: &'static str = "PlayAbilityExtConf";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayAbilityExtConf".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayAbilityExtConf".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayDubbingInfo {
#[prost(message, optional, tag = "1")]
pub background_audio: ::core::option::Option<AudioMaterialProto>,
#[prost(message, repeated, tag = "2")]
pub role_audio_list: ::prost::alloc::vec::Vec<RoleAudioProto>,
#[prost(string, tag = "3")]
pub guide_text: ::prost::alloc::string::String,
}
impl ::prost::Name for PlayDubbingInfo {
const NAME: &'static str = "PlayDubbingInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayDubbingInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayDubbingInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayExtInfo {
#[prost(message, optional, tag = "1")]
pub play_dubbing_info: ::core::option::Option<PlayDubbingInfo>,
}
impl ::prost::Name for PlayExtInfo {
const NAME: &'static str = "PlayExtInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayExtInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayExtInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayViewBusinessInfo {
#[prost(bool, tag = "1")]
pub is_preview: bool,
#[prost(bool, tag = "2")]
pub bp: bool,
#[prost(string, tag = "3")]
pub marlin_token: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub playback_speed_color: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub continue_play_info: ::core::option::Option<ContinuePlayInfo>,
#[prost(message, repeated, tag = "6")]
pub clip_info: ::prost::alloc::vec::Vec<ClipInfo>,
#[prost(enumeration = "InlineType", tag = "7")]
pub inline_type: i32,
#[prost(int32, tag = "8")]
pub ep_whole_duration: i32,
#[prost(message, optional, tag = "9")]
pub dimension: ::core::option::Option<Dimension>,
#[prost(map = "int32, message", tag = "10")]
pub quality_ext_map: ::std::collections::HashMap<i32, QualityExtInfo>,
#[prost(map = "string, int32", tag = "11")]
pub exp_map: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
#[prost(enumeration = "DrmTechType", tag = "12")]
pub drm_tech_type: i32,
#[prost(enumeration = "LimitActionType", tag = "13")]
pub limit_action_type: i32,
#[prost(bool, tag = "14")]
pub is_drm: bool,
#[prost(message, optional, tag = "15")]
pub record_info: ::core::option::Option<RecordInfo>,
#[prost(int32, tag = "16")]
pub vip_status: i32,
#[prost(bool, tag = "17")]
pub is_live_pre: bool,
#[prost(message, optional, tag = "18")]
pub episode_info: ::core::option::Option<EpisodeInfo>,
#[prost(message, optional, tag = "19")]
pub episode_advertisement_info: ::core::option::Option<EpisodeAdvertisementInfo>,
#[prost(message, optional, tag = "20")]
pub user_status: ::core::option::Option<UserStatus>,
#[prost(message, repeated, tag = "21")]
pub ep_publicity_video_list: ::prost::alloc::vec::Vec<EpPublicityVideo>,
#[prost(int64, tag = "22")]
pub watch_time_length: i64,
#[prost(message, optional, tag = "23")]
pub brand_report: ::core::option::Option<BrandReport>,
}
impl ::prost::Name for PlayViewBusinessInfo {
const NAME: &'static str = "PlayViewBusinessInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayViewBusinessInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayViewBusinessInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayViewReply {
#[prost(message, optional, tag = "1")]
pub video_info: ::core::option::Option<VideoInfo>,
#[prost(message, optional, tag = "2")]
pub play_conf: ::core::option::Option<PlayAbilityConf>,
#[prost(message, optional, tag = "3")]
pub business: ::core::option::Option<PlayViewBusinessInfo>,
#[prost(message, optional, tag = "4")]
pub event: ::core::option::Option<Event>,
#[prost(message, optional, tag = "5")]
pub view_info: ::core::option::Option<ViewInfo>,
#[prost(message, optional, tag = "6")]
pub play_ext_conf: ::core::option::Option<PlayAbilityExtConf>,
#[prost(message, optional, tag = "7")]
pub play_ext_info: ::core::option::Option<PlayExtInfo>,
#[prost(message, optional, tag = "8")]
pub hide_field: ::core::option::Option<HideField>,
}
impl ::prost::Name for PlayViewReply {
const NAME: &'static str = "PlayViewReply";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayViewReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayViewReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayViewReq {
#[prost(int64, tag = "1")]
pub ep_id: i64,
#[prost(int64, tag = "2")]
pub cid: i64,
#[prost(int64, tag = "3")]
pub qn: i64,
#[prost(int32, tag = "4")]
pub fnver: i32,
#[prost(int32, tag = "5")]
pub fnval: i32,
#[prost(int32, tag = "6")]
pub download: i32,
#[prost(int32, tag = "7")]
pub force_host: i32,
#[prost(bool, tag = "8")]
pub fourk: bool,
#[prost(string, tag = "9")]
pub spmid: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub from_spmid: ::prost::alloc::string::String,
#[prost(int32, tag = "11")]
pub teenagers_mode: i32,
#[prost(enumeration = "CodeType", tag = "12")]
pub prefer_codec_type: i32,
#[prost(bool, tag = "13")]
pub is_preview: bool,
#[prost(int64, tag = "14")]
pub room_id: i64,
#[prost(bool, tag = "15")]
pub is_need_view_info: bool,
#[prost(message, optional, tag = "16")]
pub scene_control: ::core::option::Option<SceneControl>,
#[prost(enumeration = "InlineScene", tag = "17")]
pub inline_scene: i32,
#[prost(int64, tag = "18")]
pub material_no: i64,
#[prost(enumeration = "SecurityLevel", tag = "19")]
pub security_level: i32,
#[prost(int64, tag = "20")]
pub season_id: i64,
#[prost(message, optional, tag = "21")]
pub data_control: ::core::option::Option<DataControl>,
#[prost(bool, tag = "22")]
pub is_close_drm: bool,
}
impl ::prost::Name for PlayViewReq {
const NAME: &'static str = "PlayViewReq";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PlayViewReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PlayViewReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Playlist {
#[prost(int64, tag = "1")]
pub season_id: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub link: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub badge_info: ::core::option::Option<BadgeInfo>,
}
impl ::prost::Name for Playlist {
const NAME: &'static str = "Playlist";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Playlist".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Playlist".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PopWin {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub coupon: ::prost::alloc::vec::Vec<Coupon>,
#[prost(message, repeated, tag = "3")]
pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
#[prost(string, tag = "4")]
pub bottom_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub pop_title: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "6")]
pub subtitle: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "7")]
pub bottom_desc: ::core::option::Option<ButtonInfo>,
#[prost(string, tag = "8")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub pop_type: ::prost::alloc::string::String,
}
impl ::prost::Name for PopWin {
const NAME: &'static str = "PopWin";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PopWin".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PopWin".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PromptBar {
#[prost(message, optional, tag = "1")]
pub title: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "2")]
pub sub_title: ::core::option::Option<TextInfo>,
#[prost(string, tag = "3")]
pub sub_title_icon: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub bg_image: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub bg_gradient_color: ::core::option::Option<GradientColor>,
#[prost(message, repeated, tag = "6")]
pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
#[prost(message, optional, tag = "7")]
pub report: ::core::option::Option<Report>,
#[prost(string, tag = "8")]
pub full_screen_ip_icon: ::prost::alloc::string::String,
#[prost(message, optional, tag = "9")]
pub full_screen_bg_gradient_color: ::core::option::Option<GradientColor>,
#[prost(enumeration = "PromptBarType", tag = "10")]
pub prompt_bar_type: i32,
#[prost(int64, tag = "11")]
pub config_type: i64,
#[prost(message, repeated, tag = "12")]
pub fixed_benefits: ::prost::alloc::vec::Vec<MaterialInfo>,
#[prost(message, repeated, tag = "13")]
pub card_open_gift: ::prost::alloc::vec::Vec<MaterialInfo>,
#[prost(int64, tag = "14")]
pub end_time: i64,
#[prost(int32, tag = "15")]
pub show_on_paywall: i32,
}
impl ::prost::Name for PromptBar {
const NAME: &'static str = "PromptBar";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.PromptBar".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.PromptBar".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QnGroup {
#[prost(bool, tag = "1")]
pub need_vip: bool,
#[prost(bool, tag = "2")]
pub need_login: bool,
#[prost(bool, tag = "3")]
pub vip_free: bool,
#[prost(string, tag = "4")]
pub title_img: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub title_img_selected: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "6")]
pub stream_infos: ::prost::alloc::vec::Vec<StreamInfo>,
#[prost(enumeration = "QnGroupType", tag = "7")]
pub group_type: i32,
}
impl ::prost::Name for QnGroup {
const NAME: &'static str = "QnGroup";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.QnGroup".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.QnGroup".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QnItem {
#[prost(oneof = "qn_item::Content", tags = "1, 2")]
pub content: ::core::option::Option<qn_item::Content>,
}
pub mod qn_item {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Content {
#[prost(message, tag = "1")]
StreamInfo(::prost::alloc::boxed::Box<super::StreamInfo>),
#[prost(message, tag = "2")]
QnGroup(::prost::alloc::boxed::Box<super::QnGroup>),
}
}
impl ::prost::Name for QnItem {
const NAME: &'static str = "QnItem";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.QnItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.QnItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QnPanel {
#[prost(message, repeated, tag = "1")]
pub qn_items: ::prost::alloc::vec::Vec<QnItem>,
}
impl ::prost::Name for QnPanel {
const NAME: &'static str = "QnPanel";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.QnPanel".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.QnPanel".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct QualityExtInfo {
#[prost(bool, tag = "1")]
pub trial_support: bool,
}
impl ::prost::Name for QualityExtInfo {
const NAME: &'static str = "QualityExtInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.QualityExtInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.QualityExtInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecordInfo {
#[prost(string, tag = "1")]
pub record: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub record_icon: ::prost::alloc::string::String,
}
impl ::prost::Name for RecordInfo {
const NAME: &'static str = "RecordInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.RecordInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.RecordInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Report {
#[prost(string, tag = "1")]
pub show_event_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub click_event_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub extends: ::prost::alloc::string::String,
}
impl ::prost::Name for Report {
const NAME: &'static str = "Report";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Report".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Report".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResponseUrl {
#[prost(int32, tag = "1")]
pub order: i32,
#[prost(int64, tag = "2")]
pub length: i64,
#[prost(int64, tag = "3")]
pub size: i64,
#[prost(string, tag = "4")]
pub url: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "5")]
pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "6")]
pub md5: ::prost::alloc::string::String,
}
impl ::prost::Name for ResponseUrl {
const NAME: &'static str = "ResponseUrl";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ResponseUrl".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ResponseUrl".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Rights {
#[prost(int32, tag = "1")]
pub can_watch: i32,
}
impl ::prost::Name for Rights {
const NAME: &'static str = "Rights";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Rights".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Rights".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoleAudioProto {
#[prost(int64, tag = "1")]
pub role_id: i64,
#[prost(string, tag = "2")]
pub role_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub role_avatar: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "4")]
pub audio_material_list: ::prost::alloc::vec::Vec<AudioMaterialProto>,
}
impl ::prost::Name for RoleAudioProto {
const NAME: &'static str = "RoleAudioProto";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.RoleAudioProto".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.RoleAudioProto".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SceneControl {
#[prost(bool, tag = "1")]
pub fav_playlist: bool,
#[prost(bool, tag = "2")]
pub small_window: bool,
#[prost(bool, tag = "3")]
pub pip: bool,
#[prost(bool, tag = "4")]
pub was_he_inline: bool,
#[prost(bool, tag = "5")]
pub is_need_trial: bool,
}
impl ::prost::Name for SceneControl {
const NAME: &'static str = "SceneControl";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.SceneControl".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.SceneControl".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Scheme {
#[prost(enumeration = "scheme::ActionType", tag = "1")]
pub action_type: i32,
#[prost(string, tag = "2")]
pub toast: ::prost::alloc::string::String,
}
pub mod scheme {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ActionType {
UnknownActionType = 0,
ShowToast = 1,
}
impl ActionType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownActionType => "UNKNOWN_ActionType",
Self::ShowToast => "SHOW_TOAST",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_ActionType" => Some(Self::UnknownActionType),
"SHOW_TOAST" => Some(Self::ShowToast),
_ => None,
}
}
}
}
impl ::prost::Name for Scheme {
const NAME: &'static str = "Scheme";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Scheme".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Scheme".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeasonInfo {
#[prost(int32, tag = "1")]
pub season_id: i32,
#[prost(int32, tag = "2")]
pub season_type: i32,
#[prost(int32, tag = "3")]
pub season_status: i32,
#[prost(string, tag = "4")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub title: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub rights: ::core::option::Option<Rights>,
#[prost(int32, tag = "7")]
pub mode: i32,
#[prost(string, tag = "8")]
pub horizontal_cover169: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub horizontal_cover1610: ::prost::alloc::string::String,
}
impl ::prost::Name for SeasonInfo {
const NAME: &'static str = "SeasonInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.SeasonInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.SeasonInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SegmentVideo {
#[prost(message, repeated, tag = "1")]
pub segment: ::prost::alloc::vec::Vec<ResponseUrl>,
}
impl ::prost::Name for SegmentVideo {
const NAME: &'static str = "SegmentVideo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.SegmentVideo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.SegmentVideo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Shake {
#[prost(string, tag = "1")]
pub file: ::prost::alloc::string::String,
}
impl ::prost::Name for Shake {
const NAME: &'static str = "Shake";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Shake".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Shake".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Stream {
#[prost(message, optional, tag = "1")]
pub stream_info: ::core::option::Option<StreamInfo>,
#[prost(oneof = "stream::Content", tags = "2, 3, 4")]
pub content: ::core::option::Option<stream::Content>,
}
pub mod stream {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Content {
#[prost(message, tag = "2")]
DashVideo(super::DashVideo),
#[prost(message, tag = "3")]
SegmentVideo(super::SegmentVideo),
#[prost(message, tag = "4")]
MultiDashVideo(super::MultiDashVideo),
}
}
impl ::prost::Name for Stream {
const NAME: &'static str = "Stream";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Stream".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Stream".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamInfo {
#[prost(int32, tag = "1")]
pub quality: i32,
#[prost(string, tag = "2")]
pub format: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(enumeration = "PlayErr", tag = "4")]
pub err_code: i32,
#[prost(message, optional, tag = "5")]
pub limit: ::core::option::Option<StreamLimit>,
#[prost(bool, tag = "6")]
pub need_vip: bool,
#[prost(bool, tag = "7")]
pub need_login: bool,
#[prost(bool, tag = "8")]
pub intact: bool,
#[prost(bool, tag = "9")]
pub no_rexcode: bool,
#[prost(int64, tag = "10")]
pub attribute: i64,
#[prost(string, tag = "11")]
pub new_description: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub display_desc: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub superscript: ::prost::alloc::string::String,
#[prost(message, optional, tag = "14")]
pub scheme: ::core::option::Option<Scheme>,
#[prost(bool, tag = "15")]
pub support_drm: bool,
#[prost(string, tag = "16")]
pub subtitle: ::prost::alloc::string::String,
#[prost(string, tag = "17")]
pub display_desc_img: ::prost::alloc::string::String,
#[prost(string, tag = "18")]
pub description_img: ::prost::alloc::string::String,
#[prost(string, tag = "19")]
pub description_img_selected: ::prost::alloc::string::String,
#[prost(string, tag = "20")]
pub description_fold_img: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "21")]
pub report_params: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
}
impl ::prost::Name for StreamInfo {
const NAME: &'static str = "StreamInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.StreamInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.StreamInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamLimit {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub uri: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub msg: ::prost::alloc::string::String,
}
impl ::prost::Name for StreamLimit {
const NAME: &'static str = "StreamLimit";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.StreamLimit".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.StreamLimit".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TaskParam {
#[prost(string, tag = "1")]
pub task_type: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub activity_id: i64,
#[prost(int64, tag = "3")]
pub tips_id: i64,
}
impl ::prost::Name for TaskParam {
const NAME: &'static str = "TaskParam";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.TaskParam".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.TaskParam".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextInfo {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub text_color: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub text_color_night: ::prost::alloc::string::String,
}
impl ::prost::Name for TextInfo {
const NAME: &'static str = "TextInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.TextInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.TextInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Toast {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub button: ::core::option::Option<ButtonInfo>,
#[prost(int32, tag = "3")]
pub show_style_type: i32,
#[prost(string, tag = "4")]
pub icon: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub toast_text: ::core::option::Option<TextInfo>,
#[prost(message, optional, tag = "6")]
pub report: ::core::option::Option<Report>,
#[prost(map = "string, string", tag = "7")]
pub order_report_params: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
}
impl ::prost::Name for Toast {
const NAME: &'static str = "Toast";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.Toast".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.Toast".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserStatus {
#[prost(bool, tag = "1")]
pub pay_check: bool,
#[prost(bool, tag = "2")]
pub sponsor: bool,
#[prost(message, optional, tag = "3")]
pub watch_progress: ::core::option::Option<WatchProgress>,
#[prost(message, optional, tag = "4")]
pub aid_watch_progress: ::core::option::Option<WatchProgress>,
}
impl ::prost::Name for UserStatus {
const NAME: &'static str = "UserStatus";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.UserStatus".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.UserStatus".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoInfo {
#[prost(int32, tag = "1")]
pub quality: i32,
#[prost(string, tag = "2")]
pub format: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub timelength: i64,
#[prost(int32, tag = "4")]
pub video_codecid: i32,
#[prost(message, repeated, tag = "5")]
pub stream_list: ::prost::alloc::vec::Vec<Stream>,
#[prost(message, repeated, tag = "6")]
pub dash_audio: ::prost::alloc::vec::Vec<DashItem>,
#[prost(message, optional, tag = "7")]
pub dolby: ::core::option::Option<DolbyItem>,
#[prost(int64, tag = "8")]
pub main_timelength: i64,
#[prost(message, optional, tag = "9")]
pub qn_panel: ::core::option::Option<QnPanel>,
}
impl ::prost::Name for VideoInfo {
const NAME: &'static str = "VideoInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.VideoInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.VideoInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViewInfo {
#[prost(message, optional, tag = "1")]
pub dialog: ::core::option::Option<Dialog>,
#[prost(message, optional, tag = "2")]
pub toast: ::core::option::Option<Toast>,
#[prost(message, optional, tag = "3")]
pub coupon_info: ::core::option::Option<CouponInfo>,
#[prost(int64, repeated, tag = "4")]
pub demand_no_pay_epids: ::prost::alloc::vec::Vec<i64>,
#[prost(message, optional, tag = "5")]
pub end_page: ::core::option::Option<EndPage>,
#[prost(map = "string, bool", tag = "6")]
pub exp_config: ::std::collections::HashMap<::prost::alloc::string::String, bool>,
#[prost(message, optional, tag = "7")]
pub pop_win: ::core::option::Option<PopWin>,
#[prost(message, optional, tag = "8")]
pub try_watch_prompt_bar: ::core::option::Option<PromptBar>,
#[prost(message, optional, tag = "9")]
pub pay_tip: ::core::option::Option<PayTip>,
#[prost(message, optional, tag = "10")]
pub high_definition_trial_info: ::core::option::Option<HighDefinitionTrialInfo>,
#[prost(map = "string, message", tag = "11")]
pub ext_dialog: ::std::collections::HashMap<::prost::alloc::string::String, Dialog>,
#[prost(message, optional, tag = "12")]
pub animation: ::core::option::Option<Animation>,
#[prost(map = "string, message", tag = "13")]
pub ext_toast: ::std::collections::HashMap<::prost::alloc::string::String, Toast>,
#[prost(message, optional, tag = "14")]
pub extra_data: ::core::option::Option<ExtraData>,
}
impl ::prost::Name for ViewInfo {
const NAME: &'static str = "ViewInfo";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.ViewInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.ViewInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WatchProgress {
#[prost(int32, tag = "1")]
pub last_ep_id: i32,
#[prost(string, tag = "2")]
pub last_ep_index: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub progress: i64,
#[prost(int64, tag = "4")]
pub last_play_cid: i64,
#[prost(message, optional, tag = "5")]
pub toast: ::core::option::Option<Toast>,
#[prost(message, optional, tag = "6")]
pub toast_without_time: ::core::option::Option<Toast>,
#[prost(int64, tag = "7")]
pub last_play_aid: i64,
}
impl ::prost::Name for WatchProgress {
const NAME: &'static str = "WatchProgress";
const PACKAGE: &'static str = "bilibili.pgc.gateway.player.v2";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.pgc.gateway.player.v2.WatchProgress".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.pgc.gateway.player.v2.WatchProgress".into()
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ClipType {
NtUnknown = 0,
Op = 1,
Ed = 2,
He = 3,
MultiView = 4,
Ad = 5,
Preview = 6,
}
impl ClipType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::NtUnknown => "NT_UNKNOWN",
Self::Op => "CLIP_TYPE_OP",
Self::Ed => "CLIP_TYPE_ED",
Self::He => "CLIP_TYPE_HE",
Self::MultiView => "CLIP_TYPE_MULTI_VIEW",
Self::Ad => "CLIP_TYPE_AD",
Self::Preview => "CLIP_TYPE_PREVIEW",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NT_UNKNOWN" => Some(Self::NtUnknown),
"CLIP_TYPE_OP" => Some(Self::Op),
"CLIP_TYPE_ED" => Some(Self::Ed),
"CLIP_TYPE_HE" => Some(Self::He),
"CLIP_TYPE_MULTI_VIEW" => Some(Self::MultiView),
"CLIP_TYPE_AD" => Some(Self::Ad),
"CLIP_TYPE_PREVIEW" => Some(Self::Preview),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CodeType {
Nocode = 0,
Code264 = 1,
Code265 = 2,
}
impl CodeType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Nocode => "NOCODE",
Self::Code264 => "CODE264",
Self::Code265 => "CODE265",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NOCODE" => Some(Self::Nocode),
"CODE264" => Some(Self::Code264),
"CODE265" => Some(Self::Code265),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DrmTechType {
Non = 0,
FairPlay = 1,
WideVine = 2,
BiliDrm = 3,
}
impl DrmTechType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Non => "NON",
Self::FairPlay => "FAIR_PLAY",
Self::WideVine => "WIDE_VINE",
Self::BiliDrm => "BILI_DRM",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NON" => Some(Self::Non),
"FAIR_PLAY" => Some(Self::FairPlay),
"WIDE_VINE" => Some(Self::WideVine),
"BILI_DRM" => Some(Self::BiliDrm),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EpPublicityVideoType {
Pre = 0,
Inline = 1,
AdvTypeUnknown = -1,
}
impl EpPublicityVideoType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Pre => "PRE",
Self::Inline => "INLINE",
Self::AdvTypeUnknown => "ADV_TYPE_UNKNOWN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PRE" => Some(Self::Pre),
"INLINE" => Some(Self::Inline),
"ADV_TYPE_UNKNOWN" => Some(Self::AdvTypeUnknown),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InlineScene {
Unknown = 0,
RelatedEp = 1,
He = 2,
Skip = 3,
}
impl InlineScene {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unknown => "UNKNOWN",
Self::RelatedEp => "RELATED_EP",
Self::He => "HE",
Self::Skip => "SKIP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN" => Some(Self::Unknown),
"RELATED_EP" => Some(Self::RelatedEp),
"HE" => Some(Self::He),
"SKIP" => Some(Self::Skip),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InlineType {
TypeUnknown = 0,
TypeWhole = 1,
TypeHeClip = 2,
TypePreview = 3,
}
impl InlineType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::TypeUnknown => "TYPE_UNKNOWN",
Self::TypeWhole => "TYPE_WHOLE",
Self::TypeHeClip => "TYPE_HE_CLIP",
Self::TypePreview => "TYPE_PREVIEW",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TYPE_UNKNOWN" => Some(Self::TypeUnknown),
"TYPE_WHOLE" => Some(Self::TypeWhole),
"TYPE_HE_CLIP" => Some(Self::TypeHeClip),
"TYPE_PREVIEW" => Some(Self::TypePreview),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LimitActionType {
LatUnknown = 0,
ShowLimitDialog = 1,
SkipCurrentEp = 2,
}
impl LimitActionType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::LatUnknown => "LAT_UNKNOWN",
Self::ShowLimitDialog => "SHOW_LIMIT_DIALOG",
Self::SkipCurrentEp => "SKIP_CURRENT_EP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LAT_UNKNOWN" => Some(Self::LatUnknown),
"SHOW_LIMIT_DIALOG" => Some(Self::ShowLimitDialog),
"SKIP_CURRENT_EP" => Some(Self::SkipCurrentEp),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PlayErr {
NoErr = 0,
WithMultiDeviceLoginErr = 1,
}
impl PlayErr {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::NoErr => "NoErr",
Self::WithMultiDeviceLoginErr => "WithMultiDeviceLoginErr",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NoErr" => Some(Self::NoErr),
"WithMultiDeviceLoginErr" => Some(Self::WithMultiDeviceLoginErr),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PromptBarType {
Unknown = 0,
OpenPromptBar = 1,
TryPromptBar = 2,
}
impl PromptBarType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unknown => "PROMPT_BAR_TYPE_UNKNOWN",
Self::OpenPromptBar => "OPEN_PROMPT_BAR",
Self::TryPromptBar => "TRY_PROMPT_BAR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PROMPT_BAR_TYPE_UNKNOWN" => Some(Self::Unknown),
"OPEN_PROMPT_BAR" => Some(Self::OpenPromptBar),
"TRY_PROMPT_BAR" => Some(Self::TryPromptBar),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum QnGroupType {
UnknownGroup = 0,
VipVision = 1,
}
impl QnGroupType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownGroup => "UNKNOWN_GROUP",
Self::VipVision => "VIP_VISION",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_GROUP" => Some(Self::UnknownGroup),
"VIP_VISION" => Some(Self::VipVision),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RedemptionMode {
Unknown = 0,
Exchange = 1,
Payment = 2,
}
impl RedemptionMode {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unknown => "REDEMPTION_MODE_UNKNOWN",
Self::Exchange => "EXCHANGE",
Self::Payment => "PAYMENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REDEMPTION_MODE_UNKNOWN" => Some(Self::Unknown),
"EXCHANGE" => Some(Self::Exchange),
"PAYMENT" => Some(Self::Payment),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SecurityLevel {
LevelUnknown = 0,
LevelL1 = 1,
LevelL2 = 2,
LevelL3 = 3,
}
impl SecurityLevel {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::LevelUnknown => "LEVEL_UNKNOWN",
Self::LevelL1 => "LEVEL_L1",
Self::LevelL2 => "LEVEL_L2",
Self::LevelL3 => "LEVEL_L3",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LEVEL_UNKNOWN" => Some(Self::LevelUnknown),
"LEVEL_L1" => Some(Self::LevelL1),
"LEVEL_L2" => Some(Self::LevelL2),
"LEVEL_L3" => Some(Self::LevelL3),
_ => None,
}
}
}
#[cfg(feature = "feat-enable-generated-client")]
pub mod play_url_client {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct PlayUrlClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> PlayUrlClient<T>
where
T: tonic::client::GrpcService<tonic::body::Body>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> PlayUrlClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::Body>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::Body>,
>>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
{
PlayUrlClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_decoding_message_size(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_encoding_message_size(limit);
self
}
pub async fn play_view(
&mut self,
request: impl tonic::IntoRequest<super::PlayViewReq>,
) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.pgc.gateway.player.v2.PlayURL/PlayView",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.pgc.gateway.player.v2.PlayURL", "PlayView"),
);
self.inner.unary(req, path, codec).await
}
pub async fn play_view_comic(
&mut self,
request: impl tonic::IntoRequest<super::PlayViewReq>,
) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.pgc.gateway.player.v2.PlayURL/PlayViewComic",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new(
"bilibili.pgc.gateway.player.v2.PlayURL",
"PlayViewComic",
),
);
self.inner.unary(req, path, codec).await
}
}
}
#[cfg(feature = "feat-enable-generated-server")]
pub mod play_url_server {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
#[async_trait]
pub trait PlayUrl: std::marker::Send + std::marker::Sync + 'static {
async fn play_view(
&self,
request: tonic::Request<super::PlayViewReq>,
) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status>;
async fn play_view_comic(
&self,
request: tonic::Request<super::PlayViewReq>,
) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status>;
}
#[derive(Debug)]
pub struct PlayUrlServer<T> {
inner: Arc<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
max_decoding_message_size: Option<usize>,
max_encoding_message_size: Option<usize>,
}
impl<T> PlayUrlServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
max_decoding_message_size: None,
max_encoding_message_size: None,
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.max_decoding_message_size = Some(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.max_encoding_message_size = Some(limit);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for PlayUrlServer<T>
where
T: PlayUrl,
B: Body + std::marker::Send + 'static,
B::Error: Into<StdError> + std::marker::Send + 'static,
{
type Response = http::Response<tonic::body::Body>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<std::result::Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
match req.uri().path() {
"/bilibili.pgc.gateway.player.v2.PlayURL/PlayView" => {
#[allow(non_camel_case_types)]
struct PlayViewSvc<T: PlayUrl>(pub Arc<T>);
impl<T: PlayUrl> tonic::server::UnaryService<super::PlayViewReq>
for PlayViewSvc<T> {
type Response = super::PlayViewReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PlayViewReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as PlayUrl>::play_view(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = PlayViewSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.pgc.gateway.player.v2.PlayURL/PlayViewComic" => {
#[allow(non_camel_case_types)]
struct PlayViewComicSvc<T: PlayUrl>(pub Arc<T>);
impl<T: PlayUrl> tonic::server::UnaryService<super::PlayViewReq>
for PlayViewComicSvc<T> {
type Response = super::PlayViewReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PlayViewReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as PlayUrl>::play_view_comic(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = PlayViewComicSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
let mut response = http::Response::new(
tonic::body::Body::default(),
);
let headers = response.headers_mut();
headers
.insert(
tonic::Status::GRPC_STATUS,
(tonic::Code::Unimplemented as i32).into(),
);
headers
.insert(
http::header::CONTENT_TYPE,
tonic::metadata::GRPC_CONTENT_TYPE,
);
Ok(response)
})
}
}
}
}
impl<T> Clone for PlayUrlServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
max_decoding_message_size: self.max_decoding_message_size,
max_encoding_message_size: self.max_encoding_message_size,
}
}
}
pub const SERVICE_NAME: &str = "bilibili.pgc.gateway.player.v2.PlayURL";
impl<T> tonic::server::NamedService for PlayUrlServer<T> {
const NAME: &'static str = SERVICE_NAME;
}
}