1#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4pub struct Ab {
5 #[prost(message, optional, tag = "1")]
7 pub glance: ::core::option::Option<Glance>,
8 #[prost(enumeration = "Group", tag = "2")]
10 pub group: i32,
11}
12impl ::prost::Name for Ab {
13 const NAME: &'static str = "AB";
14 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
15 fn full_name() -> ::prost::alloc::string::String {
16 "bilibili.app.playurl.v1.AB".into()
17 }
18 fn type_url() -> ::prost::alloc::string::String {
19 "/bilibili.app.playurl.v1.AB".into()
20 }
21}
22#[derive(Clone, PartialEq, ::prost::Message)]
24pub struct ArcConf {
25 #[prost(bool, tag = "1")]
27 pub is_support: bool,
28 #[prost(bool, tag = "2")]
30 pub disabled: bool,
31 #[prost(message, optional, tag = "3")]
33 pub extra_content: ::core::option::Option<ExtraContent>,
34 #[prost(int64, repeated, tag = "4")]
36 pub unsupport_scene: ::prost::alloc::vec::Vec<i64>,
37}
38impl ::prost::Name for ArcConf {
39 const NAME: &'static str = "ArcConf";
40 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
41 fn full_name() -> ::prost::alloc::string::String {
42 "bilibili.app.playurl.v1.ArcConf".into()
43 }
44 fn type_url() -> ::prost::alloc::string::String {
45 "/bilibili.app.playurl.v1.ArcConf".into()
46 }
47}
48#[derive(Clone, PartialEq, ::prost::Message)]
50pub struct ButtonInfo {
51 #[prost(string, tag = "1")]
53 pub text: ::prost::alloc::string::String,
54 #[prost(string, tag = "2")]
56 pub text_color: ::prost::alloc::string::String,
57 #[prost(string, tag = "3")]
59 pub text_color_night: ::prost::alloc::string::String,
60 #[prost(string, tag = "4")]
62 pub bg_color: ::prost::alloc::string::String,
63 #[prost(string, tag = "5")]
65 pub bg_color_night: ::prost::alloc::string::String,
66 #[prost(string, tag = "6")]
68 pub link: ::prost::alloc::string::String,
69 #[prost(enumeration = "ButtonAction", tag = "7")]
71 pub action_type: i32,
72 #[prost(message, optional, tag = "8")]
74 pub report: ::core::option::Option<Report>,
75 #[prost(string, tag = "9")]
77 pub frame_color: ::prost::alloc::string::String,
78 #[prost(string, tag = "10")]
80 pub icon: ::prost::alloc::string::String,
81}
82impl ::prost::Name for ButtonInfo {
83 const NAME: &'static str = "ButtonInfo";
84 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
85 fn full_name() -> ::prost::alloc::string::String {
86 "bilibili.app.playurl.v1.ButtonInfo".into()
87 }
88 fn type_url() -> ::prost::alloc::string::String {
89 "/bilibili.app.playurl.v1.ButtonInfo".into()
90 }
91}
92#[derive(Clone, PartialEq, ::prost::Message)]
94pub struct ButtonStyle {
95 #[prost(string, tag = "1")]
97 pub text: ::prost::alloc::string::String,
98 #[prost(string, tag = "2")]
100 pub text_color: ::prost::alloc::string::String,
101 #[prost(string, tag = "3")]
103 pub bg_color: ::prost::alloc::string::String,
104 #[prost(string, tag = "4")]
106 pub jump_link: ::prost::alloc::string::String,
107}
108impl ::prost::Name for ButtonStyle {
109 const NAME: &'static str = "ButtonStyle";
110 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
111 fn full_name() -> ::prost::alloc::string::String {
112 "bilibili.app.playurl.v1.ButtonStyle".into()
113 }
114 fn type_url() -> ::prost::alloc::string::String {
115 "/bilibili.app.playurl.v1.ButtonStyle".into()
116 }
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
120pub struct Chronos {
121 #[prost(string, tag = "1")]
123 pub md5: ::prost::alloc::string::String,
124 #[prost(string, tag = "2")]
126 pub file: ::prost::alloc::string::String,
127}
128impl ::prost::Name for Chronos {
129 const NAME: &'static str = "Chronos";
130 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
131 fn full_name() -> ::prost::alloc::string::String {
132 "bilibili.app.playurl.v1.Chronos".into()
133 }
134 fn type_url() -> ::prost::alloc::string::String {
135 "/bilibili.app.playurl.v1.Chronos".into()
136 }
137}
138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
140pub struct CloudConf {
141 #[prost(bool, tag = "1")]
143 pub show: bool,
144 #[prost(enumeration = "ConfType", tag = "2")]
146 pub conf_type: i32,
147 #[prost(message, optional, tag = "3")]
149 pub field_value: ::core::option::Option<FieldValue>,
150 #[prost(message, optional, tag = "4")]
152 pub conf_value: ::core::option::Option<ConfValue>,
153}
154impl ::prost::Name for CloudConf {
155 const NAME: &'static str = "CloudConf";
156 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
157 fn full_name() -> ::prost::alloc::string::String {
158 "bilibili.app.playurl.v1.CloudConf".into()
159 }
160 fn type_url() -> ::prost::alloc::string::String {
161 "/bilibili.app.playurl.v1.CloudConf".into()
162 }
163}
164#[derive(Clone, PartialEq, ::prost::Message)]
166pub struct ComprehensiveToast {
167 #[prost(enumeration = "ToastType", tag = "1")]
169 pub r#type: i32,
170 #[prost(message, optional, tag = "2")]
172 pub button: ::core::option::Option<ButtonInfo>,
173 #[prost(string, tag = "3")]
175 pub icon: ::prost::alloc::string::String,
176 #[prost(message, optional, tag = "4")]
178 pub toast_text: ::core::option::Option<TextInfo>,
179 #[prost(message, optional, tag = "5")]
181 pub report: ::core::option::Option<Report>,
182}
183impl ::prost::Name for ComprehensiveToast {
184 const NAME: &'static str = "ComprehensiveToast";
185 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
186 fn full_name() -> ::prost::alloc::string::String {
187 "bilibili.app.playurl.v1.ComprehensiveToast".into()
188 }
189 fn type_url() -> ::prost::alloc::string::String {
190 "/bilibili.app.playurl.v1.ComprehensiveToast".into()
191 }
192}
193#[derive(Clone, Copy, PartialEq, ::prost::Message)]
195pub struct ConfValue {
196 #[prost(oneof = "conf_value::Value", tags = "1, 2")]
198 pub value: ::core::option::Option<conf_value::Value>,
199}
200pub mod conf_value {
202 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
204 pub enum Value {
205 #[prost(bool, tag = "1")]
207 SwitchVal(bool),
208 #[prost(int64, tag = "2")]
210 SelectedVal(i64),
211 }
212}
213impl ::prost::Name for ConfValue {
214 const NAME: &'static str = "ConfValue";
215 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
216 fn full_name() -> ::prost::alloc::string::String {
217 "bilibili.app.playurl.v1.ConfValue".into()
218 }
219 fn type_url() -> ::prost::alloc::string::String {
220 "/bilibili.app.playurl.v1.ConfValue".into()
221 }
222}
223#[derive(Clone, PartialEq, ::prost::Message)]
225pub struct DashItem {
226 #[prost(int32, tag = "1")]
228 pub id: i32,
229 #[prost(string, tag = "2")]
231 pub base_url: ::prost::alloc::string::String,
232 #[prost(string, repeated, tag = "3")]
234 pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
235 #[prost(int32, tag = "4")]
237 pub bandwidth: i32,
238 #[prost(int32, tag = "5")]
240 pub codecid: i32,
241 #[prost(string, tag = "6")]
243 pub md5: ::prost::alloc::string::String,
244 #[prost(int64, tag = "7")]
246 pub size: i64,
247 #[prost(string, tag = "8")]
249 pub frame_rate: ::prost::alloc::string::String,
250 #[prost(string, tag = "9")]
252 pub widevine_pssh: ::prost::alloc::string::String,
253 #[prost(string, tag = "10")]
255 pub bilidrm_uri: ::prost::alloc::string::String,
256}
257impl ::prost::Name for DashItem {
258 const NAME: &'static str = "DashItem";
259 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
260 fn full_name() -> ::prost::alloc::string::String {
261 "bilibili.app.playurl.v1.DashItem".into()
262 }
263 fn type_url() -> ::prost::alloc::string::String {
264 "/bilibili.app.playurl.v1.DashItem".into()
265 }
266}
267#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct DashVideo {
270 #[prost(string, tag = "1")]
272 pub base_url: ::prost::alloc::string::String,
273 #[prost(string, repeated, tag = "2")]
275 pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
276 #[prost(int32, tag = "3")]
278 pub bandwidth: i32,
279 #[prost(int32, tag = "4")]
281 pub codecid: i32,
282 #[prost(string, tag = "5")]
284 pub md5: ::prost::alloc::string::String,
285 #[prost(int64, tag = "6")]
287 pub size: i64,
288 #[prost(int32, tag = "7")]
290 pub audio_id: i32,
291 #[prost(bool, tag = "8")]
293 pub no_rexcode: bool,
294 #[prost(string, tag = "9")]
296 pub frame_rate: ::prost::alloc::string::String,
297 #[prost(int32, tag = "10")]
299 pub width: i32,
300 #[prost(int32, tag = "11")]
302 pub height: i32,
303 #[prost(string, tag = "12")]
305 pub widevine_pssh: ::prost::alloc::string::String,
306 #[prost(string, tag = "13")]
308 pub bilidrm_uri: ::prost::alloc::string::String,
309}
310impl ::prost::Name for DashVideo {
311 const NAME: &'static str = "DashVideo";
312 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
313 fn full_name() -> ::prost::alloc::string::String {
314 "bilibili.app.playurl.v1.DashVideo".into()
315 }
316 fn type_url() -> ::prost::alloc::string::String {
317 "/bilibili.app.playurl.v1.DashVideo".into()
318 }
319}
320#[derive(Clone, PartialEq, ::prost::Message)]
322pub struct Dialog {
323 #[prost(enumeration = "GuideStyle", tag = "1")]
325 pub style_type: i32,
326 #[prost(message, optional, tag = "2")]
328 pub report: ::core::option::Option<Report>,
329 #[prost(message, optional, tag = "3")]
331 pub title: ::core::option::Option<TextInfo>,
332 #[prost(message, optional, tag = "4")]
334 pub subtitle: ::core::option::Option<TextInfo>,
335 #[prost(message, repeated, tag = "5")]
337 pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
338}
339impl ::prost::Name for Dialog {
340 const NAME: &'static str = "Dialog";
341 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
342 fn full_name() -> ::prost::alloc::string::String {
343 "bilibili.app.playurl.v1.Dialog".into()
344 }
345 fn type_url() -> ::prost::alloc::string::String {
346 "/bilibili.app.playurl.v1.Dialog".into()
347 }
348}
349#[derive(Clone, PartialEq, ::prost::Message)]
351pub struct DolbyItem {
352 #[prost(enumeration = "dolby_item::Type", tag = "1")]
354 pub r#type: i32,
355 #[prost(message, repeated, tag = "2")]
357 pub audio: ::prost::alloc::vec::Vec<DashItem>,
358}
359pub mod dolby_item {
361 #[derive(
363 Clone,
364 Copy,
365 Debug,
366 PartialEq,
367 Eq,
368 Hash,
369 PartialOrd,
370 Ord,
371 ::prost::Enumeration
372 )]
373 #[repr(i32)]
374 pub enum Type {
375 None = 0,
377 Common = 1,
379 Atmos = 2,
381 }
382 impl Type {
383 pub fn as_str_name(&self) -> &'static str {
388 match self {
389 Self::None => "NONE",
390 Self::Common => "COMMON",
391 Self::Atmos => "ATMOS",
392 }
393 }
394 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
396 match value {
397 "NONE" => Some(Self::None),
398 "COMMON" => Some(Self::Common),
399 "ATMOS" => Some(Self::Atmos),
400 _ => None,
401 }
402 }
403 }
404}
405impl ::prost::Name for DolbyItem {
406 const NAME: &'static str = "DolbyItem";
407 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
408 fn full_name() -> ::prost::alloc::string::String {
409 "bilibili.app.playurl.v1.DolbyItem".into()
410 }
411 fn type_url() -> ::prost::alloc::string::String {
412 "/bilibili.app.playurl.v1.DolbyItem".into()
413 }
414}
415#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct Event {
418 #[prost(message, optional, tag = "1")]
420 pub shake: ::core::option::Option<Shake>,
421}
422impl ::prost::Name for Event {
423 const NAME: &'static str = "Event";
424 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
425 fn full_name() -> ::prost::alloc::string::String {
426 "bilibili.app.playurl.v1.Event".into()
427 }
428 fn type_url() -> ::prost::alloc::string::String {
429 "/bilibili.app.playurl.v1.Event".into()
430 }
431}
432#[derive(Clone, PartialEq, ::prost::Message)]
434pub struct ExtraContent {
435 #[prost(string, tag = "1")]
437 pub disabled_reason: ::prost::alloc::string::String,
438 #[prost(int64, tag = "2")]
440 pub disabled_code: i64,
441}
442impl ::prost::Name for ExtraContent {
443 const NAME: &'static str = "ExtraContent";
444 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
445 fn full_name() -> ::prost::alloc::string::String {
446 "bilibili.app.playurl.v1.ExtraContent".into()
447 }
448 fn type_url() -> ::prost::alloc::string::String {
449 "/bilibili.app.playurl.v1.ExtraContent".into()
450 }
451}
452#[derive(Clone, Copy, PartialEq, ::prost::Message)]
454pub struct FieldValue {
455 #[prost(oneof = "field_value::Value", tags = "1")]
457 pub value: ::core::option::Option<field_value::Value>,
458}
459pub mod field_value {
461 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
463 pub enum Value {
464 #[prost(bool, tag = "1")]
466 Switch(bool),
467 }
468}
469impl ::prost::Name for FieldValue {
470 const NAME: &'static str = "FieldValue";
471 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
472 fn full_name() -> ::prost::alloc::string::String {
473 "bilibili.app.playurl.v1.FieldValue".into()
474 }
475 fn type_url() -> ::prost::alloc::string::String {
476 "/bilibili.app.playurl.v1.FieldValue".into()
477 }
478}
479#[derive(Clone, PartialEq, ::prost::Message)]
481pub struct FormatDescription {
482 #[prost(int32, tag = "1")]
484 pub quality: i32,
485 #[prost(string, tag = "2")]
487 pub format: ::prost::alloc::string::String,
488 #[prost(string, tag = "3")]
490 pub description: ::prost::alloc::string::String,
491 #[prost(string, tag = "4")]
493 pub new_description: ::prost::alloc::string::String,
494 #[prost(string, tag = "5")]
496 pub display_desc: ::prost::alloc::string::String,
497 #[prost(string, tag = "6")]
499 pub superscript: ::prost::alloc::string::String,
500}
501impl ::prost::Name for FormatDescription {
502 const NAME: &'static str = "FormatDescription";
503 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
504 fn full_name() -> ::prost::alloc::string::String {
505 "bilibili.app.playurl.v1.FormatDescription".into()
506 }
507 fn type_url() -> ::prost::alloc::string::String {
508 "/bilibili.app.playurl.v1.FormatDescription".into()
509 }
510}
511#[derive(Clone, Copy, PartialEq, ::prost::Message)]
513pub struct Glance {
514 #[prost(bool, tag = "1")]
516 pub can_watch: bool,
517 #[prost(int64, tag = "2")]
519 pub times: i64,
520 #[prost(int64, tag = "3")]
522 pub duration: i64,
523}
524impl ::prost::Name for Glance {
525 const NAME: &'static str = "Glance";
526 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
527 fn full_name() -> ::prost::alloc::string::String {
528 "bilibili.app.playurl.v1.Glance".into()
529 }
530 fn type_url() -> ::prost::alloc::string::String {
531 "/bilibili.app.playurl.v1.Glance".into()
532 }
533}
534#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct LossLessItem {
537 #[prost(bool, tag = "1")]
539 pub is_lossless_audio: bool,
540 #[prost(message, optional, tag = "2")]
542 pub audio: ::core::option::Option<DashItem>,
543 #[prost(bool, tag = "3")]
545 pub need_vip: bool,
546}
547impl ::prost::Name for LossLessItem {
548 const NAME: &'static str = "LossLessItem";
549 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
550 fn full_name() -> ::prost::alloc::string::String {
551 "bilibili.app.playurl.v1.LossLessItem".into()
552 }
553 fn type_url() -> ::prost::alloc::string::String {
554 "/bilibili.app.playurl.v1.LossLessItem".into()
555 }
556}
557#[derive(Clone, PartialEq, ::prost::Message)]
559pub struct MultiDashVideo {
560 #[prost(message, repeated, tag = "1")]
562 pub dash_videos: ::prost::alloc::vec::Vec<DashVideo>,
563}
564impl ::prost::Name for MultiDashVideo {
565 const NAME: &'static str = "MultiDashVideo";
566 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
567 fn full_name() -> ::prost::alloc::string::String {
568 "bilibili.app.playurl.v1.MultiDashVideo".into()
569 }
570 fn type_url() -> ::prost::alloc::string::String {
571 "/bilibili.app.playurl.v1.MultiDashVideo".into()
572 }
573}
574#[derive(Clone, Copy, PartialEq, ::prost::Message)]
576pub struct PlayAbilityConf {
577 #[prost(message, optional, tag = "1")]
579 pub background_play_conf: ::core::option::Option<CloudConf>,
580 #[prost(message, optional, tag = "2")]
582 pub flip_conf: ::core::option::Option<CloudConf>,
583 #[prost(message, optional, tag = "3")]
585 pub cast_conf: ::core::option::Option<CloudConf>,
586 #[prost(message, optional, tag = "4")]
588 pub feedback_conf: ::core::option::Option<CloudConf>,
589 #[prost(message, optional, tag = "5")]
591 pub subtitle_conf: ::core::option::Option<CloudConf>,
592 #[prost(message, optional, tag = "6")]
594 pub playback_rate_conf: ::core::option::Option<CloudConf>,
595 #[prost(message, optional, tag = "7")]
597 pub time_up_conf: ::core::option::Option<CloudConf>,
598 #[prost(message, optional, tag = "8")]
600 pub playback_mode_conf: ::core::option::Option<CloudConf>,
601 #[prost(message, optional, tag = "9")]
603 pub scale_mode_conf: ::core::option::Option<CloudConf>,
604 #[prost(message, optional, tag = "10")]
606 pub like_conf: ::core::option::Option<CloudConf>,
607 #[prost(message, optional, tag = "11")]
609 pub dislike_conf: ::core::option::Option<CloudConf>,
610 #[prost(message, optional, tag = "12")]
612 pub coin_conf: ::core::option::Option<CloudConf>,
613 #[prost(message, optional, tag = "13")]
615 pub elec_conf: ::core::option::Option<CloudConf>,
616 #[prost(message, optional, tag = "14")]
618 pub share_conf: ::core::option::Option<CloudConf>,
619 #[prost(message, optional, tag = "15")]
621 pub screen_shot_conf: ::core::option::Option<CloudConf>,
622 #[prost(message, optional, tag = "16")]
624 pub lock_screen_conf: ::core::option::Option<CloudConf>,
625 #[prost(message, optional, tag = "17")]
627 pub recommend_conf: ::core::option::Option<CloudConf>,
628 #[prost(message, optional, tag = "18")]
630 pub playback_speed_conf: ::core::option::Option<CloudConf>,
631 #[prost(message, optional, tag = "19")]
633 pub definition_conf: ::core::option::Option<CloudConf>,
634 #[prost(message, optional, tag = "20")]
636 pub selections_conf: ::core::option::Option<CloudConf>,
637 #[prost(message, optional, tag = "21")]
639 pub next_conf: ::core::option::Option<CloudConf>,
640 #[prost(message, optional, tag = "22")]
642 pub edit_dm_conf: ::core::option::Option<CloudConf>,
643 #[prost(message, optional, tag = "23")]
645 pub small_window_conf: ::core::option::Option<CloudConf>,
646 #[prost(message, optional, tag = "24")]
648 pub shake_conf: ::core::option::Option<CloudConf>,
649 #[prost(message, optional, tag = "25")]
651 pub outer_dm_conf: ::core::option::Option<CloudConf>,
652 #[prost(message, optional, tag = "26")]
654 pub inner_dm_conf: ::core::option::Option<CloudConf>,
655 #[prost(message, optional, tag = "27")]
657 pub panorama_conf: ::core::option::Option<CloudConf>,
658 #[prost(message, optional, tag = "28")]
660 pub dolby_conf: ::core::option::Option<CloudConf>,
661 #[prost(message, optional, tag = "29")]
663 pub color_filter_conf: ::core::option::Option<CloudConf>,
664 #[prost(message, optional, tag = "30")]
666 pub loss_less_conf: ::core::option::Option<CloudConf>,
667}
668impl ::prost::Name for PlayAbilityConf {
669 const NAME: &'static str = "PlayAbilityConf";
670 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
671 fn full_name() -> ::prost::alloc::string::String {
672 "bilibili.app.playurl.v1.PlayAbilityConf".into()
673 }
674 fn type_url() -> ::prost::alloc::string::String {
675 "/bilibili.app.playurl.v1.PlayAbilityConf".into()
676 }
677}
678#[derive(Clone, Copy, PartialEq, ::prost::Message)]
680pub struct PlayArc {
681 #[prost(bool, tag = "1")]
683 pub is_preview: bool,
684}
685impl ::prost::Name for PlayArc {
686 const NAME: &'static str = "PlayArc";
687 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
688 fn full_name() -> ::prost::alloc::string::String {
689 "bilibili.app.playurl.v1.PlayArc".into()
690 }
691 fn type_url() -> ::prost::alloc::string::String {
692 "/bilibili.app.playurl.v1.PlayArc".into()
693 }
694}
695#[derive(Clone, PartialEq, ::prost::Message)]
697pub struct PlayArcConf {
698 #[prost(message, optional, tag = "1")]
700 pub background_play_conf: ::core::option::Option<ArcConf>,
701 #[prost(message, optional, tag = "2")]
703 pub flip_conf: ::core::option::Option<ArcConf>,
704 #[prost(message, optional, tag = "3")]
706 pub cast_conf: ::core::option::Option<ArcConf>,
707 #[prost(message, optional, tag = "4")]
709 pub feedback_conf: ::core::option::Option<ArcConf>,
710 #[prost(message, optional, tag = "5")]
712 pub subtitle_conf: ::core::option::Option<ArcConf>,
713 #[prost(message, optional, tag = "6")]
715 pub playback_rate_conf: ::core::option::Option<ArcConf>,
716 #[prost(message, optional, tag = "7")]
718 pub time_up_conf: ::core::option::Option<ArcConf>,
719 #[prost(message, optional, tag = "8")]
721 pub playback_mode_conf: ::core::option::Option<ArcConf>,
722 #[prost(message, optional, tag = "9")]
724 pub scale_mode_conf: ::core::option::Option<ArcConf>,
725 #[prost(message, optional, tag = "10")]
727 pub like_conf: ::core::option::Option<ArcConf>,
728 #[prost(message, optional, tag = "11")]
730 pub dislike_conf: ::core::option::Option<ArcConf>,
731 #[prost(message, optional, tag = "12")]
733 pub coin_conf: ::core::option::Option<ArcConf>,
734 #[prost(message, optional, tag = "13")]
736 pub elec_conf: ::core::option::Option<ArcConf>,
737 #[prost(message, optional, tag = "14")]
739 pub share_conf: ::core::option::Option<ArcConf>,
740 #[prost(message, optional, tag = "15")]
742 pub screen_shot_conf: ::core::option::Option<ArcConf>,
743 #[prost(message, optional, tag = "16")]
745 pub lock_screen_conf: ::core::option::Option<ArcConf>,
746 #[prost(message, optional, tag = "17")]
748 pub recommend_conf: ::core::option::Option<ArcConf>,
749 #[prost(message, optional, tag = "18")]
751 pub playback_speed_conf: ::core::option::Option<ArcConf>,
752 #[prost(message, optional, tag = "19")]
754 pub definition_conf: ::core::option::Option<ArcConf>,
755 #[prost(message, optional, tag = "20")]
757 pub selections_conf: ::core::option::Option<ArcConf>,
758 #[prost(message, optional, tag = "21")]
760 pub next_conf: ::core::option::Option<ArcConf>,
761 #[prost(message, optional, tag = "22")]
763 pub edit_dm_conf: ::core::option::Option<ArcConf>,
764 #[prost(message, optional, tag = "23")]
766 pub small_window_conf: ::core::option::Option<ArcConf>,
767 #[prost(message, optional, tag = "24")]
769 pub shake_conf: ::core::option::Option<ArcConf>,
770 #[prost(message, optional, tag = "25")]
772 pub outer_dm_conf: ::core::option::Option<ArcConf>,
773 #[prost(message, optional, tag = "26")]
775 pub inner_dm_conf: ::core::option::Option<ArcConf>,
776 #[prost(message, optional, tag = "27")]
778 pub panorama_conf: ::core::option::Option<ArcConf>,
779 #[prost(message, optional, tag = "28")]
781 pub dolby_conf: ::core::option::Option<ArcConf>,
782 #[prost(message, optional, tag = "29")]
784 pub screen_recording_conf: ::core::option::Option<ArcConf>,
785 #[prost(message, optional, tag = "30")]
787 pub color_filter_conf: ::core::option::Option<ArcConf>,
788 #[prost(message, optional, tag = "31")]
790 pub loss_less_conf: ::core::option::Option<ArcConf>,
791 #[prost(message, optional, tag = "32")]
793 pub system_record_conf: ::core::option::Option<ArcConf>,
794}
795impl ::prost::Name for PlayArcConf {
796 const NAME: &'static str = "PlayArcConf";
797 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
798 fn full_name() -> ::prost::alloc::string::String {
799 "bilibili.app.playurl.v1.PlayArcConf".into()
800 }
801 fn type_url() -> ::prost::alloc::string::String {
802 "/bilibili.app.playurl.v1.PlayArcConf".into()
803 }
804}
805#[derive(Clone, Copy, PartialEq, ::prost::Message)]
807pub struct PlayConfEditReply {}
808impl ::prost::Name for PlayConfEditReply {
809 const NAME: &'static str = "PlayConfEditReply";
810 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
811 fn full_name() -> ::prost::alloc::string::String {
812 "bilibili.app.playurl.v1.PlayConfEditReply".into()
813 }
814 fn type_url() -> ::prost::alloc::string::String {
815 "/bilibili.app.playurl.v1.PlayConfEditReply".into()
816 }
817}
818#[derive(Clone, PartialEq, ::prost::Message)]
820pub struct PlayConfEditReq {
821 #[prost(message, repeated, tag = "1")]
823 pub play_conf: ::prost::alloc::vec::Vec<PlayConfState>,
824}
825impl ::prost::Name for PlayConfEditReq {
826 const NAME: &'static str = "PlayConfEditReq";
827 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
828 fn full_name() -> ::prost::alloc::string::String {
829 "bilibili.app.playurl.v1.PlayConfEditReq".into()
830 }
831 fn type_url() -> ::prost::alloc::string::String {
832 "/bilibili.app.playurl.v1.PlayConfEditReq".into()
833 }
834}
835#[derive(Clone, Copy, PartialEq, ::prost::Message)]
837pub struct PlayConfReply {
838 #[prost(message, optional, tag = "1")]
840 pub play_conf: ::core::option::Option<PlayAbilityConf>,
841}
842impl ::prost::Name for PlayConfReply {
843 const NAME: &'static str = "PlayConfReply";
844 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
845 fn full_name() -> ::prost::alloc::string::String {
846 "bilibili.app.playurl.v1.PlayConfReply".into()
847 }
848 fn type_url() -> ::prost::alloc::string::String {
849 "/bilibili.app.playurl.v1.PlayConfReply".into()
850 }
851}
852#[derive(Clone, Copy, PartialEq, ::prost::Message)]
854pub struct PlayConfReq {}
855impl ::prost::Name for PlayConfReq {
856 const NAME: &'static str = "PlayConfReq";
857 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
858 fn full_name() -> ::prost::alloc::string::String {
859 "bilibili.app.playurl.v1.PlayConfReq".into()
860 }
861 fn type_url() -> ::prost::alloc::string::String {
862 "/bilibili.app.playurl.v1.PlayConfReq".into()
863 }
864}
865#[derive(Clone, Copy, PartialEq, ::prost::Message)]
867pub struct PlayConfState {
868 #[prost(enumeration = "ConfType", tag = "1")]
870 pub conf_type: i32,
871 #[prost(bool, tag = "2")]
873 pub show: bool,
874 #[prost(message, optional, tag = "3")]
876 pub field_value: ::core::option::Option<FieldValue>,
877 #[prost(message, optional, tag = "4")]
879 pub conf_value: ::core::option::Option<ConfValue>,
880}
881impl ::prost::Name for PlayConfState {
882 const NAME: &'static str = "PlayConfState";
883 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
884 fn full_name() -> ::prost::alloc::string::String {
885 "bilibili.app.playurl.v1.PlayConfState".into()
886 }
887 fn type_url() -> ::prost::alloc::string::String {
888 "/bilibili.app.playurl.v1.PlayConfState".into()
889 }
890}
891#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct PlayLimit {
894 #[prost(enumeration = "PlayLimitCode", tag = "1")]
896 pub code: i32,
897 #[prost(string, tag = "2")]
899 pub message: ::prost::alloc::string::String,
900 #[prost(string, tag = "3")]
902 pub sub_message: ::prost::alloc::string::String,
903 #[prost(message, optional, tag = "4")]
905 pub button: ::core::option::Option<ButtonStyle>,
906}
907impl ::prost::Name for PlayLimit {
908 const NAME: &'static str = "PlayLimit";
909 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
910 fn full_name() -> ::prost::alloc::string::String {
911 "bilibili.app.playurl.v1.PlayLimit".into()
912 }
913 fn type_url() -> ::prost::alloc::string::String {
914 "/bilibili.app.playurl.v1.PlayLimit".into()
915 }
916}
917#[derive(Clone, PartialEq, ::prost::Message)]
919pub struct PlayUrlReply {
920 #[prost(int32, tag = "1")]
922 pub quality: i32,
923 #[prost(string, tag = "2")]
925 pub format: ::prost::alloc::string::String,
926 #[prost(int64, tag = "3")]
928 pub timelength: i64,
929 #[prost(int32, tag = "4")]
931 pub video_codecid: i32,
932 #[prost(int32, tag = "5")]
934 pub fnver: i32,
935 #[prost(int32, tag = "6")]
937 pub fnval: i32,
938 #[prost(bool, tag = "7")]
940 pub video_project: bool,
941 #[prost(message, repeated, tag = "8")]
943 pub durl: ::prost::alloc::vec::Vec<ResponseUrl>,
944 #[prost(message, optional, tag = "9")]
946 pub dash: ::core::option::Option<ResponseDash>,
947 #[prost(int32, tag = "10")]
949 pub no_rexcode: i32,
950 #[prost(message, optional, tag = "11")]
952 pub upgrade_limit: ::core::option::Option<UpgradeLimit>,
953 #[prost(message, repeated, tag = "12")]
955 pub support_formats: ::prost::alloc::vec::Vec<FormatDescription>,
956 #[prost(enumeration = "VideoType", tag = "13")]
958 pub r#type: i32,
959 #[prost(message, optional, tag = "14")]
961 pub vip_risk: ::core::option::Option<VipRisk>,
962}
963impl ::prost::Name for PlayUrlReply {
964 const NAME: &'static str = "PlayURLReply";
965 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
966 fn full_name() -> ::prost::alloc::string::String {
967 "bilibili.app.playurl.v1.PlayURLReply".into()
968 }
969 fn type_url() -> ::prost::alloc::string::String {
970 "/bilibili.app.playurl.v1.PlayURLReply".into()
971 }
972}
973#[derive(Clone, PartialEq, ::prost::Message)]
975pub struct PlayUrlReq {
976 #[prost(int64, tag = "1")]
978 pub aid: i64,
979 #[prost(int64, tag = "2")]
981 pub cid: i64,
982 #[prost(int64, tag = "3")]
984 pub qn: i64,
985 #[prost(int32, tag = "4")]
987 pub fnver: i32,
988 #[prost(int32, tag = "5")]
990 pub fnval: i32,
991 #[prost(int32, tag = "6")]
993 pub download: i32,
994 #[prost(int32, tag = "7")]
996 pub force_host: i32,
997 #[prost(bool, tag = "8")]
999 pub fourk: bool,
1000 #[prost(string, tag = "9")]
1002 pub spmid: ::prost::alloc::string::String,
1003 #[prost(string, tag = "10")]
1005 pub from_spmid: ::prost::alloc::string::String,
1006}
1007impl ::prost::Name for PlayUrlReq {
1008 const NAME: &'static str = "PlayURLReq";
1009 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1010 fn full_name() -> ::prost::alloc::string::String {
1011 "bilibili.app.playurl.v1.PlayURLReq".into()
1012 }
1013 fn type_url() -> ::prost::alloc::string::String {
1014 "/bilibili.app.playurl.v1.PlayURLReq".into()
1015 }
1016}
1017#[derive(Clone, PartialEq, ::prost::Message)]
1019pub struct PlayViewReply {
1020 #[prost(message, optional, tag = "1")]
1022 pub video_info: ::core::option::Option<VideoInfo>,
1023 #[prost(message, optional, tag = "2")]
1025 pub play_conf: ::core::option::Option<PlayAbilityConf>,
1026 #[prost(message, optional, tag = "3")]
1028 pub upgrade_limit: ::core::option::Option<UpgradeLimit>,
1029 #[prost(message, optional, tag = "4")]
1031 pub chronos: ::core::option::Option<Chronos>,
1032 #[prost(message, optional, tag = "5")]
1034 pub play_arc: ::core::option::Option<PlayArcConf>,
1035 #[prost(message, optional, tag = "6")]
1037 pub event: ::core::option::Option<Event>,
1038 #[prost(message, optional, tag = "7")]
1040 pub ab: ::core::option::Option<Ab>,
1041 #[prost(message, optional, tag = "8")]
1043 pub play_limit: ::core::option::Option<PlayLimit>,
1044 #[prost(message, optional, tag = "9")]
1046 pub view_info: ::core::option::Option<ViewInfo>,
1047 #[prost(message, optional, tag = "10")]
1049 pub arc: ::core::option::Option<PlayArc>,
1050}
1051impl ::prost::Name for PlayViewReply {
1052 const NAME: &'static str = "PlayViewReply";
1053 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1054 fn full_name() -> ::prost::alloc::string::String {
1055 "bilibili.app.playurl.v1.PlayViewReply".into()
1056 }
1057 fn type_url() -> ::prost::alloc::string::String {
1058 "/bilibili.app.playurl.v1.PlayViewReply".into()
1059 }
1060}
1061#[derive(Clone, PartialEq, ::prost::Message)]
1063pub struct PlayViewReq {
1064 #[prost(int64, tag = "1")]
1066 pub aid: i64,
1067 #[prost(int64, tag = "2")]
1069 pub cid: i64,
1070 #[prost(int64, tag = "3")]
1072 pub qn: i64,
1073 #[prost(int32, tag = "4")]
1075 pub fnver: i32,
1076 #[prost(int32, tag = "5")]
1078 pub fnval: i32,
1079 #[prost(int32, tag = "6")]
1081 pub download: i32,
1082 #[prost(int32, tag = "7")]
1084 pub force_host: i32,
1085 #[prost(bool, tag = "8")]
1087 pub fourk: bool,
1088 #[prost(string, tag = "9")]
1090 pub spmid: ::prost::alloc::string::String,
1091 #[prost(string, tag = "10")]
1093 pub from_spmid: ::prost::alloc::string::String,
1094 #[prost(int32, tag = "11")]
1096 pub teenagers_mode: i32,
1097 #[prost(enumeration = "CodeType", tag = "12")]
1099 pub prefer_codec_type: i32,
1100 #[prost(enumeration = "Business", tag = "13")]
1102 pub business: i32,
1103 #[prost(int64, tag = "14")]
1105 pub voice_balance: i64,
1106}
1107impl ::prost::Name for PlayViewReq {
1108 const NAME: &'static str = "PlayViewReq";
1109 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1110 fn full_name() -> ::prost::alloc::string::String {
1111 "bilibili.app.playurl.v1.PlayViewReq".into()
1112 }
1113 fn type_url() -> ::prost::alloc::string::String {
1114 "/bilibili.app.playurl.v1.PlayViewReq".into()
1115 }
1116}
1117#[derive(Clone, PartialEq, ::prost::Message)]
1119pub struct ProjectReply {
1120 #[prost(message, optional, tag = "1")]
1122 pub project: ::core::option::Option<PlayUrlReply>,
1123}
1124impl ::prost::Name for ProjectReply {
1125 const NAME: &'static str = "ProjectReply";
1126 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1127 fn full_name() -> ::prost::alloc::string::String {
1128 "bilibili.app.playurl.v1.ProjectReply".into()
1129 }
1130 fn type_url() -> ::prost::alloc::string::String {
1131 "/bilibili.app.playurl.v1.ProjectReply".into()
1132 }
1133}
1134#[derive(Clone, PartialEq, ::prost::Message)]
1136pub struct ProjectReq {
1137 #[prost(int64, tag = "1")]
1139 pub aid: i64,
1140 #[prost(int64, tag = "2")]
1142 pub cid: i64,
1143 #[prost(int64, tag = "3")]
1145 pub qn: i64,
1146 #[prost(int32, tag = "4")]
1148 pub fnver: i32,
1149 #[prost(int32, tag = "5")]
1151 pub fnval: i32,
1152 #[prost(int32, tag = "6")]
1154 pub download: i32,
1155 #[prost(int32, tag = "7")]
1157 pub force_host: i32,
1158 #[prost(bool, tag = "8")]
1160 pub fourk: bool,
1161 #[prost(string, tag = "9")]
1163 pub spmid: ::prost::alloc::string::String,
1164 #[prost(string, tag = "10")]
1166 pub from_spmid: ::prost::alloc::string::String,
1167 #[prost(int32, tag = "11")]
1169 pub protocol: i32,
1170 #[prost(int32, tag = "12")]
1172 pub device_type: i32,
1173}
1174impl ::prost::Name for ProjectReq {
1175 const NAME: &'static str = "ProjectReq";
1176 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1177 fn full_name() -> ::prost::alloc::string::String {
1178 "bilibili.app.playurl.v1.ProjectReq".into()
1179 }
1180 fn type_url() -> ::prost::alloc::string::String {
1181 "/bilibili.app.playurl.v1.ProjectReq".into()
1182 }
1183}
1184#[derive(Clone, PartialEq, ::prost::Message)]
1186pub struct PromptBar {
1187 #[prost(message, optional, tag = "1")]
1189 pub title: ::core::option::Option<TextInfo>,
1190 #[prost(message, optional, tag = "2")]
1192 pub sub_title: ::core::option::Option<TextInfo>,
1193 #[prost(string, tag = "3")]
1195 pub sub_title_icon: ::prost::alloc::string::String,
1196 #[prost(string, tag = "4")]
1198 pub bg_image: ::prost::alloc::string::String,
1199 #[prost(message, repeated, tag = "5")]
1201 pub button: ::prost::alloc::vec::Vec<ButtonInfo>,
1202 #[prost(message, optional, tag = "6")]
1204 pub report: ::core::option::Option<Report>,
1205}
1206impl ::prost::Name for PromptBar {
1207 const NAME: &'static str = "PromptBar";
1208 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1209 fn full_name() -> ::prost::alloc::string::String {
1210 "bilibili.app.playurl.v1.PromptBar".into()
1211 }
1212 fn type_url() -> ::prost::alloc::string::String {
1213 "/bilibili.app.playurl.v1.PromptBar".into()
1214 }
1215}
1216#[derive(Clone, PartialEq, ::prost::Message)]
1218pub struct Report {
1219 #[prost(string, tag = "1")]
1221 pub show_event_id: ::prost::alloc::string::String,
1222 #[prost(string, tag = "2")]
1224 pub click_event_id: ::prost::alloc::string::String,
1225 #[prost(string, tag = "3")]
1227 pub extends: ::prost::alloc::string::String,
1228}
1229impl ::prost::Name for Report {
1230 const NAME: &'static str = "Report";
1231 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1232 fn full_name() -> ::prost::alloc::string::String {
1233 "bilibili.app.playurl.v1.Report".into()
1234 }
1235 fn type_url() -> ::prost::alloc::string::String {
1236 "/bilibili.app.playurl.v1.Report".into()
1237 }
1238}
1239#[derive(Clone, PartialEq, ::prost::Message)]
1241pub struct ResponseDash {
1242 #[prost(message, repeated, tag = "1")]
1244 pub video: ::prost::alloc::vec::Vec<DashItem>,
1245 #[prost(message, repeated, tag = "2")]
1247 pub audio: ::prost::alloc::vec::Vec<DashItem>,
1248}
1249impl ::prost::Name for ResponseDash {
1250 const NAME: &'static str = "ResponseDash";
1251 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1252 fn full_name() -> ::prost::alloc::string::String {
1253 "bilibili.app.playurl.v1.ResponseDash".into()
1254 }
1255 fn type_url() -> ::prost::alloc::string::String {
1256 "/bilibili.app.playurl.v1.ResponseDash".into()
1257 }
1258}
1259#[derive(Clone, PartialEq, ::prost::Message)]
1261pub struct ResponseUrl {
1262 #[prost(int32, tag = "1")]
1264 pub order: i32,
1265 #[prost(int64, tag = "2")]
1267 pub length: i64,
1268 #[prost(int64, tag = "3")]
1270 pub size: i64,
1271 #[prost(string, tag = "4")]
1273 pub url: ::prost::alloc::string::String,
1274 #[prost(string, repeated, tag = "5")]
1276 pub backup_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1277 #[prost(string, tag = "6")]
1279 pub md5: ::prost::alloc::string::String,
1280 #[prost(int32, tag = "7")]
1282 pub quality: i32,
1283}
1284impl ::prost::Name for ResponseUrl {
1285 const NAME: &'static str = "ResponseUrl";
1286 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1287 fn full_name() -> ::prost::alloc::string::String {
1288 "bilibili.app.playurl.v1.ResponseUrl".into()
1289 }
1290 fn type_url() -> ::prost::alloc::string::String {
1291 "/bilibili.app.playurl.v1.ResponseUrl".into()
1292 }
1293}
1294#[derive(Clone, PartialEq, ::prost::Message)]
1296pub struct Scheme {
1297 #[prost(enumeration = "scheme::ActionType", tag = "1")]
1299 pub action_type: i32,
1300 #[prost(string, tag = "2")]
1302 pub toast: ::prost::alloc::string::String,
1303}
1304pub mod scheme {
1306 #[derive(
1308 Clone,
1309 Copy,
1310 Debug,
1311 PartialEq,
1312 Eq,
1313 Hash,
1314 PartialOrd,
1315 Ord,
1316 ::prost::Enumeration
1317 )]
1318 #[repr(i32)]
1319 pub enum ActionType {
1320 UnknownActionType = 0,
1322 ShowToast = 1,
1324 }
1325 impl ActionType {
1326 pub fn as_str_name(&self) -> &'static str {
1331 match self {
1332 Self::UnknownActionType => "UNKNOWN_ActionType",
1333 Self::ShowToast => "SHOW_TOAST",
1334 }
1335 }
1336 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1338 match value {
1339 "UNKNOWN_ActionType" => Some(Self::UnknownActionType),
1340 "SHOW_TOAST" => Some(Self::ShowToast),
1341 _ => None,
1342 }
1343 }
1344 }
1345}
1346impl ::prost::Name for Scheme {
1347 const NAME: &'static str = "Scheme";
1348 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1349 fn full_name() -> ::prost::alloc::string::String {
1350 "bilibili.app.playurl.v1.Scheme".into()
1351 }
1352 fn type_url() -> ::prost::alloc::string::String {
1353 "/bilibili.app.playurl.v1.Scheme".into()
1354 }
1355}
1356#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct SegmentVideo {
1359 #[prost(message, repeated, tag = "1")]
1361 pub segment: ::prost::alloc::vec::Vec<ResponseUrl>,
1362}
1363impl ::prost::Name for SegmentVideo {
1364 const NAME: &'static str = "SegmentVideo";
1365 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1366 fn full_name() -> ::prost::alloc::string::String {
1367 "bilibili.app.playurl.v1.SegmentVideo".into()
1368 }
1369 fn type_url() -> ::prost::alloc::string::String {
1370 "/bilibili.app.playurl.v1.SegmentVideo".into()
1371 }
1372}
1373#[derive(Clone, PartialEq, ::prost::Message)]
1375pub struct Shake {
1376 #[prost(string, tag = "1")]
1378 pub file: ::prost::alloc::string::String,
1379}
1380impl ::prost::Name for Shake {
1381 const NAME: &'static str = "Shake";
1382 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1383 fn full_name() -> ::prost::alloc::string::String {
1384 "bilibili.app.playurl.v1.Shake".into()
1385 }
1386 fn type_url() -> ::prost::alloc::string::String {
1387 "/bilibili.app.playurl.v1.Shake".into()
1388 }
1389}
1390#[derive(Clone, PartialEq, ::prost::Message)]
1392pub struct Stream {
1393 #[prost(message, optional, tag = "1")]
1395 pub stream_info: ::core::option::Option<StreamInfo>,
1396 #[prost(oneof = "stream::Content", tags = "2, 3, 4")]
1398 pub content: ::core::option::Option<stream::Content>,
1399}
1400pub mod stream {
1402 #[derive(Clone, PartialEq, ::prost::Oneof)]
1404 pub enum Content {
1405 #[prost(message, tag = "2")]
1407 DashVideo(super::DashVideo),
1408 #[prost(message, tag = "3")]
1410 SegmentVideo(super::SegmentVideo),
1411 #[prost(message, tag = "4")]
1413 MultiDashVideo(super::MultiDashVideo),
1414 }
1415}
1416impl ::prost::Name for Stream {
1417 const NAME: &'static str = "Stream";
1418 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1419 fn full_name() -> ::prost::alloc::string::String {
1420 "bilibili.app.playurl.v1.Stream".into()
1421 }
1422 fn type_url() -> ::prost::alloc::string::String {
1423 "/bilibili.app.playurl.v1.Stream".into()
1424 }
1425}
1426#[derive(Clone, PartialEq, ::prost::Message)]
1428pub struct StreamInfo {
1429 #[prost(int32, tag = "1")]
1431 pub quality: i32,
1432 #[prost(string, tag = "2")]
1434 pub format: ::prost::alloc::string::String,
1435 #[prost(string, tag = "3")]
1437 pub description: ::prost::alloc::string::String,
1438 #[prost(enumeration = "PlayErr", tag = "4")]
1440 pub err_code: i32,
1441 #[prost(message, optional, tag = "5")]
1443 pub limit: ::core::option::Option<StreamLimit>,
1444 #[prost(bool, tag = "6")]
1446 pub need_vip: bool,
1447 #[prost(bool, tag = "7")]
1449 pub need_login: bool,
1450 #[prost(bool, tag = "8")]
1452 pub intact: bool,
1453 #[prost(bool, tag = "9")]
1455 pub no_rexcode: bool,
1456 #[prost(int64, tag = "10")]
1458 pub attribute: i64,
1459 #[prost(string, tag = "11")]
1461 pub new_description: ::prost::alloc::string::String,
1462 #[prost(string, tag = "12")]
1464 pub display_desc: ::prost::alloc::string::String,
1465 #[prost(string, tag = "13")]
1467 pub superscript: ::prost::alloc::string::String,
1468 #[prost(bool, tag = "14")]
1470 pub vip_free: bool,
1471 #[prost(string, tag = "15")]
1473 pub subtitle: ::prost::alloc::string::String,
1474 #[prost(message, optional, tag = "16")]
1476 pub scheme: ::core::option::Option<Scheme>,
1477 #[prost(bool, tag = "17")]
1479 pub support_drm: bool,
1480 #[prost(bool, tag = "18")]
1482 pub has_preview: bool,
1483 #[prost(int64, tag = "19")]
1485 pub extend_attribute: i64,
1486}
1487impl ::prost::Name for StreamInfo {
1488 const NAME: &'static str = "StreamInfo";
1489 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1490 fn full_name() -> ::prost::alloc::string::String {
1491 "bilibili.app.playurl.v1.StreamInfo".into()
1492 }
1493 fn type_url() -> ::prost::alloc::string::String {
1494 "/bilibili.app.playurl.v1.StreamInfo".into()
1495 }
1496}
1497#[derive(Clone, PartialEq, ::prost::Message)]
1499pub struct StreamLimit {
1500 #[prost(string, tag = "1")]
1502 pub title: ::prost::alloc::string::String,
1503 #[prost(string, tag = "2")]
1505 pub uri: ::prost::alloc::string::String,
1506 #[prost(string, tag = "3")]
1508 pub msg: ::prost::alloc::string::String,
1509}
1510impl ::prost::Name for StreamLimit {
1511 const NAME: &'static str = "StreamLimit";
1512 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1513 fn full_name() -> ::prost::alloc::string::String {
1514 "bilibili.app.playurl.v1.StreamLimit".into()
1515 }
1516 fn type_url() -> ::prost::alloc::string::String {
1517 "/bilibili.app.playurl.v1.StreamLimit".into()
1518 }
1519}
1520#[derive(Clone, PartialEq, ::prost::Message)]
1522pub struct TextInfo {
1523 #[prost(string, tag = "1")]
1525 pub text: ::prost::alloc::string::String,
1526 #[prost(string, tag = "2")]
1528 pub text_color: ::prost::alloc::string::String,
1529 #[prost(string, tag = "3")]
1531 pub text_color_night: ::prost::alloc::string::String,
1532}
1533impl ::prost::Name for TextInfo {
1534 const NAME: &'static str = "TextInfo";
1535 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1536 fn full_name() -> ::prost::alloc::string::String {
1537 "bilibili.app.playurl.v1.TextInfo".into()
1538 }
1539 fn type_url() -> ::prost::alloc::string::String {
1540 "/bilibili.app.playurl.v1.TextInfo".into()
1541 }
1542}
1543#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct UpgradeButton {
1546 #[prost(string, tag = "1")]
1548 pub title: ::prost::alloc::string::String,
1549 #[prost(string, tag = "2")]
1551 pub link: ::prost::alloc::string::String,
1552}
1553impl ::prost::Name for UpgradeButton {
1554 const NAME: &'static str = "UpgradeButton";
1555 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1556 fn full_name() -> ::prost::alloc::string::String {
1557 "bilibili.app.playurl.v1.UpgradeButton".into()
1558 }
1559 fn type_url() -> ::prost::alloc::string::String {
1560 "/bilibili.app.playurl.v1.UpgradeButton".into()
1561 }
1562}
1563#[derive(Clone, PartialEq, ::prost::Message)]
1565pub struct UpgradeLimit {
1566 #[prost(int32, tag = "1")]
1568 pub code: i32,
1569 #[prost(string, tag = "2")]
1571 pub message: ::prost::alloc::string::String,
1572 #[prost(string, tag = "3")]
1574 pub image: ::prost::alloc::string::String,
1575 #[prost(message, optional, tag = "4")]
1577 pub button: ::core::option::Option<UpgradeButton>,
1578}
1579impl ::prost::Name for UpgradeLimit {
1580 const NAME: &'static str = "UpgradeLimit";
1581 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1582 fn full_name() -> ::prost::alloc::string::String {
1583 "bilibili.app.playurl.v1.UpgradeLimit".into()
1584 }
1585 fn type_url() -> ::prost::alloc::string::String {
1586 "/bilibili.app.playurl.v1.UpgradeLimit".into()
1587 }
1588}
1589#[derive(Clone, PartialEq, ::prost::Message)]
1591pub struct VideoInfo {
1592 #[prost(int32, tag = "1")]
1594 pub quality: i32,
1595 #[prost(string, tag = "2")]
1597 pub format: ::prost::alloc::string::String,
1598 #[prost(int64, tag = "3")]
1600 pub timelength: i64,
1601 #[prost(int32, tag = "4")]
1603 pub video_codecid: i32,
1604 #[prost(message, repeated, tag = "5")]
1606 pub stream_list: ::prost::alloc::vec::Vec<Stream>,
1607 #[prost(message, repeated, tag = "6")]
1609 pub dash_audio: ::prost::alloc::vec::Vec<DashItem>,
1610 #[prost(message, optional, tag = "7")]
1612 pub dolby: ::core::option::Option<DolbyItem>,
1613 #[prost(message, optional, tag = "8")]
1615 pub volume: ::core::option::Option<VolumeInfo>,
1616 #[prost(message, optional, tag = "9")]
1618 pub loss_less_item: ::core::option::Option<LossLessItem>,
1619 #[prost(int64, tag = "10")]
1621 pub main_timelength: i64,
1622}
1623impl ::prost::Name for VideoInfo {
1624 const NAME: &'static str = "VideoInfo";
1625 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1626 fn full_name() -> ::prost::alloc::string::String {
1627 "bilibili.app.playurl.v1.VideoInfo".into()
1628 }
1629 fn type_url() -> ::prost::alloc::string::String {
1630 "/bilibili.app.playurl.v1.VideoInfo".into()
1631 }
1632}
1633#[derive(Clone, PartialEq, ::prost::Message)]
1635pub struct ViewInfo {
1636 #[prost(map = "string, message", tag = "1")]
1638 pub dialog_map: ::std::collections::HashMap<::prost::alloc::string::String, Dialog>,
1639 #[prost(message, optional, tag = "2")]
1641 pub prompt_bar: ::core::option::Option<PromptBar>,
1642 #[prost(message, repeated, tag = "3")]
1644 pub toasts: ::prost::alloc::vec::Vec<ComprehensiveToast>,
1645}
1646impl ::prost::Name for ViewInfo {
1647 const NAME: &'static str = "ViewInfo";
1648 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1649 fn full_name() -> ::prost::alloc::string::String {
1650 "bilibili.app.playurl.v1.ViewInfo".into()
1651 }
1652 fn type_url() -> ::prost::alloc::string::String {
1653 "/bilibili.app.playurl.v1.ViewInfo".into()
1654 }
1655}
1656#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1658pub struct VipRisk {
1659 #[prost(bool, tag = "1")]
1661 pub allow: bool,
1662 #[prost(int64, tag = "2")]
1664 pub r#type: i64,
1665 #[prost(int64, tag = "3")]
1667 pub reason: i64,
1668 #[prost(int64, tag = "4")]
1670 pub device_status: i64,
1671}
1672impl ::prost::Name for VipRisk {
1673 const NAME: &'static str = "VipRisk";
1674 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1675 fn full_name() -> ::prost::alloc::string::String {
1676 "bilibili.app.playurl.v1.VipRisk".into()
1677 }
1678 fn type_url() -> ::prost::alloc::string::String {
1679 "/bilibili.app.playurl.v1.VipRisk".into()
1680 }
1681}
1682#[derive(Clone, PartialEq, ::prost::Message)]
1684pub struct VolumeInfo {
1685 #[prost(double, tag = "1")]
1687 pub measured_i: f64,
1688 #[prost(double, tag = "2")]
1690 pub measured_lra: f64,
1691 #[prost(double, tag = "3")]
1693 pub measured_tp: f64,
1694 #[prost(double, tag = "4")]
1696 pub measured_threshold: f64,
1697 #[prost(double, tag = "5")]
1699 pub target_offset: f64,
1700 #[prost(double, tag = "6")]
1702 pub target_i: f64,
1703 #[prost(double, tag = "7")]
1705 pub target_tp: f64,
1706 #[prost(map = "string, string", tag = "8")]
1708 pub multi_scene_args: ::std::collections::HashMap<
1709 ::prost::alloc::string::String,
1710 ::prost::alloc::string::String,
1711 >,
1712}
1713impl ::prost::Name for VolumeInfo {
1714 const NAME: &'static str = "VolumeInfo";
1715 const PACKAGE: &'static str = "bilibili.app.playurl.v1";
1716 fn full_name() -> ::prost::alloc::string::String {
1717 "bilibili.app.playurl.v1.VolumeInfo".into()
1718 }
1719 fn type_url() -> ::prost::alloc::string::String {
1720 "/bilibili.app.playurl.v1.VolumeInfo".into()
1721 }
1722}
1723#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1725#[repr(i32)]
1726pub enum Business {
1727 Unknown = 0,
1729 Story = 1,
1731}
1732impl Business {
1733 pub fn as_str_name(&self) -> &'static str {
1738 match self {
1739 Self::Unknown => "UNKNOWN",
1740 Self::Story => "STORY",
1741 }
1742 }
1743 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1745 match value {
1746 "UNKNOWN" => Some(Self::Unknown),
1747 "STORY" => Some(Self::Story),
1748 _ => None,
1749 }
1750 }
1751}
1752#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1754#[repr(i32)]
1755pub enum ButtonAction {
1756 ButtonUnknown = 0,
1758 Chargingplus = 1,
1760}
1761impl ButtonAction {
1762 pub fn as_str_name(&self) -> &'static str {
1767 match self {
1768 Self::ButtonUnknown => "BUTTON_UNKNOWN",
1769 Self::Chargingplus => "CHARGINGPLUS",
1770 }
1771 }
1772 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1774 match value {
1775 "BUTTON_UNKNOWN" => Some(Self::ButtonUnknown),
1776 "CHARGINGPLUS" => Some(Self::Chargingplus),
1777 _ => None,
1778 }
1779 }
1780}
1781#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1783#[repr(i32)]
1784pub enum CodeType {
1785 Nocode = 0,
1787 Code264 = 1,
1789 Code265 = 2,
1791 Codeav1 = 3,
1793}
1794impl CodeType {
1795 pub fn as_str_name(&self) -> &'static str {
1800 match self {
1801 Self::Nocode => "NOCODE",
1802 Self::Code264 => "CODE264",
1803 Self::Code265 => "CODE265",
1804 Self::Codeav1 => "CODEAV1",
1805 }
1806 }
1807 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1809 match value {
1810 "NOCODE" => Some(Self::Nocode),
1811 "CODE264" => Some(Self::Code264),
1812 "CODE265" => Some(Self::Code265),
1813 "CODEAV1" => Some(Self::Codeav1),
1814 _ => None,
1815 }
1816 }
1817}
1818#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1820#[repr(i32)]
1821pub enum ConfType {
1822 NoType = 0,
1824 Flipconf = 1,
1826 Castconf = 2,
1828 Feedback = 3,
1830 Subtitle = 4,
1832 Playbackrate = 5,
1834 Timeup = 6,
1836 Playbackmode = 7,
1838 Scalemode = 8,
1840 Backgroundplay = 9,
1842 Like = 10,
1844 Dislike = 11,
1846 Coin = 12,
1848 Elec = 13,
1850 Share = 14,
1852 Screenshot = 15,
1854 Lockscreen = 16,
1856 Recommend = 17,
1858 Playbackspeed = 18,
1860 Definition = 19,
1862 Selections = 20,
1864 Next = 21,
1866 Editdm = 22,
1868 Smallwindow = 23,
1870 Shake = 24,
1872 Outerdm = 25,
1874 Innerdm = 26,
1876 Panorama = 27,
1878 Dolby = 28,
1880 Colorfilter = 29,
1882 Lossless = 30,
1884}
1885impl ConfType {
1886 pub fn as_str_name(&self) -> &'static str {
1891 match self {
1892 Self::NoType => "NoType",
1893 Self::Flipconf => "FLIPCONF",
1894 Self::Castconf => "CASTCONF",
1895 Self::Feedback => "FEEDBACK",
1896 Self::Subtitle => "SUBTITLE",
1897 Self::Playbackrate => "PLAYBACKRATE",
1898 Self::Timeup => "TIMEUP",
1899 Self::Playbackmode => "PLAYBACKMODE",
1900 Self::Scalemode => "SCALEMODE",
1901 Self::Backgroundplay => "BACKGROUNDPLAY",
1902 Self::Like => "LIKE",
1903 Self::Dislike => "DISLIKE",
1904 Self::Coin => "COIN",
1905 Self::Elec => "ELEC",
1906 Self::Share => "SHARE",
1907 Self::Screenshot => "SCREENSHOT",
1908 Self::Lockscreen => "LOCKSCREEN",
1909 Self::Recommend => "RECOMMEND",
1910 Self::Playbackspeed => "PLAYBACKSPEED",
1911 Self::Definition => "DEFINITION",
1912 Self::Selections => "SELECTIONS",
1913 Self::Next => "NEXT",
1914 Self::Editdm => "EDITDM",
1915 Self::Smallwindow => "SMALLWINDOW",
1916 Self::Shake => "SHAKE",
1917 Self::Outerdm => "OUTERDM",
1918 Self::Innerdm => "INNERDM",
1919 Self::Panorama => "PANORAMA",
1920 Self::Dolby => "DOLBY",
1921 Self::Colorfilter => "COLORFILTER",
1922 Self::Lossless => "LOSSLESS",
1923 }
1924 }
1925 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1927 match value {
1928 "NoType" => Some(Self::NoType),
1929 "FLIPCONF" => Some(Self::Flipconf),
1930 "CASTCONF" => Some(Self::Castconf),
1931 "FEEDBACK" => Some(Self::Feedback),
1932 "SUBTITLE" => Some(Self::Subtitle),
1933 "PLAYBACKRATE" => Some(Self::Playbackrate),
1934 "TIMEUP" => Some(Self::Timeup),
1935 "PLAYBACKMODE" => Some(Self::Playbackmode),
1936 "SCALEMODE" => Some(Self::Scalemode),
1937 "BACKGROUNDPLAY" => Some(Self::Backgroundplay),
1938 "LIKE" => Some(Self::Like),
1939 "DISLIKE" => Some(Self::Dislike),
1940 "COIN" => Some(Self::Coin),
1941 "ELEC" => Some(Self::Elec),
1942 "SHARE" => Some(Self::Share),
1943 "SCREENSHOT" => Some(Self::Screenshot),
1944 "LOCKSCREEN" => Some(Self::Lockscreen),
1945 "RECOMMEND" => Some(Self::Recommend),
1946 "PLAYBACKSPEED" => Some(Self::Playbackspeed),
1947 "DEFINITION" => Some(Self::Definition),
1948 "SELECTIONS" => Some(Self::Selections),
1949 "NEXT" => Some(Self::Next),
1950 "EDITDM" => Some(Self::Editdm),
1951 "SMALLWINDOW" => Some(Self::Smallwindow),
1952 "SHAKE" => Some(Self::Shake),
1953 "OUTERDM" => Some(Self::Outerdm),
1954 "INNERDM" => Some(Self::Innerdm),
1955 "PANORAMA" => Some(Self::Panorama),
1956 "DOLBY" => Some(Self::Dolby),
1957 "COLORFILTER" => Some(Self::Colorfilter),
1958 "LOSSLESS" => Some(Self::Lossless),
1959 _ => None,
1960 }
1961 }
1962}
1963#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1965#[repr(i32)]
1966pub enum Group {
1967 UnknownGroup = 0,
1969 A = 1,
1971 B = 2,
1973 C = 3,
1975}
1976impl Group {
1977 pub fn as_str_name(&self) -> &'static str {
1982 match self {
1983 Self::UnknownGroup => "UnknownGroup",
1984 Self::A => "A",
1985 Self::B => "B",
1986 Self::C => "C",
1987 }
1988 }
1989 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1991 match value {
1992 "UnknownGroup" => Some(Self::UnknownGroup),
1993 "A" => Some(Self::A),
1994 "B" => Some(Self::B),
1995 "C" => Some(Self::C),
1996 _ => None,
1997 }
1998 }
1999}
2000#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2002#[repr(i32)]
2003pub enum GuideStyle {
2004 StyleUnknown = 0,
2006 ChargingText = 1,
2008}
2009impl GuideStyle {
2010 pub fn as_str_name(&self) -> &'static str {
2015 match self {
2016 Self::StyleUnknown => "STYLE_UNKNOWN",
2017 Self::ChargingText => "CHARGING_TEXT",
2018 }
2019 }
2020 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2022 match value {
2023 "STYLE_UNKNOWN" => Some(Self::StyleUnknown),
2024 "CHARGING_TEXT" => Some(Self::ChargingText),
2025 _ => None,
2026 }
2027 }
2028}
2029#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2031#[repr(i32)]
2032pub enum PlayErr {
2033 NoErr = 0,
2035 WithMultiDeviceLoginErr = 1,
2037}
2038impl PlayErr {
2039 pub fn as_str_name(&self) -> &'static str {
2044 match self {
2045 Self::NoErr => "NoErr",
2046 Self::WithMultiDeviceLoginErr => "WithMultiDeviceLoginErr",
2047 }
2048 }
2049 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2051 match value {
2052 "NoErr" => Some(Self::NoErr),
2053 "WithMultiDeviceLoginErr" => Some(Self::WithMultiDeviceLoginErr),
2054 _ => None,
2055 }
2056 }
2057}
2058#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2060#[repr(i32)]
2061pub enum PlayLimitCode {
2062 PlcUnkown = 0,
2064 PlcUgcNotPayed = 1,
2066 PlcChargingPlusNotPass = 2,
2068 PlcChargingPlusUpgrade = 3,
2070}
2071impl PlayLimitCode {
2072 pub fn as_str_name(&self) -> &'static str {
2077 match self {
2078 Self::PlcUnkown => "PLCUnkown",
2079 Self::PlcUgcNotPayed => "PLCUgcNotPayed",
2080 Self::PlcChargingPlusNotPass => "PLCChargingPlusNotPass",
2081 Self::PlcChargingPlusUpgrade => "PLCChargingPlusUpgrade",
2082 }
2083 }
2084 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2086 match value {
2087 "PLCUnkown" => Some(Self::PlcUnkown),
2088 "PLCUgcNotPayed" => Some(Self::PlcUgcNotPayed),
2089 "PLCChargingPlusNotPass" => Some(Self::PlcChargingPlusNotPass),
2090 "PLCChargingPlusUpgrade" => Some(Self::PlcChargingPlusUpgrade),
2091 _ => None,
2092 }
2093 }
2094}
2095#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2097#[repr(i32)]
2098pub enum ToastType {
2099 Unknown = 0,
2101 ChargingToast = 1,
2103}
2104impl ToastType {
2105 pub fn as_str_name(&self) -> &'static str {
2110 match self {
2111 Self::Unknown => "TOAST_TYPE_UNKNOWN",
2112 Self::ChargingToast => "CHARGING_TOAST",
2113 }
2114 }
2115 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2117 match value {
2118 "TOAST_TYPE_UNKNOWN" => Some(Self::Unknown),
2119 "CHARGING_TOAST" => Some(Self::ChargingToast),
2120 _ => None,
2121 }
2122 }
2123}
2124#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2126#[repr(i32)]
2127pub enum VideoType {
2128 Unknown = 0,
2130 Flv = 1,
2132 Dash = 2,
2134 Mp4 = 3,
2136}
2137impl VideoType {
2138 pub fn as_str_name(&self) -> &'static str {
2143 match self {
2144 Self::Unknown => "Unknown",
2145 Self::Flv => "FLV",
2146 Self::Dash => "DASH",
2147 Self::Mp4 => "MP4",
2148 }
2149 }
2150 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2152 match value {
2153 "Unknown" => Some(Self::Unknown),
2154 "FLV" => Some(Self::Flv),
2155 "DASH" => Some(Self::Dash),
2156 "MP4" => Some(Self::Mp4),
2157 _ => None,
2158 }
2159 }
2160}
2161#[cfg(feature = "feat-enable-generated-client")]
2163pub mod play_url_client {
2164 #![allow(
2165 unused_variables,
2166 dead_code,
2167 missing_docs,
2168 clippy::wildcard_imports,
2169 clippy::let_unit_value,
2170 )]
2171 use tonic::codegen::*;
2172 use tonic::codegen::http::Uri;
2173 #[derive(Debug, Clone)]
2175 pub struct PlayUrlClient<T> {
2176 inner: tonic::client::Grpc<T>,
2177 }
2178 impl<T> PlayUrlClient<T>
2179 where
2180 T: tonic::client::GrpcService<tonic::body::Body>,
2181 T::Error: Into<StdError>,
2182 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2183 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2184 {
2185 pub fn new(inner: T) -> Self {
2186 let inner = tonic::client::Grpc::new(inner);
2187 Self { inner }
2188 }
2189 pub fn with_origin(inner: T, origin: Uri) -> Self {
2190 let inner = tonic::client::Grpc::with_origin(inner, origin);
2191 Self { inner }
2192 }
2193 pub fn with_interceptor<F>(
2194 inner: T,
2195 interceptor: F,
2196 ) -> PlayUrlClient<InterceptedService<T, F>>
2197 where
2198 F: tonic::service::Interceptor,
2199 T::ResponseBody: Default,
2200 T: tonic::codegen::Service<
2201 http::Request<tonic::body::Body>,
2202 Response = http::Response<
2203 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2204 >,
2205 >,
2206 <T as tonic::codegen::Service<
2207 http::Request<tonic::body::Body>,
2208 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2209 {
2210 PlayUrlClient::new(InterceptedService::new(inner, interceptor))
2211 }
2212 #[must_use]
2217 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2218 self.inner = self.inner.send_compressed(encoding);
2219 self
2220 }
2221 #[must_use]
2223 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2224 self.inner = self.inner.accept_compressed(encoding);
2225 self
2226 }
2227 #[must_use]
2231 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2232 self.inner = self.inner.max_decoding_message_size(limit);
2233 self
2234 }
2235 #[must_use]
2239 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2240 self.inner = self.inner.max_encoding_message_size(limit);
2241 self
2242 }
2243 pub async fn play_conf(
2245 &mut self,
2246 request: impl tonic::IntoRequest<super::PlayConfReq>,
2247 ) -> std::result::Result<tonic::Response<super::PlayConfReply>, tonic::Status> {
2248 self.inner
2249 .ready()
2250 .await
2251 .map_err(|e| {
2252 tonic::Status::unknown(
2253 format!("Service was not ready: {}", e.into()),
2254 )
2255 })?;
2256 let codec = tonic::codec::ProstCodec::default();
2257 let path = http::uri::PathAndQuery::from_static(
2258 "/bilibili.app.playurl.v1.PlayURL/PlayConf",
2259 );
2260 let mut req = request.into_request();
2261 req.extensions_mut()
2262 .insert(GrpcMethod::new("bilibili.app.playurl.v1.PlayURL", "PlayConf"));
2263 self.inner.unary(req, path, codec).await
2264 }
2265 pub async fn play_conf_edit(
2267 &mut self,
2268 request: impl tonic::IntoRequest<super::PlayConfEditReq>,
2269 ) -> std::result::Result<
2270 tonic::Response<super::PlayConfEditReply>,
2271 tonic::Status,
2272 > {
2273 self.inner
2274 .ready()
2275 .await
2276 .map_err(|e| {
2277 tonic::Status::unknown(
2278 format!("Service was not ready: {}", e.into()),
2279 )
2280 })?;
2281 let codec = tonic::codec::ProstCodec::default();
2282 let path = http::uri::PathAndQuery::from_static(
2283 "/bilibili.app.playurl.v1.PlayURL/PlayConfEdit",
2284 );
2285 let mut req = request.into_request();
2286 req.extensions_mut()
2287 .insert(
2288 GrpcMethod::new("bilibili.app.playurl.v1.PlayURL", "PlayConfEdit"),
2289 );
2290 self.inner.unary(req, path, codec).await
2291 }
2292 pub async fn play_url(
2294 &mut self,
2295 request: impl tonic::IntoRequest<super::PlayUrlReq>,
2296 ) -> std::result::Result<tonic::Response<super::PlayUrlReply>, tonic::Status> {
2297 self.inner
2298 .ready()
2299 .await
2300 .map_err(|e| {
2301 tonic::Status::unknown(
2302 format!("Service was not ready: {}", e.into()),
2303 )
2304 })?;
2305 let codec = tonic::codec::ProstCodec::default();
2306 let path = http::uri::PathAndQuery::from_static(
2307 "/bilibili.app.playurl.v1.PlayURL/PlayURL",
2308 );
2309 let mut req = request.into_request();
2310 req.extensions_mut()
2311 .insert(GrpcMethod::new("bilibili.app.playurl.v1.PlayURL", "PlayURL"));
2312 self.inner.unary(req, path, codec).await
2313 }
2314 pub async fn play_view(
2316 &mut self,
2317 request: impl tonic::IntoRequest<super::PlayViewReq>,
2318 ) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status> {
2319 self.inner
2320 .ready()
2321 .await
2322 .map_err(|e| {
2323 tonic::Status::unknown(
2324 format!("Service was not ready: {}", e.into()),
2325 )
2326 })?;
2327 let codec = tonic::codec::ProstCodec::default();
2328 let path = http::uri::PathAndQuery::from_static(
2329 "/bilibili.app.playurl.v1.PlayURL/PlayView",
2330 );
2331 let mut req = request.into_request();
2332 req.extensions_mut()
2333 .insert(GrpcMethod::new("bilibili.app.playurl.v1.PlayURL", "PlayView"));
2334 self.inner.unary(req, path, codec).await
2335 }
2336 pub async fn project(
2338 &mut self,
2339 request: impl tonic::IntoRequest<super::ProjectReq>,
2340 ) -> std::result::Result<tonic::Response<super::ProjectReply>, tonic::Status> {
2341 self.inner
2342 .ready()
2343 .await
2344 .map_err(|e| {
2345 tonic::Status::unknown(
2346 format!("Service was not ready: {}", e.into()),
2347 )
2348 })?;
2349 let codec = tonic::codec::ProstCodec::default();
2350 let path = http::uri::PathAndQuery::from_static(
2351 "/bilibili.app.playurl.v1.PlayURL/Project",
2352 );
2353 let mut req = request.into_request();
2354 req.extensions_mut()
2355 .insert(GrpcMethod::new("bilibili.app.playurl.v1.PlayURL", "Project"));
2356 self.inner.unary(req, path, codec).await
2357 }
2358 }
2359}
2360#[cfg(feature = "feat-enable-generated-server")]
2362pub mod play_url_server {
2363 #![allow(
2364 unused_variables,
2365 dead_code,
2366 missing_docs,
2367 clippy::wildcard_imports,
2368 clippy::let_unit_value,
2369 )]
2370 use tonic::codegen::*;
2371 #[async_trait]
2373 pub trait PlayUrl: std::marker::Send + std::marker::Sync + 'static {
2374 async fn play_conf(
2376 &self,
2377 request: tonic::Request<super::PlayConfReq>,
2378 ) -> std::result::Result<tonic::Response<super::PlayConfReply>, tonic::Status>;
2379 async fn play_conf_edit(
2381 &self,
2382 request: tonic::Request<super::PlayConfEditReq>,
2383 ) -> std::result::Result<
2384 tonic::Response<super::PlayConfEditReply>,
2385 tonic::Status,
2386 >;
2387 async fn play_url(
2389 &self,
2390 request: tonic::Request<super::PlayUrlReq>,
2391 ) -> std::result::Result<tonic::Response<super::PlayUrlReply>, tonic::Status>;
2392 async fn play_view(
2394 &self,
2395 request: tonic::Request<super::PlayViewReq>,
2396 ) -> std::result::Result<tonic::Response<super::PlayViewReply>, tonic::Status>;
2397 async fn project(
2399 &self,
2400 request: tonic::Request<super::ProjectReq>,
2401 ) -> std::result::Result<tonic::Response<super::ProjectReply>, tonic::Status>;
2402 }
2403 #[derive(Debug)]
2405 pub struct PlayUrlServer<T> {
2406 inner: Arc<T>,
2407 accept_compression_encodings: EnabledCompressionEncodings,
2408 send_compression_encodings: EnabledCompressionEncodings,
2409 max_decoding_message_size: Option<usize>,
2410 max_encoding_message_size: Option<usize>,
2411 }
2412 impl<T> PlayUrlServer<T> {
2413 pub fn new(inner: T) -> Self {
2414 Self::from_arc(Arc::new(inner))
2415 }
2416 pub fn from_arc(inner: Arc<T>) -> Self {
2417 Self {
2418 inner,
2419 accept_compression_encodings: Default::default(),
2420 send_compression_encodings: Default::default(),
2421 max_decoding_message_size: None,
2422 max_encoding_message_size: None,
2423 }
2424 }
2425 pub fn with_interceptor<F>(
2426 inner: T,
2427 interceptor: F,
2428 ) -> InterceptedService<Self, F>
2429 where
2430 F: tonic::service::Interceptor,
2431 {
2432 InterceptedService::new(Self::new(inner), interceptor)
2433 }
2434 #[must_use]
2436 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2437 self.accept_compression_encodings.enable(encoding);
2438 self
2439 }
2440 #[must_use]
2442 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2443 self.send_compression_encodings.enable(encoding);
2444 self
2445 }
2446 #[must_use]
2450 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2451 self.max_decoding_message_size = Some(limit);
2452 self
2453 }
2454 #[must_use]
2458 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2459 self.max_encoding_message_size = Some(limit);
2460 self
2461 }
2462 }
2463 impl<T, B> tonic::codegen::Service<http::Request<B>> for PlayUrlServer<T>
2464 where
2465 T: PlayUrl,
2466 B: Body + std::marker::Send + 'static,
2467 B::Error: Into<StdError> + std::marker::Send + 'static,
2468 {
2469 type Response = http::Response<tonic::body::Body>;
2470 type Error = std::convert::Infallible;
2471 type Future = BoxFuture<Self::Response, Self::Error>;
2472 fn poll_ready(
2473 &mut self,
2474 _cx: &mut Context<'_>,
2475 ) -> Poll<std::result::Result<(), Self::Error>> {
2476 Poll::Ready(Ok(()))
2477 }
2478 fn call(&mut self, req: http::Request<B>) -> Self::Future {
2479 match req.uri().path() {
2480 "/bilibili.app.playurl.v1.PlayURL/PlayConf" => {
2481 #[allow(non_camel_case_types)]
2482 struct PlayConfSvc<T: PlayUrl>(pub Arc<T>);
2483 impl<T: PlayUrl> tonic::server::UnaryService<super::PlayConfReq>
2484 for PlayConfSvc<T> {
2485 type Response = super::PlayConfReply;
2486 type Future = BoxFuture<
2487 tonic::Response<Self::Response>,
2488 tonic::Status,
2489 >;
2490 fn call(
2491 &mut self,
2492 request: tonic::Request<super::PlayConfReq>,
2493 ) -> Self::Future {
2494 let inner = Arc::clone(&self.0);
2495 let fut = async move {
2496 <T as PlayUrl>::play_conf(&inner, request).await
2497 };
2498 Box::pin(fut)
2499 }
2500 }
2501 let accept_compression_encodings = self.accept_compression_encodings;
2502 let send_compression_encodings = self.send_compression_encodings;
2503 let max_decoding_message_size = self.max_decoding_message_size;
2504 let max_encoding_message_size = self.max_encoding_message_size;
2505 let inner = self.inner.clone();
2506 let fut = async move {
2507 let method = PlayConfSvc(inner);
2508 let codec = tonic::codec::ProstCodec::default();
2509 let mut grpc = tonic::server::Grpc::new(codec)
2510 .apply_compression_config(
2511 accept_compression_encodings,
2512 send_compression_encodings,
2513 )
2514 .apply_max_message_size_config(
2515 max_decoding_message_size,
2516 max_encoding_message_size,
2517 );
2518 let res = grpc.unary(method, req).await;
2519 Ok(res)
2520 };
2521 Box::pin(fut)
2522 }
2523 "/bilibili.app.playurl.v1.PlayURL/PlayConfEdit" => {
2524 #[allow(non_camel_case_types)]
2525 struct PlayConfEditSvc<T: PlayUrl>(pub Arc<T>);
2526 impl<T: PlayUrl> tonic::server::UnaryService<super::PlayConfEditReq>
2527 for PlayConfEditSvc<T> {
2528 type Response = super::PlayConfEditReply;
2529 type Future = BoxFuture<
2530 tonic::Response<Self::Response>,
2531 tonic::Status,
2532 >;
2533 fn call(
2534 &mut self,
2535 request: tonic::Request<super::PlayConfEditReq>,
2536 ) -> Self::Future {
2537 let inner = Arc::clone(&self.0);
2538 let fut = async move {
2539 <T as PlayUrl>::play_conf_edit(&inner, request).await
2540 };
2541 Box::pin(fut)
2542 }
2543 }
2544 let accept_compression_encodings = self.accept_compression_encodings;
2545 let send_compression_encodings = self.send_compression_encodings;
2546 let max_decoding_message_size = self.max_decoding_message_size;
2547 let max_encoding_message_size = self.max_encoding_message_size;
2548 let inner = self.inner.clone();
2549 let fut = async move {
2550 let method = PlayConfEditSvc(inner);
2551 let codec = tonic::codec::ProstCodec::default();
2552 let mut grpc = tonic::server::Grpc::new(codec)
2553 .apply_compression_config(
2554 accept_compression_encodings,
2555 send_compression_encodings,
2556 )
2557 .apply_max_message_size_config(
2558 max_decoding_message_size,
2559 max_encoding_message_size,
2560 );
2561 let res = grpc.unary(method, req).await;
2562 Ok(res)
2563 };
2564 Box::pin(fut)
2565 }
2566 "/bilibili.app.playurl.v1.PlayURL/PlayURL" => {
2567 #[allow(non_camel_case_types)]
2568 struct PlayURLSvc<T: PlayUrl>(pub Arc<T>);
2569 impl<T: PlayUrl> tonic::server::UnaryService<super::PlayUrlReq>
2570 for PlayURLSvc<T> {
2571 type Response = super::PlayUrlReply;
2572 type Future = BoxFuture<
2573 tonic::Response<Self::Response>,
2574 tonic::Status,
2575 >;
2576 fn call(
2577 &mut self,
2578 request: tonic::Request<super::PlayUrlReq>,
2579 ) -> Self::Future {
2580 let inner = Arc::clone(&self.0);
2581 let fut = async move {
2582 <T as PlayUrl>::play_url(&inner, request).await
2583 };
2584 Box::pin(fut)
2585 }
2586 }
2587 let accept_compression_encodings = self.accept_compression_encodings;
2588 let send_compression_encodings = self.send_compression_encodings;
2589 let max_decoding_message_size = self.max_decoding_message_size;
2590 let max_encoding_message_size = self.max_encoding_message_size;
2591 let inner = self.inner.clone();
2592 let fut = async move {
2593 let method = PlayURLSvc(inner);
2594 let codec = tonic::codec::ProstCodec::default();
2595 let mut grpc = tonic::server::Grpc::new(codec)
2596 .apply_compression_config(
2597 accept_compression_encodings,
2598 send_compression_encodings,
2599 )
2600 .apply_max_message_size_config(
2601 max_decoding_message_size,
2602 max_encoding_message_size,
2603 );
2604 let res = grpc.unary(method, req).await;
2605 Ok(res)
2606 };
2607 Box::pin(fut)
2608 }
2609 "/bilibili.app.playurl.v1.PlayURL/PlayView" => {
2610 #[allow(non_camel_case_types)]
2611 struct PlayViewSvc<T: PlayUrl>(pub Arc<T>);
2612 impl<T: PlayUrl> tonic::server::UnaryService<super::PlayViewReq>
2613 for PlayViewSvc<T> {
2614 type Response = super::PlayViewReply;
2615 type Future = BoxFuture<
2616 tonic::Response<Self::Response>,
2617 tonic::Status,
2618 >;
2619 fn call(
2620 &mut self,
2621 request: tonic::Request<super::PlayViewReq>,
2622 ) -> Self::Future {
2623 let inner = Arc::clone(&self.0);
2624 let fut = async move {
2625 <T as PlayUrl>::play_view(&inner, request).await
2626 };
2627 Box::pin(fut)
2628 }
2629 }
2630 let accept_compression_encodings = self.accept_compression_encodings;
2631 let send_compression_encodings = self.send_compression_encodings;
2632 let max_decoding_message_size = self.max_decoding_message_size;
2633 let max_encoding_message_size = self.max_encoding_message_size;
2634 let inner = self.inner.clone();
2635 let fut = async move {
2636 let method = PlayViewSvc(inner);
2637 let codec = tonic::codec::ProstCodec::default();
2638 let mut grpc = tonic::server::Grpc::new(codec)
2639 .apply_compression_config(
2640 accept_compression_encodings,
2641 send_compression_encodings,
2642 )
2643 .apply_max_message_size_config(
2644 max_decoding_message_size,
2645 max_encoding_message_size,
2646 );
2647 let res = grpc.unary(method, req).await;
2648 Ok(res)
2649 };
2650 Box::pin(fut)
2651 }
2652 "/bilibili.app.playurl.v1.PlayURL/Project" => {
2653 #[allow(non_camel_case_types)]
2654 struct ProjectSvc<T: PlayUrl>(pub Arc<T>);
2655 impl<T: PlayUrl> tonic::server::UnaryService<super::ProjectReq>
2656 for ProjectSvc<T> {
2657 type Response = super::ProjectReply;
2658 type Future = BoxFuture<
2659 tonic::Response<Self::Response>,
2660 tonic::Status,
2661 >;
2662 fn call(
2663 &mut self,
2664 request: tonic::Request<super::ProjectReq>,
2665 ) -> Self::Future {
2666 let inner = Arc::clone(&self.0);
2667 let fut = async move {
2668 <T as PlayUrl>::project(&inner, request).await
2669 };
2670 Box::pin(fut)
2671 }
2672 }
2673 let accept_compression_encodings = self.accept_compression_encodings;
2674 let send_compression_encodings = self.send_compression_encodings;
2675 let max_decoding_message_size = self.max_decoding_message_size;
2676 let max_encoding_message_size = self.max_encoding_message_size;
2677 let inner = self.inner.clone();
2678 let fut = async move {
2679 let method = ProjectSvc(inner);
2680 let codec = tonic::codec::ProstCodec::default();
2681 let mut grpc = tonic::server::Grpc::new(codec)
2682 .apply_compression_config(
2683 accept_compression_encodings,
2684 send_compression_encodings,
2685 )
2686 .apply_max_message_size_config(
2687 max_decoding_message_size,
2688 max_encoding_message_size,
2689 );
2690 let res = grpc.unary(method, req).await;
2691 Ok(res)
2692 };
2693 Box::pin(fut)
2694 }
2695 _ => {
2696 Box::pin(async move {
2697 let mut response = http::Response::new(
2698 tonic::body::Body::default(),
2699 );
2700 let headers = response.headers_mut();
2701 headers
2702 .insert(
2703 tonic::Status::GRPC_STATUS,
2704 (tonic::Code::Unimplemented as i32).into(),
2705 );
2706 headers
2707 .insert(
2708 http::header::CONTENT_TYPE,
2709 tonic::metadata::GRPC_CONTENT_TYPE,
2710 );
2711 Ok(response)
2712 })
2713 }
2714 }
2715 }
2716 }
2717 impl<T> Clone for PlayUrlServer<T> {
2718 fn clone(&self) -> Self {
2719 let inner = self.inner.clone();
2720 Self {
2721 inner,
2722 accept_compression_encodings: self.accept_compression_encodings,
2723 send_compression_encodings: self.send_compression_encodings,
2724 max_decoding_message_size: self.max_decoding_message_size,
2725 max_encoding_message_size: self.max_encoding_message_size,
2726 }
2727 }
2728 }
2729 pub const SERVICE_NAME: &str = "bilibili.app.playurl.v1.PlayURL";
2731 impl<T> tonic::server::NamedService for PlayUrlServer<T> {
2732 const NAME: &'static str = SERVICE_NAME;
2733 }
2734}