Compare commits

..

17 commits

122 changed files with 3241 additions and 1921 deletions

4
.gitignore vendored
View file

@ -6,3 +6,7 @@
rustypipe_reports
rustypipe_cache*.json
bg_snapshot.bin
*.webm
*.mp4
*.m4a

View file

@ -13,7 +13,7 @@ description = "Client for the public YouTube / YouTube Music API (Innertube), in
include = ["/src", "README.md", "CHANGELOG.md", "LICENSE", "!snapshots"]
[workspace]
members = [".", "codegen", "downloader", "cli"]
members = [".", "codegen", "downloader", "cli", "abr-proto"]
[workspace.package]
edition = "2021"
@ -56,6 +56,7 @@ urlencoding = "2.1.0"
quick-xml = { version = "0.37.0", features = ["serialize"] }
tracing = { version = "0.1.0", features = ["log"] }
localzone = "0.3.1"
protobuf = "3.0.0"
# CLI
indicatif = "0.17.0"
@ -79,6 +80,7 @@ rustypipe-downloader = { path = "./downloader", version = "0.3.1", default-featu
"indicatif",
"audiotag",
] }
rustypipe-abr-proto = { path = "./abr-proto", version = "0.1.0" }
[features]
default = ["default-tls"]

16
abr-proto/Cargo.toml Normal file
View file

@ -0,0 +1,16 @@
[package]
name = "rustypipe-abr-proto"
version = "0.1.0"
edition.workspace = true
authors.workspace = true
license = "MIT"
repository.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Protobuf definitions for YouTube adaptive bitrate streaming"
[dependencies]
protobuf.workspace = true
[build-dependencies]
protobuf-codegen = "3"

21
abr-proto/LICENSE Normal file
View file

@ -0,0 +1,21 @@
Copyright (c) 2025 ThetaDev
MIT LICENSE
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

5
abr-proto/README.md Normal file
View file

@ -0,0 +1,5 @@
# ![RustyPipe](https://codeberg.org/ThetaDev/rustypipe/raw/branch/main/notes/logo.svg) abr-proto
[![Current crates.io version](https://img.shields.io/crates/v/rustypipe-abr-proto.svg)](https://crates.io/crates/rustypipe-abr-proto)
[![License](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](https://opensource.org/licenses/MIT)
[![CI status](https://codeberg.org/ThetaDev/rustypipe/actions/workflows/ci.yaml/badge.svg?style=flat&label=CI)](https://codeberg.org/ThetaDev/rustypipe/actions/?workflow=ci.yaml)

65
abr-proto/build.rs Normal file
View file

@ -0,0 +1,65 @@
use std::{
env, fs,
ops::Deref,
path::{Path, PathBuf},
};
fn out_dir() -> PathBuf {
Path::new(&env::var("OUT_DIR").expect("env")).to_path_buf()
}
fn cleanup() {
let _ = fs::remove_dir_all(out_dir());
}
fn compile() {
let proto_dir = Path::new(&env::var("CARGO_MANIFEST_DIR").expect("env")).join("proto");
let vsdir = proto_dir.join("video_streaming");
let files = &[
proto_dir.join("misc").join("common.proto"),
vsdir.join("buffered_range.proto"),
vsdir.join("client_abr_state.proto"),
vsdir.join("crypto_params.proto"),
vsdir.join("encrypted_player_request.proto"),
vsdir.join("format_initialization_metadata.proto"),
vsdir.join("live_metadata.proto"),
vsdir.join("media_capabilities.proto"),
vsdir.join("media_header.proto"),
vsdir.join("next_request_policy.proto"),
vsdir.join("onesie_header_type.proto"),
vsdir.join("onesie_header.proto"),
vsdir.join("onesie_player_request.proto"),
vsdir.join("onesie_player_response.proto"),
vsdir.join("onesie_request.proto"),
vsdir.join("playback_cookie.proto"),
vsdir.join("playback_start_policy.proto"),
vsdir.join("proxy_status.proto"),
vsdir.join("reload_player_response.proto"),
vsdir.join("request_cancellation_policy.proto"),
vsdir.join("sabr_error.proto"),
vsdir.join("sabr_redirect.proto"),
vsdir.join("stream_protection_status.proto"),
vsdir.join("streamer_context.proto"),
vsdir.join("time_range.proto"),
vsdir.join("video_playback_abr_request.proto"),
];
let slices = files.iter().map(Deref::deref).collect::<Vec<_>>();
let out_dir = out_dir();
fs::create_dir(&out_dir).expect("create_dir");
protobuf_codegen::Codegen::new()
.pure()
.out_dir(&out_dir)
.inputs(&slices)
.include(&proto_dir)
.run()
.expect("Codegen failed.");
}
fn main() {
cleanup();
compile();
}

View file

@ -0,0 +1,28 @@
syntax = "proto2";
package misc;
message HttpHeader {
optional string name = 1;
optional string value = 2;
}
message FormatId {
optional int32 itag = 1;
optional uint64 last_modified = 2;
optional string xtags = 3;
}
message InitRange {
optional int32 start = 1;
optional int32 end = 2;
}
message IndexRange {
optional int32 start = 1;
optional int32 end = 2;
}
message KeyValuePair {
optional string key = 1;
optional string value = 2;
}

View file

@ -0,0 +1,32 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/time_range.proto";
message BufferedRange {
required .misc.FormatId format_id = 1;
required int64 start_time_ms = 2;
required int64 duration_ms = 3;
required int32 start_segment_index = 4;
required int32 end_segment_index = 5;
optional TimeRange time_range = 6;
optional Kob field9 = 9;
optional YPa field11 = 11;
optional YPa field12 = 12;
}
message Kob {
message Pa {
optional string video_id = 1;
optional uint64 lmt = 2;
}
repeated Pa EW = 1;
}
message YPa {
optional int32 field1 = 1;
optional int32 field2 = 2;
optional int32 field3 = 3;
}

View file

@ -0,0 +1,44 @@
syntax = "proto2";
package video_streaming;
message ClientAbrState {
optional int32 time_since_last_manual_format_selection_ms = 13;
optional int32 last_manual_direction = 14;
optional int32 last_manual_selected_resolution = 16;
optional int32 detailed_network_type = 17;
optional int32 client_viewport_width = 18;
optional int32 client_viewport_height = 19;
optional int64 client_bitrate_cap = 20;
optional int32 sticky_resolution = 21;
optional bool client_viewport_is_flexible = 22;
optional int32 bandwidth_estimate = 23;
optional int64 player_time_ms = 28;
optional int64 time_since_last_seek = 29;
optional bool data_saver_mode = 30;
optional int32 visibility = 34;
optional float playback_rate = 35;
optional int64 elapsed_wall_time_ms = 36;
optional bytes media_capabilities = 38;
optional int64 time_since_last_action_ms = 39;
optional int32 enabled_track_types_bitfield = 40;
optional int32 max_pacing_rate = 43;
optional int64 player_state = 44;
optional bool drc_enabled = 46;
optional int32 Jda = 48;
optional int32 qw = 50;
optional int32 Ky = 51;
optional int32 sabr_report_request_cancellation_info = 54;
optional bool l = 56;
optional int64 G7 = 57;
optional bool prefer_vp9 = 58;
optional int32 qj = 59;
optional int32 Hx = 60;
optional bool is_prefetch = 61;
optional int32 sabr_support_quality_constraints = 62;
optional bytes sabr_license_constraint = 63;
optional int32 allow_proxima_live_latency = 64;
optional int32 sabr_force_proxima = 66;
optional int32 Tqb = 67;
optional int64 sabr_force_max_network_interruption_duration_ms = 68;
optional string audio_track_id = 69;
}

View file

@ -0,0 +1,13 @@
syntax = "proto2";
package video_streaming;
message CryptoParams {
enum CompressionType {
VAL_0 = 0;
VAL_1 = 1;
VAL_2 = 2;
}
optional bytes hmac = 4;
optional bytes iv = 5;
optional CompressionType compression_type = 6;
}

View file

@ -0,0 +1,18 @@
syntax = "proto2";
package video_streaming;
import "video_streaming/onesie_player_request.proto";
message EncryptedPlayerRequest {
optional bytes context = 1; // InnerTubeContext proto?
optional bytes encrypted_onesie_player_request = 2;
optional bytes encrypted_client_key = 5;
optional bytes iv = 6;
optional bytes hmac = 7;
optional string reverse_proxy_config = 9;
optional bool serialize_response_as_json = 10;
optional bool pM = 13;
optional bool enable_compression = 14;
optional bytes unencrypted_onesie_player_request = 16;
optional bool TQ = 17;
}

View file

@ -0,0 +1,17 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
message FormatInitializationMetadata {
optional string video_id = 1;
optional .misc.FormatId format_id = 2;
optional int32 end_time_ms = 3;
optional int32 sequence_count = 4;
optional string mime_type = 5;
optional .misc.InitRange init_range = 6;
optional .misc.IndexRange index_range = 7;
optional int32 field8 = 8;
optional int32 duration_ms = 9;
optional int32 field10 = 10;
}

View file

@ -0,0 +1,13 @@
syntax = "proto2";
package video_streaming;
message LiveMetadata {
optional uint32 head_sequence_number = 3;
optional uint64 head_time_ms = 4;
optional uint64 wall_time_ms = 5;
optional uint64 field10 = 10;
optional uint64 field12 = 12;
optional uint64 field13 = 13;
optional uint64 head_time_usec = 14;
optional uint64 field15 = 15;
}

View file

@ -0,0 +1,24 @@
syntax = "proto2";
package video_streaming;
message MediaCapabilities {
repeated VideoFormatCapability video_format_capabilities = 1;
repeated AudioFormatCapability audio_format_capabilities = 2;
optional int32 hdr_mode_bitmask = 5;
message VideoFormatCapability {
optional int32 video_codec = 1;
optional int32 max_height = 3;
optional int32 max_width = 4;
optional int32 max_framerate = 11;
optional int32 max_bitrate_bps = 12;
optional bool is_10_bit_supported = 15;
}
message AudioFormatCapability {
optional int32 audio_codec = 1;
optional int32 num_channels = 2;
optional int32 max_bitrate_bps = 3;
optional int32 spatial_capability_bitmask = 6;
}
}

View file

@ -0,0 +1,30 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/time_range.proto";
message MediaHeader {
optional uint32 header_id = 1;
optional string video_id = 2;
optional int32 itag = 3;
optional uint64 lmt = 4;
optional string xtags = 5;
optional int32 start_data_range = 6;
optional Compression compression = 7;
optional bool is_init_seg = 8;
optional int64 sequence_number = 9;
optional int64 field10 = 10;
optional int32 start_ms = 11;
optional int32 duration_ms = 12;
optional .misc.FormatId format_id = 13;
optional int64 content_length = 14;
optional TimeRange time_range = 15;
enum Compression {
VAL0 = 0;
VAL1 = 1;
GZIP = 2;
}
}

View file

@ -0,0 +1,12 @@
syntax = "proto2";
package video_streaming;
import "video_streaming/playback_cookie.proto";
message NextRequestPolicy {
optional int32 target_audio_readahead_ms = 1;
optional int32 target_video_readahead_ms = 2;
optional int32 backoff_time_ms = 4;
optional .video_streaming.PlaybackCookie playback_cookie = 7;
optional string video_id = 8;
}

View file

@ -0,0 +1,27 @@
syntax = "proto2";
package video_streaming;
import "video_streaming/onesie_header_type.proto";
import "video_streaming/crypto_params.proto";
message OnesieHeader {
message Field23 {
optional string video_id = 2;
}
message Field34 {
repeated string itag_denylist = 1;
}
optional OnesieHeaderType type = 1;
optional string video_id = 2;
optional string itag = 3;
optional CryptoParams crypto_params = 4;
optional uint64 last_modified = 5;
optional int64 media_size_bytes = 7;
repeated string restricted_formats = 11;
optional string xtags = 15;
optional int64 sequence_number = 18;
optional Field23 field23 = 23;
optional Field34 field34 = 34;
}

View file

@ -0,0 +1,31 @@
syntax = "proto2";
package video_streaming;
enum OnesieHeaderType {
PLAYER_RESPONSE = 0;
HEADER_TYPE_1 = 1;
MEDIA_DECRYPTION_KEY = 2;
HEADER_TYPE_3 = 3;
HEADER_TYPE_4 = 4;
HEADER_TYPE_5 = 5;
NEW_HOST = 6;
HEADER_TYPE_7 = 7;
HEADER_TYPE_8 = 8;
HEADER_TYPE_9 = 9;
HEADER_TYPE_10 = 10;
HEADER_TYPE_11 = 11;
HEADER_TYPE_12 = 12;
HEADER_TYPE_13 = 13;
RESTRICTED_FORMATS_HINT = 14;
HEADER_TYPE_15 = 15;
STREAM_METADATA = 16;
HEADER_TYPE_17 = 17;
HEADER_TYPE_18 = 18;
HEADER_TYPE_19 = 19;
HEADER_TYPE_20 = 20;
HEADER_TYPE_21 = 21;
HEADER_TYPE_22 = 22;
HEADER_TYPE_23 = 23;
HEADER_TYPE_24 = 24;
ENCRYPTED_INNERTUBE_RESPONSE_PART = 25;
}

View file

@ -0,0 +1,12 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
message OnesiePlayerRequest {
optional string url = 1;
repeated misc.HttpHeader headers = 2;
optional string body = 3;
optional bool proxied_by_trusted_bandaid = 4;
optional bool skip_response_encryption = 6;
}

View file

@ -0,0 +1,28 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
enum OnesieProxyStatus {
ONESIE_PROXY_STATUS_UNKNOWN = 0;
ONESIE_PROXY_STATUS_OK = 1;
ONESIE_PROXY_STATUS_DECRYPTION_FAILED = 2;
ONESIE_PROXY_STATUS_PARSING_FAILED = 3;
ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR = 4;
ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR = 5;
ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE = 6;
ONESIE_PROXY_STATUS_BACKEND_ERROR = 7;
ONESIE_PROXY_STATUS_CLIENT_ERROR = 8;
ONESIE_PROXY_STATUS_MISSING_CRYPTER = 9;
ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED = 10;
ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED = 11;
ONESIE_PROXY_STATUS_JSON_PARSING_FAILED = 12;
ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE = 13;
}
message OnesiePlayerResponse {
optional OnesieProxyStatus onesie_proxy_status = 1;
optional int32 http_status = 2;
repeated .misc.HttpHeader headers = 3;
optional bytes body = 4;
}

View file

@ -0,0 +1,19 @@
syntax = "proto2";
package video_streaming;
import "video_streaming/client_abr_state.proto";
import "video_streaming/encrypted_player_request.proto";
import "video_streaming/streamer_context.proto";
import "video_streaming/buffered_range.proto";
message OnesieRequest {
repeated string urls = 1;
optional ClientAbrState client_abr_state = 2;
optional EncryptedPlayerRequest player_request = 3;
optional bytes onesie_ustreamer_config = 4;
optional int32 max_vp9_height = 5;
optional int32 client_display_height = 6;
optional StreamerContext streamer_context = 10;
optional int32 request_target = 13; // MLOnesieRequestTarget
repeated BufferedRange buffered_ranges = 14;
}

View file

@ -0,0 +1,11 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
message PlaybackCookie {
optional int32 field1 = 1; // Always 999999??
optional int32 field2 = 2;
optional .misc.FormatId video_fmt = 7;
optional .misc.FormatId audio_fmt = 8;
}

View file

@ -0,0 +1,12 @@
syntax = "proto2";
package video_streaming;
message PlaybackStartPolicy {
message ReadaheadPolicy {
optional int32 min_readahead_ms = 2;
optional int32 min_bandwidth_bytes_per_sec = 1;
}
optional ReadaheadPolicy start_min_readahead_policy = 1;
optional ReadaheadPolicy resume_min_readahead_policy = 2;
}

View file

@ -0,0 +1,15 @@
syntax = "proto2";
package video_streaming;
enum ProxyStatus {
VAL_0 = 0;
OK = 1;
VAL_2 = 2;
VAL_3 = 3;
VAL_4 = 4;
VAL_5 = 5;
VAL_6 = 6;
VAL_7 = 7;
VAL_8 = 8;
VAL_9 = 9;
}

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package video_streaming;
message ReloadPlaybackParams {
optional string token = 1;
}
message ReloadPlayerResponse {
optional ReloadPlaybackParams reload_playback_params = 1;
}

View file

@ -0,0 +1,14 @@
syntax = "proto2";
package video_streaming;
message RequestCancellationPolicy {
message Item {
optional int32 fR = 1;
optional int32 NK = 2;
optional int32 minReadaheadMs = 3;
}
optional int32 N0 = 1;
repeated Item items = 2;
optional int32 jq = 3;
}

View file

@ -0,0 +1,7 @@
syntax = "proto2";
package video_streaming;
message SabrError {
optional string type = 1;
optional int32 code = 2;
}

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package video_streaming;
message SabrRedirect {
optional string url = 1;
}

View file

@ -0,0 +1,7 @@
syntax = "proto2";
package video_streaming;
message StreamProtectionStatus {
optional int32 status = 1;
optional int32 field2 = 2;
}

View file

@ -0,0 +1,66 @@
syntax = "proto2";
package video_streaming;
message StreamerContext {
message ClientInfo {
optional string device_make = 12;
optional string device_model = 13;
optional int32 client_name = 16;
optional string client_version = 17;
optional string os_name = 18;
optional string os_version = 19;
optional string accept_language = 21;
optional string accept_region = 22;
optional int32 screen_width_points = 37;
optional int32 screen_height_points = 38;
optional float screen_width_inches = 39;
optional float screen_height_inches = 40;
optional int32 screen_pixel_density = 41;
optional ClientFormFactor client_form_factor = 46;
optional int32 gmscore_version_code = 50; // e.g. 243731017
optional int32 window_width_points = 55;
optional int32 window_height_points = 56;
optional int32 android_sdk_version = 64;
optional float screen_density_float = 65;
optional int64 utc_offset_minutes = 67;
optional string time_zone = 80;
optional string chipset = 92; // e.g. "qcom;taro"
optional GLDeviceInfo gl_device_info = 102;
}
enum ClientFormFactor {
UNKNOWN_FORM_FACTOR = 0;
FORM_FACTOR_VAL1 = 1;
FORM_FACTOR_VAL2 = 2;
}
message GLDeviceInfo {
optional string gl_renderer = 1;
optional int32 gl_es_version_major = 2;
optional int32 gl_es_version_minor = 3;
}
message Fqa {
optional int32 type = 1;
optional bytes value = 2;
}
message Gqa {
message Hqa {
optional int32 code = 1;
optional string message = 2;
}
optional bytes field1 = 1;
optional Hqa field2 = 2;
}
optional ClientInfo client_info = 1;
optional bytes po_token = 2;
optional bytes playback_cookie = 3;
optional bytes gp = 4;
repeated Fqa field5 = 5;
repeated int32 field6 = 6;
optional string field7 = 7;
optional Gqa field8 = 8;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package video_streaming;
message TimeRange {
optional int64 start = 1;
optional int64 duration = 2;
optional int32 timescale = 3;
}

View file

@ -0,0 +1,51 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/client_abr_state.proto";
import "video_streaming/streamer_context.proto";
import "video_streaming/buffered_range.proto";
message VideoPlaybackAbrRequest {
optional ClientAbrState client_abr_state = 1;
repeated .misc.FormatId selected_format_ids = 2;
repeated BufferedRange buffered_ranges = 3;
optional int64 player_time_ms = 4;
optional bytes video_playback_ustreamer_config = 5;
optional Lo lo = 6;
repeated .misc.FormatId selected_audio_format_ids = 16;
repeated .misc.FormatId selected_video_format_ids = 17;
optional StreamerContext streamer_context = 19;
optional OQa field21 = 21;
optional int32 field22 = 22;
optional int32 field23 = 23;
repeated Pqa field1000 = 1000;
}
message Lo {
message Field4 {
optional int32 field1 = 1;
optional int32 field2 = 2;
optional int32 field3 = 3;
}
optional .misc.FormatId format_id = 1;
optional int32 Lj = 2;
optional int32 sequence_number = 3;
optional Field4 field4 = 4;
optional int32 MZ = 5;
}
message OQa {
repeated string field1 = 1;
optional bytes field2 = 2;
optional string field3 = 3;
optional int32 field4 = 4;
optional int32 field5 = 5;
optional string field6 = 6;
}
message Pqa {
repeated .misc.FormatId formats = 1;
repeated BufferedRange ud = 2;
optional string clip_id = 3;
}

3
abr-proto/src/lib.rs Normal file
View file

@ -0,0 +1,3 @@
#![doc = include_str!("../README.md")]
include!(concat!(env!("OUT_DIR"), "/mod.rs"));

View file

@ -42,6 +42,7 @@ pub enum ABTest {
MusicContinuationItemRenderer = 20,
AlbumRecommends = 21,
CommandExecutorCommand = 22,
AbrStreamOnly = 23,
}
/// List of active A/B tests that are run when none is manually specified
@ -49,6 +50,7 @@ const TESTS_TO_RUN: &[ABTest] = &[
ABTest::MusicAlbumGroupsReordered,
ABTest::AlbumRecommends,
ABTest::CommandExecutorCommand,
ABTest::AbrStreamOnly,
];
#[derive(Debug, Serialize, Deserialize)]
@ -126,6 +128,7 @@ pub async fn run_test(
}
ABTest::AlbumRecommends => album_recommends(&query).await,
ABTest::CommandExecutorCommand => command_executor_command(&query).await,
ABTest::AbrStreamOnly => abr_stream_only(&query).await,
}
.unwrap();
pb.inc(1);
@ -478,3 +481,13 @@ pub async fn command_executor_command(rp: &RustyPipeQuery) -> Result<bool> {
.await?;
Ok(res.contains("\"commandExecutorCommand\""))
}
pub async fn abr_stream_only(rp: &RustyPipeQuery) -> Result<bool> {
let id = "pxY4OXVyMe4";
let res = rp
.clone()
.allow_abr_only()
.player_from_client(id, ClientType::Desktop)
.await?;
Ok(res.video_only_streams.iter().all(|s| s.url.is_none()))
}

View file

@ -34,13 +34,14 @@ audiotag = ["dep:lofty", "dep:image", "dep:smartcrop2"]
[dependencies]
rustypipe.workspace = true
rustypipe-abr-proto.workspace = true
once_cell.workspace = true
regex.workspace = true
thiserror.workspace = true
futures-util.workspace = true
reqwest = { workspace = true, features = ["stream"] }
rand.workspace = true
tokio = { workspace = true, features = ["macros", "fs", "process"] }
tokio = { workspace = true, features = ["macros", "fs", "process", "rt-multi-thread"] }
indicatif = { workspace = true, optional = true }
filenamify.workspace = true
tracing.workspace = true
@ -52,10 +53,21 @@ image = { version = "0.25.0", optional = true, default-features = false, feature
"webp",
] }
smartcrop2 = { version = "0.4.0", optional = true }
data-encoding.workspace = true
protobuf.workspace = true
bytes = "1.0.0"
byteorder = "1.0.0"
async-stream = "0.3.6"
pin-project-lite = "0.2.11"
serde.workspace = true
serde_json.workspace = true
tracing-subscriber.workspace = true
[dev-dependencies]
path_macro.workspace = true
rstest.workspace = true
tracing-test.workspace = true
serde_json.workspace = true
temp_testdir = "0.2.3"

676
downloader/src/abr.rs Normal file
View file

@ -0,0 +1,676 @@
#![allow(unused)]
use std::collections::{HashMap, HashSet};
use bytes::Bytes;
use data_encoding::BASE64URL;
use protobuf::{Message, MessageField};
use reqwest::Client;
use rustypipe::model::{AudioStream, VideoStream};
pub use rustypipe_abr_proto::client_abr_state::ClientAbrState;
use rustypipe_abr_proto::{
buffered_range::BufferedRange,
common::FormatId,
format_initialization_metadata::FormatInitializationMetadata,
media_header::MediaHeader,
next_request_policy::NextRequestPolicy,
playback_cookie::PlaybackCookie,
sabr_error::SabrError,
sabr_redirect::SabrRedirect,
stream_protection_status::StreamProtectionStatus,
streamer_context::{streamer_context::ClientInfo, StreamerContext},
time_range::TimeRange,
video_playback_abr_request::VideoPlaybackAbrRequest,
};
use crate::abr_model::PartType;
use crate::error::AbrError;
pub struct AbrStream {
http: Client,
initial_url: String,
ustreamer_config: Vec<u8>,
po_token: Option<Vec<u8>>,
}
#[derive(Debug)]
pub struct StreamingState {
abr_streaming_url: String,
abr_state: ClientAbrState,
playback_cookie: Option<PlaybackCookie>,
backoff_time_ms: i32,
formats_by_key: HashMap<String, InitializedFormat>,
header_id_to_format_key_map: HashMap<u8, String>,
previous_sequences: HashMap<String, HashSet<i64>>,
}
struct InitializedFormat {
format_id: FormatId,
duration_ms: Option<i32>,
mime_type: Option<String>,
sequence_count: Option<i32>,
sequence_list: Vec<Sequence>,
media_chunks: Vec<u8>,
state: BufferedRange,
}
#[derive(Debug)]
struct Sequence {
itag: Option<i32>,
format_id: FormatId,
is_init_segment: bool,
duration_ms: Option<i32>,
start_ms: Option<i32>,
start_data_range: Option<i32>,
sequence_number: Option<i64>,
content_length: Option<i64>,
time_range: Option<TimeRange>,
}
struct UmpPart<'a> {
part_type: PartType,
size: u64,
data: &'a [u8],
}
impl std::fmt::Debug for InitializedFormat {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("InitializedFormat")
.field("format_id", &self.format_id)
.field("duration_ms", &self.duration_ms)
.field("mime_type", &self.mime_type)
.field("sequence_count", &self.sequence_count)
.field("sequence_list", &self.sequence_list)
.field("media_chunks", &self.media_chunks.len())
.field("state", &self.state)
.finish()
}
}
impl std::fmt::Debug for UmpPart<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("UmpPart")
.field("part_type", &self.part_type)
.field("size", &self.size)
.field("data", &self.data.len())
.finish()
}
}
impl AbrStream {
pub fn new(
url: String,
ustreamer_config: &str,
po_token: Option<&str>,
http: Client,
) -> Result<Self, AbrError> {
let ustreamer_config = BASE64URL.decode(ustreamer_config.as_bytes()).map_err(|e| {
AbrError::Invalid(format!("could not parse ustreamer_config: {e}").into())
})?;
let po_token =
match po_token {
Some(pot) => Some(BASE64URL.decode(pot.as_bytes()).map_err(|e| {
AbrError::Invalid(format!("could not parse po_token: {e}").into())
})?),
None => None,
};
Ok(Self {
http,
initial_url: url,
ustreamer_config,
po_token,
})
}
pub async fn init(
&self,
audio_streams: &[&AudioStream],
video_streams: &[&VideoStream],
mut abr_state: ClientAbrState,
) -> Result<StreamingState, AbrError> {
if !abr_state.has_last_manual_direction() {
abr_state.set_last_manual_direction(0);
}
if !abr_state.has_time_since_last_manual_format_selection_ms() {
abr_state.set_time_since_last_manual_format_selection_ms(0);
}
if !abr_state.has_player_time_ms() {
abr_state.set_player_time_ms(0);
}
if !abr_state.has_visibility() {
abr_state.set_visibility(0);
}
if !abr_state.has_enabled_track_types_bitfield() {
abr_state.set_enabled_track_types_bitfield(i32::from(video_streams.is_empty()));
}
if let Some(v) = video_streams.first() {
if !abr_state.has_last_manual_selected_resolution() {
abr_state.set_last_manual_selected_resolution(v.height as i32);
}
if !abr_state.has_sticky_resolution() {
abr_state.set_sticky_resolution(v.height as i32);
}
}
let audio_format_ids = audio_streams
.iter()
.map(|s| FormatId {
itag: Some(s.itag as i32),
last_modified: s.last_modified,
xtags: s.xtags.clone(),
..Default::default()
})
.collect::<Vec<_>>();
let video_format_ids = video_streams
.iter()
.map(|s| FormatId {
itag: Some(s.itag as i32),
last_modified: s.last_modified,
xtags: s.xtags.clone(),
..Default::default()
})
.collect::<Vec<_>>();
let mut state = StreamingState::new(self.initial_url.to_owned(), abr_state);
let mut ri = 0;
loop {
let data = self
.fetch_media(audio_format_ids.clone(), video_format_ids.clone(), &state)
.await?;
tracing::debug!("request #{ri} fetched {} bytes", data.len());
let ump_parts = Self::parse_ump(&data);
if state.process_ump_parts(&ump_parts)? {
break;
}
ri += 1;
}
Ok(state)
}
async fn fetch_media(
&self,
audio_format_ids: Vec<FormatId>,
video_format_ids: Vec<FormatId>,
state: &StreamingState,
) -> Result<Bytes, AbrError> {
let body = VideoPlaybackAbrRequest {
client_abr_state: MessageField::some(state.abr_state.clone()),
selected_format_ids: state
.formats_by_key
.values()
.map(|f| f.format_id.clone())
.collect(),
buffered_ranges: state
.formats_by_key
.values()
.map(|f| f.state.clone())
.collect(),
// player_time_ms: todo!(),
video_playback_ustreamer_config: Some(self.ustreamer_config.clone()),
selected_audio_format_ids: audio_format_ids,
selected_video_format_ids: video_format_ids,
streamer_context: MessageField::some(StreamerContext {
client_info: MessageField::some(ClientInfo {
client_name: Some(1),
client_version: Some("2.20250314.01.00".to_owned()),
..Default::default()
}),
po_token: self.po_token.clone(),
playback_cookie: state
.playback_cookie
.as_ref()
.and_then(|c| c.write_to_bytes().ok()),
..Default::default()
}),
..Default::default()
};
let res = self
.http
.post(&state.abr_streaming_url)
.body(body.write_to_bytes()?)
.send()
.await?
.error_for_status()?;
// let dstream = res.bytes_stream();
let data = res.bytes().await?;
tracing::debug!("got {} bytes", data.len());
Ok(data)
}
fn parse_ump(data: &[u8]) -> Vec<UmpPart<'_>> {
let mut parts = Vec::new();
let mut offset = 0;
while offset < data.len() {
let (part_type, new_offset) = Self::read_varint(&data[offset..]);
if new_offset == 0 {
break;
}
offset += new_offset;
let (part_size, new_offset) = Self::read_varint(&data[offset..]);
if new_offset == 0 {
break;
}
offset += new_offset;
let data_offset = offset + part_size as usize;
let part_data = &data[offset..data_offset.min(data.len())];
offset = data_offset;
parts.push(UmpPart {
part_type: part_type.into(),
size: part_size,
data: part_data,
});
}
parts
}
fn read_varint(data: &[u8]) -> (u64, usize) {
/*
fn varint_size(byte: u8) -> u8 {
let mut lo = 0;
for i in (4u8..8).rev() {
if byte & (1 << i) == 0 {
break;
} else {
lo += 1;
}
}
return (lo + 1).min(5);
}
if data.is_empty() {
return (0, 0);
}
let prefix = data[0];
let size = varint_size(prefix);
let mut result = 0u64;
let mut shift = 0;
if size != 5 {
shift = 8 - size;
let mask = (1 << shift) - 1;
result |= u64::from(prefix) & mask;
}
let total_size = usize::from(size) + 1;
for byte in &data[1..total_size] {
result |= u64::from(*byte) << shift;
shift += 8;
}
(result, total_size)
*/
// Determine the length of the val
if data.is_empty() {
return (0, 0);
}
let fb = data[0];
let byte_length = if fb < 128 {
1
} else if fb < 192 {
2
} else if fb < 224 {
3
} else if fb < 240 {
4
} else {
5
};
if data.len() < byte_length {
return (0, 0);
}
let n = match byte_length {
1 => data[0].into(),
2 => {
let b1 = u64::from(data[0]);
let b2 = u64::from(data[1]);
(b1 & 0x3f) + 64 * b2
}
3 => {
let b1 = u64::from(data[0]);
let b2 = u64::from(data[1]);
let b3 = u64::from(data[2]);
(b1 & 0x1f) + 32 * (b2 + 256 * b3)
}
4 => {
let b1 = u64::from(data[0]);
let b2 = u64::from(data[1]);
let b3 = u64::from(data[2]);
let b4 = u64::from(data[3]);
(b1 & 0x0f) + 16 * (b2 + 256 * (b3 + 256 * b4))
}
_ => u32::from_be_bytes([data[1], data[2], data[3], data[4]]).into(),
};
(n, byte_length)
}
}
impl StreamingState {
fn new(url: String, abr_state: ClientAbrState) -> Self {
Self {
abr_streaming_url: url,
abr_state,
playback_cookie: None,
backoff_time_ms: 0,
formats_by_key: HashMap::new(),
header_id_to_format_key_map: HashMap::new(),
previous_sequences: HashMap::new(),
}
}
fn process_ump_parts(&mut self, ump_parts: &[UmpPart]) -> Result<bool, AbrError> {
for f in self.formats_by_key.values_mut() {
f.sequence_list.clear();
}
for part in ump_parts {
match part.part_type {
PartType::MEDIA_HEADER => {
self.process_media_header(part.data)?;
}
PartType::MEDIA => {
self.process_media_data(part.data)?;
}
PartType::MEDIA_END => {
self.process_media_end(part.data);
}
PartType::NEXT_REQUEST_POLICY => {
self.process_next_request_policy(part.data)?;
}
PartType::FORMAT_INITIALIZATION_METADATA => {
self.process_format_initialization(part.data)?;
}
PartType::SABR_ERROR => {
return Err(AbrError::Sabr(SabrError::parse_from_bytes(part.data)?));
}
PartType::SABR_REDIRECT => {
self.process_sabr_redirect(part.data)?;
}
PartType::STREAM_PROTECTION_STATUS => {
let prot = StreamProtectionStatus::parse_from_bytes(part.data)?;
match prot.status() {
1 => tracing::debug!("[StreamProtectionStatus]: Good"),
2 => tracing::warn!("[StreamProtectionStatus]: Attestation pending"),
3 => return Err(AbrError::Attestation),
_ => {}
}
}
_ => {}
}
}
let main_format = self
.formats_by_key
.values()
.find(|fmt| {
fmt.mime_type
.as_deref()
.map(|t| t.contains("video"))
.unwrap_or_default()
})
.or(self.formats_by_key.values().next());
if let Some(main_format) = main_format {
self.abr_state.set_player_time_ms(
self.abr_state.player_time_ms()
+ main_format.sequence_list.iter().fold(0, |acc, seq| {
acc + i64::from(seq.duration_ms.unwrap_or_default())
}),
);
tracing::debug!(
"sequence_count={}, last={}",
main_format.sequence_count.unwrap_or_default(),
main_format
.sequence_list
.last()
.and_then(|x| x.sequence_number)
.unwrap_or_default()
);
let is_last = main_format
.sequence_count
.zip(main_format.sequence_list.last())
.map(|(sc, last)| last.sequence_number == Some(sc.into()))
.unwrap_or_default();
Ok(is_last)
} else {
Ok(true)
}
}
fn process_media_header(&mut self, data: &[u8]) -> Result<(), AbrError> {
let mh = MediaHeader::parse_from_bytes(data)?;
let format_id = mh
.format_id
.as_ref()
.ok_or(AbrError::Invalid("media header: no format_id".into()))?;
let header_id = mh
.header_id
.and_then(|hid| u8::try_from(hid).ok())
.ok_or(AbrError::Invalid("media header: no header_id".into()))?;
let format_key = get_format_key(format_id);
if !self.formats_by_key.contains_key(&format_key) {
self.formats_by_key
.insert(format_key.to_owned(), InitializedFormat::try_from(&mh)?);
}
let current_format = self.formats_by_key.get_mut(&format_key).unwrap();
// This is a hacky workaround to prevent duplicate sequences from being added. This should be fixed in the future
// (preferably by figuring out how to make the server not send duplicates).
if let Some(sequence_number) = mh.sequence_number {
let pseq = self
.previous_sequences
.entry(format_key.to_owned())
.or_default();
if !pseq.insert(sequence_number) {
tracing::warn!("duplicate sequence {sequence_number}");
return Ok(());
}
}
// Save the header's ID so we can identify its stream data later.
self.header_id_to_format_key_map
.entry(header_id)
.or_insert(format_key);
if current_format
.sequence_list
.iter()
.all(|x| x.sequence_number != Some(mh.sequence_number()))
{
current_format.sequence_list.push(Sequence {
itag: mh.itag,
format_id: format_id.clone(),
is_init_segment: mh.is_init_seg(),
duration_ms: mh.duration_ms,
start_ms: mh.start_ms,
start_data_range: mh.start_data_range,
sequence_number: mh.sequence_number,
content_length: mh.content_length,
time_range: mh.time_range.as_ref().cloned(),
});
if mh.has_sequence_number() {
current_format.state.set_duration_ms(
current_format.state.duration_ms() + i64::from(mh.duration_ms()),
);
current_format
.state
.set_end_segment_index(current_format.state.end_segment_index() + 1);
}
}
Ok(())
}
fn process_media_data(&mut self, data: &[u8]) -> Result<(), AbrError> {
let header_id = data[0];
let format_key = self
.header_id_to_format_key_map
.get(&header_id)
.ok_or_else(|| {
AbrError::Invalid(format!("media: unknown header id {header_id}").into())
})?;
let current_format = self
.formats_by_key
.get_mut(format_key)
.ok_or(AbrError::Invalid("no current format".into()))?;
current_format.media_chunks.extend_from_slice(&data[1..]);
Ok(())
}
fn process_media_end(&mut self, data: &[u8]) {
let header_id = data[0];
self.header_id_to_format_key_map.remove(&header_id);
}
fn process_next_request_policy(&mut self, data: &[u8]) -> Result<(), AbrError> {
let mut policy = NextRequestPolicy::parse_from_bytes(data)?;
self.playback_cookie = policy.playback_cookie.take();
self.backoff_time_ms = policy.backoff_time_ms();
Ok(())
}
fn process_format_initialization(&mut self, data: &[u8]) -> Result<(), AbrError> {
let init = FormatInitializationMetadata::parse_from_bytes(data)?;
let format = InitializedFormat::try_from(init)?;
let format_key = get_format_key(&format.format_id);
self.formats_by_key.insert(format_key, format);
Ok(())
}
fn process_sabr_redirect(&mut self, data: &[u8]) -> Result<(), AbrError> {
let redir = SabrRedirect::parse_from_bytes(data)?;
self.abr_streaming_url = redir
.url
.ok_or(AbrError::Invalid("sabr redirect: no URL".into()))?;
Ok(())
}
}
fn get_format_key(format_id: &FormatId) -> String {
format!("{};{};", format_id.itag(), format_id.last_modified())
}
impl TryFrom<&MediaHeader> for InitializedFormat {
type Error = AbrError;
fn try_from(value: &MediaHeader) -> Result<Self, Self::Error> {
let format_id = value
.format_id
.as_ref()
.ok_or(AbrError::Invalid("media header: no format_id".into()))?;
Ok(InitializedFormat {
format_id: format_id.clone(),
duration_ms: value.duration_ms,
mime_type: None,
sequence_count: None,
sequence_list: Vec::new(),
media_chunks: Vec::new(),
state: BufferedRange {
format_id: MessageField::some(format_id.clone()),
start_time_ms: Some(0),
duration_ms: Some(0),
start_segment_index: Some(1),
end_segment_index: Some(0),
..Default::default()
},
})
}
}
impl TryFrom<FormatInitializationMetadata> for InitializedFormat {
type Error = AbrError;
fn try_from(value: FormatInitializationMetadata) -> Result<Self, Self::Error> {
let format_id = *value.format_id.0.ok_or(AbrError::Invalid(
"format initialization: no format_id".into(),
))?;
Ok(InitializedFormat {
format_id: format_id.clone(),
duration_ms: value.duration_ms,
mime_type: value.mime_type.clone(),
sequence_count: value.sequence_count,
sequence_list: Vec::new(),
media_chunks: Vec::new(),
state: BufferedRange {
format_id: MessageField::some(format_id),
start_time_ms: Some(0),
duration_ms: Some(0),
start_segment_index: Some(1),
end_segment_index: Some(0),
..Default::default()
},
})
}
}
#[cfg(test)]
mod tests {
use rustypipe::{
client::RustyPipe,
model::{AudioCodec, VideoFormat},
param::StreamFilter,
};
use crate::abr::{AbrStream, StreamingState};
#[tokio::test]
#[tracing_test::traced_test]
async fn experiment() {
let rp = RustyPipe::new();
let player = rp.query().player("UMm7Pq0BdRg").await.unwrap();
let stream_filter = StreamFilter::new()
.allow_abr_only()
.video_max_res(360)
.video_formats([VideoFormat::Webm])
.audio_codecs([AudioCodec::Opus]);
let (video, audio) = player.select_video_audio_stream(&stream_filter);
let _video = video.unwrap();
let audio = audio.unwrap();
let http = reqwest::Client::new();
let abr = AbrStream::new(
player.abr_streaming_url.clone().unwrap(),
player.abr_ustreamer_config.as_deref().unwrap(),
player.po_token.as_deref(),
http,
)
.unwrap();
let state = abr.init(&[audio], &[], Default::default()).await.unwrap();
dbg!(&state);
// let f = state.formats_by_key.values().next().unwrap();
// std::fs::write("test.webm", &f.media_chunks);
}
#[test]
#[tracing_test::traced_test]
fn parse_ump() {
let data = std::fs::read("abr.bin").unwrap();
let ump_parts = AbrStream::parse_ump(&data);
dbg!(&ump_parts);
let mut state = StreamingState::new(Default::default(), Default::default());
assert!(!state.process_ump_parts(&ump_parts).unwrap());
dbg!(&state);
}
}

800
downloader/src/abr2.rs Normal file
View file

@ -0,0 +1,800 @@
#![allow(unused, missing_docs)]
use std::{
collections::{HashMap, HashSet},
fs::File,
io::Write,
marker::PhantomData,
pin::Pin,
task::{ready, Poll},
};
use async_stream::try_stream;
use bytes::{Buf, Bytes};
use data_encoding::BASE64URL;
use futures_util::{stream::BoxStream, FutureExt, Stream, StreamExt, TryStreamExt};
use protobuf::{Message, MessageField};
use reqwest::Client;
use rustypipe::model::{AudioStream, VideoStream};
use rustypipe_abr_proto::{
buffered_range::BufferedRange,
client_abr_state::ClientAbrState,
common::FormatId,
format_initialization_metadata::FormatInitializationMetadata,
media_header::MediaHeader,
next_request_policy::NextRequestPolicy,
playback_cookie::PlaybackCookie,
reload_player_response::ReloadPlayerResponse,
sabr_error::SabrError,
sabr_redirect::SabrRedirect,
stream_protection_status::StreamProtectionStatus,
streamer_context::{streamer_context::ClientInfo, StreamerContext},
video_playback_abr_request::VideoPlaybackAbrRequest,
};
use serde::{Deserialize, Serialize};
use crate::{abr_model::PartType, error::AbrError, util::BytesBuffer};
pub struct AbrStream {
http: Client,
url: String,
ustreamer_config: Vec<u8>,
po_token: Option<Vec<u8>>,
abr_state: ClientAbrState,
audio_format_ids: Vec<FormatId>,
video_format_ids: Vec<FormatId>,
playback_cookie: Option<PlaybackCookie>,
backoff_time_ms: i32,
formats_by_key: HashMap<String, InitializedFormat>,
header_id_to_format_key_map: HashMap<u8, String>,
previous_sequences: HashMap<String, HashSet<i64>>,
buffer: BytesBuffer,
last_header: Option<UmpHeader>,
}
#[derive(Default, Clone)]
pub struct AbrStreamOptions<'a> {
pub http: Client,
pub url: String,
pub ustreamer_config: &'a str,
pub po_token: Option<&'a str>,
pub audio_streams: &'a [&'a AudioStream],
pub video_streams: &'a [&'a VideoStream],
pub player_time: i64,
pub abr_state: ClientAbrState,
}
#[derive(Debug, Clone)]
pub struct AbrStreamItem {
pub format: FormatInfo,
pub data: Bytes,
}
#[derive(Debug, Clone)]
pub struct FormatInfo {
pub itag: i32,
pub last_modified: u64,
pub xtags: Option<String>,
pub mime_type: Option<String>,
}
#[derive(Debug)]
struct InitializedFormat {
format_id: FormatId,
duration_ms: Option<i32>,
mime_type: Option<String>,
sequence_count: Option<i32>,
sequence_list: Vec<Sequence>,
sequence_list2: Vec<Sequence>,
state: BufferedRange,
}
#[derive(Debug, Clone, Serialize)]
struct Sequence {
pub itag: Option<i32>,
#[serde(skip)]
pub format_id: FormatId,
pub is_init_segment: bool,
pub duration_ms: Option<i32>,
pub start_ms: Option<i32>,
pub start_data_range: Option<i32>,
pub sequence_number: Option<i64>,
pub content_length: Option<i64>,
pub time_range: Option<TimeRange>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub(crate) struct TimeRange {
pub start: i64,
pub duration: i64,
pub timescale: i32,
}
#[derive(Debug, Clone)]
struct UmpHeader {
part_type: PartType,
size: u64,
header_id: Option<u8>,
}
impl From<&InitializedFormat> for FormatInfo {
fn from(value: &InitializedFormat) -> Self {
Self {
itag: value.format_id.itag(),
last_modified: value.format_id.last_modified(),
xtags: value.format_id.xtags.clone(),
mime_type: value.mime_type.clone(),
}
}
}
impl AbrStream {
pub fn new(options: AbrStreamOptions) -> Result<Self, AbrError> {
let ustreamer_config = BASE64URL
.decode(options.ustreamer_config.as_bytes())
.map_err(|e| {
AbrError::Invalid(format!("could not parse ustreamer_config: {e}").into())
})?;
let po_token =
match options.po_token {
Some(pot) => Some(BASE64URL.decode(pot.as_bytes()).map_err(|e| {
AbrError::Invalid(format!("could not parse po_token: {e}").into())
})?),
None => None,
};
let mut abr_state = options.abr_state;
if !abr_state.has_last_manual_direction() {
abr_state.set_last_manual_direction(0);
}
if !abr_state.has_time_since_last_manual_format_selection_ms() {
abr_state.set_time_since_last_manual_format_selection_ms(0);
}
if !abr_state.has_player_time_ms() {
abr_state.set_player_time_ms(options.player_time);
}
if !abr_state.has_visibility() {
abr_state.set_visibility(0);
}
if !abr_state.has_enabled_track_types_bitfield() {
abr_state.set_enabled_track_types_bitfield(i32::from(options.video_streams.is_empty()));
}
if !abr_state.has_audio_track_id() {
if let Some(audio_track) = options.audio_streams.first().and_then(|s| s.track.as_ref())
{
abr_state.set_audio_track_id(audio_track.id.to_owned());
}
}
if let Some(v) = options.video_streams.first() {
if !abr_state.has_last_manual_selected_resolution() {
abr_state.set_last_manual_selected_resolution(v.height as i32);
}
if !abr_state.has_sticky_resolution() {
abr_state.set_sticky_resolution(v.height as i32);
}
}
if !abr_state.has_drc_enabled() {
if let Some(audio) = options.audio_streams.first() {
abr_state.set_drc_enabled(audio.is_drc);
}
}
let audio_format_ids = options
.audio_streams
.iter()
.map(|s| FormatId {
itag: Some(s.itag as i32),
last_modified: s.last_modified,
xtags: s.xtags.clone(),
..Default::default()
})
.collect::<Vec<_>>();
let video_format_ids = options
.video_streams
.iter()
.map(|s| FormatId {
itag: Some(s.itag as i32),
last_modified: s.last_modified,
xtags: s.xtags.clone(),
..Default::default()
})
.collect::<Vec<_>>();
Ok(Self {
http: options.http,
url: options.url,
ustreamer_config,
po_token,
abr_state,
audio_format_ids,
video_format_ids,
playback_cookie: None,
backoff_time_ms: 0,
formats_by_key: HashMap::new(),
header_id_to_format_key_map: HashMap::new(),
previous_sequences: HashMap::new(),
buffer: BytesBuffer::new(),
last_header: None,
})
}
fn read_varint(&mut self, offset: usize) -> (u64, usize) {
// Determine the length of the val
let buffer_len = self.buffer.remaining().saturating_sub(offset);
if buffer_len == 0 {
return (0, 0);
}
let fb = self.buffer[offset];
let byte_length = if fb < 128 {
1
} else if fb < 192 {
2
} else if fb < 224 {
3
} else if fb < 240 {
4
} else {
5
};
if buffer_len < byte_length {
return (0, 0);
}
let n = match byte_length {
1 => self.buffer[offset].into(),
2 => {
let b1 = u64::from(self.buffer[offset]);
let b2 = u64::from(self.buffer[offset + 1]);
(b1 & 0x3f) + 64 * b2
}
3 => {
let b1 = u64::from(self.buffer[offset]);
let b2 = u64::from(self.buffer[offset + 1]);
let b3 = u64::from(self.buffer[offset + 2]);
(b1 & 0x1f) + 32 * (b2 + 256 * b3)
}
4 => {
let b1 = u64::from(self.buffer[offset]);
let b2 = u64::from(self.buffer[offset + 1]);
let b3 = u64::from(self.buffer[offset + 2]);
let b4 = u64::from(self.buffer[offset + 3]);
(b1 & 0x0f) + 16 * (b2 + 256 * (b3 + 256 * b4))
}
_ => u32::from_be_bytes([
self.buffer[offset + 1],
self.buffer[offset + 2],
self.buffer[offset + 3],
self.buffer[offset + 4],
])
.into(),
};
(n, offset + byte_length)
}
fn parse_ump_header(&mut self) -> Option<UmpHeader> {
let (part_type, o1) = self.read_varint(0);
if o1 == 0 {
return None;
}
let (part_size, o2) = self.read_varint(o1);
if o2 == 0 {
return None;
}
self.buffer.advance(o2);
Some(UmpHeader {
part_type: part_type.into(),
size: part_size,
header_id: None,
})
}
fn clear_sequence_list(&mut self) {
for f in self.formats_by_key.values_mut() {
f.sequence_list.clear();
}
}
fn process_ump_part(&mut self) -> Result<(Option<AbrStreamItem>, bool), AbrError> {
if let Some(last_header) = self.last_header.clone() {
let hsize = last_header.size as usize;
if last_header.part_type == PartType::MEDIA {
// Media data may be processed if the part is only partially downloaded
self.process_media_data().map(|x| (x, true))
} else if self.buffer.remaining() < hsize {
// Wait for the entire part to be downloaded
tracing::info!("waiting for entire part");
Ok((None, true))
} else {
let part_data = self.buffer.copy_to_bytes(hsize);
match last_header.part_type {
PartType::MEDIA_HEADER => self.process_media_header(&part_data)?,
PartType::MEDIA_END => self.process_media_end(&part_data),
PartType::NEXT_REQUEST_POLICY => {
self.process_next_request_policy(&part_data)?
}
PartType::RELOAD_PLAYER_RESPONSE => self.process_reload_player(&part_data)?,
PartType::FORMAT_INITIALIZATION_METADATA => {
self.process_format_initialization(&part_data)?
}
PartType::SABR_ERROR => {
return Err(AbrError::Sabr(SabrError::parse_from_bytes(&part_data)?));
}
PartType::SABR_REDIRECT => self.process_sabr_redirect(&part_data)?,
PartType::STREAM_PROTECTION_STATUS => {
let prot = StreamProtectionStatus::parse_from_bytes(&part_data)?;
match prot.status() {
1 => tracing::debug!("[StreamProtectionStatus]: Good"),
2 => tracing::warn!("[StreamProtectionStatus]: Attestation pending"),
3 => return Err(AbrError::Attestation),
_ => {}
}
}
_ => {}
};
self.last_header = None;
Ok((None, false))
}
} else {
Ok((None, true))
}
}
fn process_media_header(&mut self, data: &[u8]) -> Result<(), AbrError> {
let mh = MediaHeader::parse_from_bytes(data)?;
let format_id = mh
.format_id
.as_ref()
.ok_or(AbrError::Invalid("media header: no format_id".into()))?;
let header_id = mh
.header_id
.and_then(|hid| u8::try_from(hid).ok())
.ok_or(AbrError::Invalid("media header: no header_id".into()))?;
let format_key = get_format_key(format_id);
if !self.formats_by_key.contains_key(&format_key) {
self.formats_by_key
.insert(format_key.to_owned(), InitializedFormat::try_from(&mh)?);
}
let current_format = self.formats_by_key.get_mut(&format_key).unwrap();
// This is a hacky workaround to prevent duplicate sequences from being added. This should be fixed in the future
// (preferably by figuring out how to make the server not send duplicates).
if let Some(sequence_number) = mh.sequence_number {
let pseq = self
.previous_sequences
.entry(format_key.to_owned())
.or_default();
if !pseq.insert(sequence_number) {
tracing::warn!("duplicate sequence {sequence_number}");
return Ok(());
}
}
// Save the header's ID so we can identify its stream data later.
self.header_id_to_format_key_map
.entry(header_id)
.or_insert(format_key);
if current_format
.sequence_list
.iter()
.all(|x| x.sequence_number != Some(mh.sequence_number()))
{
let tr = mh.time_range.as_ref();
let seq = Sequence {
itag: mh.itag,
format_id: format_id.clone(),
is_init_segment: mh.is_init_seg(),
duration_ms: mh.duration_ms,
start_ms: mh.start_ms,
start_data_range: mh.start_data_range,
sequence_number: mh.sequence_number,
content_length: mh.content_length,
time_range: tr.and_then(|tr| {
tr.start.zip(tr.duration).zip(tr.timescale).map(
|((start, duration), timescale)| TimeRange {
start,
duration,
timescale,
},
)
}),
};
// TODO: testing
let sname = if mh.itag == Some(251) {
"audio"
} else {
"video"
};
tracing::debug!(
"{sname} #{}: content_length={} start_data_range={} time_start={} time_duration={}",
seq.sequence_number.unwrap_or_default(),
seq.content_length.unwrap_or_default(),
seq.start_data_range.unwrap_or_default(),
seq.time_range.as_ref().map(|t| t.start).unwrap_or_default(),
seq.time_range
.as_ref()
.map(|t| t.duration)
.unwrap_or_default(),
);
current_format.sequence_list2.push(seq.clone());
current_format.sequence_list.push(seq);
if mh.has_sequence_number() {
current_format.state.set_duration_ms(
current_format.state.duration_ms() + i64::from(mh.duration_ms()),
);
current_format
.state
.set_end_segment_index(current_format.state.end_segment_index() + 1);
}
}
Ok(())
}
fn process_media_data(&mut self) -> Result<Option<AbrStreamItem>, AbrError> {
if let Some(last_header) = &mut self.last_header {
if let Some(header_id) = last_header.header_id.or_else(|| {
let x = self.buffer.try_get_u8().ok();
if x.is_some() {
last_header.header_id = x;
last_header.size -= 1;
}
x
}) {
let to_copy = self.buffer.remaining().min(last_header.size as usize);
if to_copy == 0 {
return Ok(None);
}
let format_key = self
.header_id_to_format_key_map
.get(&header_id)
.ok_or_else(|| {
AbrError::Invalid(format!("media: unknown header id {header_id}").into())
})?;
let current_format = self
.formats_by_key
.get(format_key)
.ok_or(AbrError::Invalid("no current format".into()))?;
let format = FormatInfo::from(current_format);
let data = self.buffer.copy_to_bytes(to_copy);
last_header.size -= data.len() as u64;
if last_header.size == 0 {
self.last_header = None;
}
Ok(Some(AbrStreamItem { format, data }))
} else {
Ok(None)
}
} else {
Ok(None)
}
}
fn process_media_end(&mut self, data: &[u8]) {
let header_id = data[0];
self.header_id_to_format_key_map.remove(&header_id);
}
fn process_next_request_policy(&mut self, data: &[u8]) -> Result<(), AbrError> {
let mut policy = NextRequestPolicy::parse_from_bytes(data)?;
tracing::debug!("NextRequestPolicy {policy:?}");
self.playback_cookie = policy.playback_cookie.take();
self.backoff_time_ms = policy.backoff_time_ms();
Ok(())
}
fn process_reload_player(&mut self, data: &[u8]) -> Result<(), AbrError> {
let mut reload = ReloadPlayerResponse::parse_from_bytes(data)?;
tracing::debug!("ReloadPlayerResponse {reload:?}");
Ok(())
}
fn process_format_initialization(&mut self, data: &[u8]) -> Result<(), AbrError> {
let init = FormatInitializationMetadata::parse_from_bytes(data)?;
let format = InitializedFormat::try_from(init)?;
let format_key = get_format_key(&format.format_id);
self.formats_by_key.insert(format_key, format);
Ok(())
}
fn process_sabr_redirect(&mut self, data: &[u8]) -> Result<(), AbrError> {
let redir = SabrRedirect::parse_from_bytes(data)?;
self.url = redir
.url
.ok_or(AbrError::Invalid("sabr redirect: no URL".into()))?;
Ok(())
}
fn main_format(&self) -> Option<&InitializedFormat> {
self.formats_by_key
.values()
.find(|fmt| {
fmt.mime_type
.as_deref()
.map(|t| t.contains("video"))
.unwrap_or_default()
})
.or(self.formats_by_key.values().next())
}
/// A stream is done if all sequences from all formats were received or the last request did not contain any sequences
fn is_done(&self) -> bool {
self.formats_by_key.values().all(|f| {
f.sequence_list.is_empty()
|| f.sequence_count
.zip(f.sequence_list.last())
.map(|(sc, last)| last.sequence_number == Some(sc.into()))
.unwrap_or_default()
})
}
async fn fetch_stream_data(&self) -> Result<reqwest::Response, AbrError> {
tracing::debug!(
"fetching stream data: {}ms",
self.abr_state.player_time_ms()
);
let body = VideoPlaybackAbrRequest {
client_abr_state: MessageField::some(self.abr_state.clone()),
selected_format_ids: self
.formats_by_key
.values()
.map(|f| f.format_id.clone())
.collect(),
buffered_ranges: self
.formats_by_key
.values()
.map(|f| f.state.clone())
.collect(),
video_playback_ustreamer_config: Some(self.ustreamer_config.clone()),
selected_audio_format_ids: self.audio_format_ids.clone(),
selected_video_format_ids: self.video_format_ids.clone(),
streamer_context: MessageField::some(StreamerContext {
client_info: MessageField::some(ClientInfo {
client_name: Some(1),
client_version: Some("2.20250314.01.00".to_owned()),
..Default::default()
}),
po_token: self.po_token.clone(),
playback_cookie: self
.playback_cookie
.as_ref()
.and_then(|c| c.write_to_bytes().ok()),
..Default::default()
}),
..Default::default()
};
let resp = self
.http
.post(&self.url)
.body(body.write_to_bytes()?)
.send()
.await?
.error_for_status()?;
Ok(resp)
}
pub fn stream(mut self) -> impl Stream<Item = Result<AbrStreamItem, AbrError>> {
let stream = try_stream! {
let mut ri = 1;
loop {
let resp = self.fetch_stream_data().await?;
let mut data_stream = resp.bytes_stream();
let mut page_len = 0;
self.clear_sequence_list();
while let Some(chunk) = data_stream.next().await {
let chunk = chunk?;
let clen = chunk.len();
page_len += clen;
tracing::debug!("chunk {clen}");
self.buffer.push(chunk);
loop {
if self.last_header.is_none() {
self.last_header = self.parse_ump_header();
}
tracing::debug!("loop {:?}", self.last_header);
if self.last_header.is_none() {
break;
}
let (x, y) = self.process_ump_part()?;
if let Some(item) = x {
yield item;
}
if y {
break;
}
}
}
tracing::debug!("request #{ri} fetched {page_len} bytes");
let main_format = self.main_format().ok_or(AbrError::Invalid(format!("no main format: {:?}", self.formats_by_key.values()).into()))?;
let player_time = self.abr_state.player_time_ms()
+ main_format.sequence_list.iter().fold(0, |acc, seq| {
acc + i64::from(seq.duration_ms.unwrap_or_default())
});
tracing::debug!(
"player time: {player_time}; sequence_count={}, last={:?}",
main_format.sequence_count.unwrap_or_default(),
main_format.sequence_list.last().and_then(|x| x.sequence_number),
);
if self.is_done() {
break;
}
self.abr_state.set_player_time_ms(player_time);
if self.backoff_time_ms > 0 {
tracing::debug!("backoff: {} ms", self.backoff_time_ms);
tokio::time::sleep(std::time::Duration::from_millis(
self.backoff_time_ms.try_into().unwrap_or_default(),
)).await;
self.backoff_time_ms = 0;
}
ri += 1;
}
// DEBUG:
// for f in self.formats_by_key.values() {
// let mut of = File::create(format!("/home/thetadev/Documents/Programmieren/Rust/rustypipe/tmp/abrmap/{}_{}.json", std::env::args().into_iter().nth(1).unwrap(), f.format_id.itag())).unwrap();
// serde_json::to_writer(of, &f.sequence_list2).unwrap();
// }
};
Box::pin(stream)
}
}
fn get_format_key(format_id: &FormatId) -> String {
format!("{};{};", format_id.itag(), format_id.last_modified())
}
impl TryFrom<&MediaHeader> for InitializedFormat {
type Error = AbrError;
fn try_from(value: &MediaHeader) -> Result<Self, Self::Error> {
let format_id = value
.format_id
.as_ref()
.ok_or(AbrError::Invalid("media header: no format_id".into()))?;
Ok(InitializedFormat {
format_id: format_id.clone(),
duration_ms: value.duration_ms,
mime_type: None,
sequence_count: None,
sequence_list: Vec::new(),
sequence_list2: Vec::new(),
state: BufferedRange {
format_id: MessageField::some(format_id.clone()),
start_time_ms: Some(0),
duration_ms: Some(0),
start_segment_index: Some(1),
end_segment_index: Some(0),
..Default::default()
},
})
}
}
impl TryFrom<FormatInitializationMetadata> for InitializedFormat {
type Error = AbrError;
fn try_from(value: FormatInitializationMetadata) -> Result<Self, Self::Error> {
let format_id = *value.format_id.0.ok_or(AbrError::Invalid(
"format initialization: no format_id".into(),
))?;
Ok(InitializedFormat {
format_id: format_id.clone(),
duration_ms: value.duration_ms,
mime_type: value.mime_type.clone(),
sequence_count: value.sequence_count,
sequence_list: Vec::new(),
sequence_list2: Vec::new(),
state: BufferedRange {
format_id: MessageField::some(format_id),
start_time_ms: Some(0),
duration_ms: Some(0),
start_segment_index: Some(1),
end_segment_index: Some(0),
..Default::default()
},
})
}
}
#[cfg(test)]
mod tests {
use std::io::Write;
use rustypipe::{
client::RustyPipe,
model::{AudioCodec, VideoFormat},
param::StreamFilter,
};
use super::*;
#[tokio::test]
#[tracing_test::traced_test]
async fn experiment() {
let rp = RustyPipe::builder().build().unwrap();
let player = rp.query().player("ZeerrnuLi5E").await.unwrap();
let stream_filter = StreamFilter::new()
.allow_abr_only()
.video_max_res(360)
.video_formats([VideoFormat::Webm])
.audio_codecs([AudioCodec::Opus]);
let (video, audio) = player.select_video_audio_stream(&stream_filter);
let video = video.unwrap();
let audio = audio.unwrap();
let mut abr = AbrStream::new(AbrStreamOptions {
url: player.abr_streaming_url.clone().unwrap(),
ustreamer_config: player.abr_ustreamer_config.as_deref().unwrap(),
po_token: player.po_token.as_deref(),
audio_streams: &[audio],
// video_streams: &[video],
video_streams: &[],
player_time: 10584,
..Default::default()
})
.unwrap();
{
let mut stream = abr.stream();
let mut files = HashMap::new();
while let Some(item) = stream.try_next().await.unwrap() {
let mut f = files.entry(item.format.itag).or_insert_with(|| {
std::fs::File::create(format!("test_{}.webm", item.format.itag)).unwrap()
});
f.write_all(&item.data).unwrap();
}
}
let audio_md = std::fs::metadata(format!("test_{}.webm", audio.itag)).unwrap();
assert_eq!(audio_md.len(), audio.size);
// let video_md = std::fs::metadata(format!("test_{}.webm", video.itag)).unwrap();
// assert_eq!(video_md.len(), video.size.unwrap());
}
#[tokio::test]
#[tracing_test::traced_test]
async fn first_header() {
let rp = RustyPipe::builder().build().unwrap();
let player = rp.query().player("8AeOP8u89iE").await.unwrap();
let stream_filter = StreamFilter::new()
.allow_abr_only()
// .video_max_res(360)
.video_formats([VideoFormat::Webm])
.audio_codecs([AudioCodec::Opus]);
let (video, audio) = player.select_video_audio_stream(&stream_filter);
let video = video.unwrap();
let audio = audio.unwrap();
let mut abr = AbrStream::new(AbrStreamOptions {
url: player.abr_streaming_url.clone().unwrap(),
ustreamer_config: player.abr_ustreamer_config.as_deref().unwrap(),
po_token: player.po_token.as_deref(),
audio_streams: &[audio],
video_streams: &[video],
// video_streams: &[],
..Default::default()
})
.unwrap();
todo!()
}
}

View file

@ -0,0 +1,87 @@
#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PartType {
ONESIE_HEADER = 10,
ONESIE_DATA = 11,
MEDIA_HEADER = 20,
MEDIA = 21,
MEDIA_END = 22,
LIVE_METADATA = 31,
HOSTNAME_CHANGE_HINT = 32,
LIVE_METADATA_PROMISE = 33,
LIVE_METADATA_PROMISE_CANCELLATION = 34,
NEXT_REQUEST_POLICY = 35,
USTREAMER_VIDEO_AND_FORMAT_DATA = 36,
FORMAT_SELECTION_CONFIG = 37,
USTREAMER_SELECTED_MEDIA_STREAM = 38,
FORMAT_INITIALIZATION_METADATA = 42,
SABR_REDIRECT = 43,
SABR_ERROR = 44,
SABR_SEEK = 45,
RELOAD_PLAYER_RESPONSE = 46,
PLAYBACK_START_POLICY = 47,
ALLOWED_CACHED_FORMATS = 48,
START_BW_SAMPLING_HINT = 49,
PAUSE_BW_SAMPLING_HINT = 50,
SELECTABLE_FORMATS = 51,
REQUEST_IDENTIFIER = 52,
REQUEST_CANCELLATION_POLICY = 53,
ONESIE_PREFETCH_REJECTION = 54,
TIMELINE_CONTEXT = 55,
REQUEST_PIPELINING = 56,
SABR_CONTEXT_UPDATE = 57,
STREAM_PROTECTION_STATUS = 58,
SABR_CONTEXT_SENDING_POLICY = 59,
LAWNMOWER_POLICY = 60,
SABR_ACK = 61,
END_OF_TRACK = 62,
CACHE_LOAD_POLICY = 63,
LAWNMOWER_MESSAGING_POLICY = 64,
PREWARM_CONNECTION = 65,
UNKNOWN,
}
impl From<u64> for PartType {
fn from(value: u64) -> Self {
match value {
10 => Self::ONESIE_HEADER,
11 => Self::ONESIE_DATA,
20 => Self::MEDIA_HEADER,
21 => Self::MEDIA,
22 => Self::MEDIA_END,
31 => Self::LIVE_METADATA,
32 => Self::HOSTNAME_CHANGE_HINT,
33 => Self::LIVE_METADATA_PROMISE,
34 => Self::LIVE_METADATA_PROMISE_CANCELLATION,
35 => Self::NEXT_REQUEST_POLICY,
36 => Self::USTREAMER_VIDEO_AND_FORMAT_DATA,
37 => Self::FORMAT_SELECTION_CONFIG,
38 => Self::USTREAMER_SELECTED_MEDIA_STREAM,
42 => Self::FORMAT_INITIALIZATION_METADATA,
43 => Self::SABR_REDIRECT,
44 => Self::SABR_ERROR,
45 => Self::SABR_SEEK,
46 => Self::RELOAD_PLAYER_RESPONSE,
47 => Self::PLAYBACK_START_POLICY,
48 => Self::ALLOWED_CACHED_FORMATS,
49 => Self::START_BW_SAMPLING_HINT,
50 => Self::PAUSE_BW_SAMPLING_HINT,
51 => Self::SELECTABLE_FORMATS,
52 => Self::REQUEST_IDENTIFIER,
53 => Self::REQUEST_CANCELLATION_POLICY,
54 => Self::ONESIE_PREFETCH_REJECTION,
55 => Self::TIMELINE_CONTEXT,
56 => Self::REQUEST_PIPELINING,
57 => Self::SABR_CONTEXT_UPDATE,
58 => Self::STREAM_PROTECTION_STATUS,
59 => Self::SABR_CONTEXT_SENDING_POLICY,
60 => Self::LAWNMOWER_POLICY,
61 => Self::SABR_ACK,
62 => Self::END_OF_TRACK,
63 => Self::CACHE_LOAD_POLICY,
64 => Self::LAWNMOWER_MESSAGING_POLICY,
65 => Self::PREWARM_CONNECTION,
_ => Self::UNKNOWN,
}
}
}

View file

@ -0,0 +1,52 @@
use futures_util::TryStreamExt;
use rustypipe::{
client::RustyPipe,
model::{AudioCodec, VideoFormat},
param::StreamFilter,
};
use rustypipe_downloader::abr2::{AbrStream, AbrStreamOptions};
#[tokio::main]
async fn main() {
tracing_subscriber::fmt::init();
let id = std::env::args().into_iter().nth(1).unwrap();
let rp = RustyPipe::builder().build().unwrap();
let player = rp
.query()
.visitor_data("Cgt0SlJzQllxNFhuMCjZ1Z3BBjIKCgJERRIEEgAgXg%3D%3D")
.player_from_client(id, rustypipe::client::ClientType::Desktop)
.await
.unwrap();
assert_eq!(player.client_type, rustypipe::client::ClientType::Desktop);
let stream_filter = StreamFilter::new()
.allow_abr_only()
.video_max_res(360)
.video_formats([VideoFormat::Webm])
.audio_codecs([AudioCodec::Opus]);
let (video, audio) = player.select_video_audio_stream(&stream_filter);
let video = video.unwrap();
let audio = audio.unwrap();
dbg!(&audio);
let abr = AbrStream::new(AbrStreamOptions {
url: player.abr_streaming_url.clone().unwrap(),
ustreamer_config: player.abr_ustreamer_config.as_deref().unwrap(),
po_token: player.po_token.as_deref(),
audio_streams: &[audio],
video_streams: &[video],
// video_streams: &[],
..Default::default()
})
.unwrap();
{
let mut stream = abr.stream();
while let Some(itm) = stream.try_next().await.unwrap() {
println!("got {} bytes", itm.data.len());
}
}
}

View file

@ -1,6 +1,7 @@
use std::{borrow::Cow, path::PathBuf};
use rustypipe::client::ClientType;
use rustypipe_abr_proto::sabr_error::SabrError;
/// Error from the video downloader
#[derive(thiserror::Error, Debug)]
@ -57,3 +58,20 @@ impl From<image::ImageError> for DownloadError {
Self::AudioTag(value.to_string().into())
}
}
#[derive(thiserror::Error, Debug)]
pub enum AbrError {
/// Error encoding/decoding protobuf
#[error("protobuf: {0}")]
Protobuf(#[from] protobuf::Error),
/// Error from the HTTP client
#[error("http error: {0}")]
Http(#[from] reqwest::Error),
/// Received invalid data
#[error("invalid data: {0}")]
Invalid(Cow<'static, str>),
#[error("sabr error {}: {}", .0.code(), .0.type_())]
Sabr(SabrError),
#[error("attestation required")]
Attestation,
}

View file

@ -2,7 +2,12 @@
#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs, clippy::todo, clippy::dbg_macro)]
mod abr;
pub mod abr2;
mod abr_model;
mod error;
mod range_predict;
mod streamtest;
mod util;
use std::{
@ -815,7 +820,7 @@ impl DownloadQuery {
if let Some(v) = video {
downloads.push(StreamDownload {
file: output_path.with_extension(format!("video{}", v.format.extension())),
url: v.url.clone(),
url: v.url.clone().unwrap(),
video_codec: Some(v.codec),
audio_codec: None,
});
@ -823,7 +828,7 @@ impl DownloadQuery {
if let Some(a) = audio {
downloads.push(StreamDownload {
file: output_path.with_extension(format!("audio{}", a.format.extension())),
url: a.url.clone(),
url: a.url.clone().unwrap(),
video_codec: None,
audio_codec: Some(a.codec),
});

View file

@ -0,0 +1,110 @@
use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use crate::abr2::TimeRange;
struct Sx {
stream_len: i64,
header_len: i64,
duration: i64,
positions: BTreeMap<i64, i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Sequence {
pub itag: i32,
pub is_init_segment: bool,
pub duration_ms: Option<i32>,
pub start_ms: Option<i32>,
pub start_data_range: i32,
pub sequence_number: Option<i64>,
pub content_length: i64,
pub time_range: Option<TimeRange>,
}
impl Sx {
fn new(stream_len: i64, header_len: i64, duration: i64) -> Self {
let mut positions = BTreeMap::new();
positions.insert(header_len, 0);
positions.insert(stream_len - 1, duration);
Self {
stream_len,
header_len,
duration,
positions,
}
}
fn pos_predict(&self, pos: i64) -> i64 {
if pos < self.header_len {
return 0;
}
if pos >= self.stream_len {
panic!("out of range");
}
let blow = *self.positions.keys().rev().find(|x| **x <= pos).unwrap();
let bhigh = *self.positions.keys().find(|x| **x >= pos).unwrap();
let brange = bhigh - blow;
let bperc = pos as f64 / brange as f64;
let tlow = self.positions[&blow];
let thigh = self.positions[&bhigh];
let trange = thigh - tlow;
let tpoint = (trange as f64 * bperc) as i64 + tlow;
(tpoint - 5000).max(tlow)
}
}
#[cfg(test)]
mod tests {
use std::{fs::File, io::BufReader};
use super::{Sequence, Sx};
fn fetch_seg(sequences: &[Sequence], ts: i64) -> &Sequence {
if ts <= 10000 {
&sequences[0]
} else {
sequences
.iter()
.rev()
.find(|s| s.time_range.as_ref().is_some_and(|t| t.start <= ts))
.unwrap()
}
}
#[test]
fn t_range_predict() {
let f = File::open(
"/home/thetadev/Documents/Programmieren/Rust/rustypipe/tmp/abrmap/HSkTpseMd-A_251_nodrc.json",
)
.unwrap();
let sequences: Vec<Sequence> = serde_json::from_reader(BufReader::new(f)).unwrap();
let last = sequences.last().unwrap();
let stream_len = i64::from(last.start_data_range) + last.content_length;
let header_len = sequences[0].content_length;
let ltr = last.time_range.as_ref().unwrap();
let duration = ltr.start + ltr.duration;
let sx = Sx::new(stream_len, header_len, duration);
let max_sl = sequences.iter().map(|s| s.content_length).max().unwrap();
for offset in (0..stream_len).step_by(1000) {
let pred = sx.pos_predict(offset);
let s = fetch_seg(&sequences, pred);
let to_skip = offset - i64::from(s.start_data_range);
if to_skip < 0 {
println!("after target ({to_skip}): offset={offset} pred={pred} s={s:?}");
} else if to_skip <= max_sl {
println!("on target ({to_skip})");
} else {
println!("before target ({to_skip})");
}
}
}
}

View file

@ -0,0 +1,25 @@
use async_stream::stream;
use futures_util::Stream;
fn stream() -> impl Stream<Item = usize> {
stream! {
let mut x = 0;
loop {
tokio::time::sleep(std::time::Duration::from_millis(100)).await;
yield x;
x += 1;
}
};
let (mut __yield_tx, __yield_rx) = unsafe { async_stream::__private::yielder::pair() };
async_stream::__private::AsyncStream::new(__yield_rx, async move {
let mut x = 0;
loop {
tokio::time::sleep(std::time::Duration::from_millis(100)).await;
{
__yield_tx.send(x).await
};
x += 1;
}
})
}

View file

@ -1,5 +1,6 @@
use std::collections::BTreeMap;
use bytes::{Buf, BufMut, Bytes, BytesMut};
use reqwest::Url;
use crate::DownloadError;
@ -22,3 +23,147 @@ pub fn url_to_params(url: &str) -> Result<(Url, BTreeMap<String, String>), Downl
Ok((parsed_url, url_params))
}
#[derive(Default, Debug, Clone)]
pub struct BytesBuffer {
b: Vec<Bytes>,
pos: usize,
}
impl BytesBuffer {
pub fn new() -> Self {
Self::default()
}
pub fn push(&mut self, bytes: Bytes) {
if !bytes.is_empty() {
self.b.push(bytes);
}
}
fn get_ref(&self, index: usize) -> Option<&u8> {
let mut offset = 0;
for p in &self.b {
let pi = index - offset;
if pi < p.len() {
return Some(&p[pi]);
}
offset += p.len();
}
None
}
pub fn get(&self, index: usize) -> Option<u8> {
self.get_ref(index).cloned()
}
pub fn pos(&self) -> usize {
self.pos
}
}
impl std::ops::Index<usize> for BytesBuffer {
type Output = u8;
fn index(&self, index: usize) -> &Self::Output {
self.get_ref(index).expect("index out of range")
}
}
impl Buf for BytesBuffer {
fn remaining(&self) -> usize {
self.b
.iter()
.map(|b| b.remaining())
.fold(0, |a, b| a.saturating_add(b))
}
fn chunk(&self) -> &[u8] {
for p in &self.b {
if p.has_remaining() {
return p.chunk();
}
}
&[]
}
fn advance(&mut self, mut cnt: usize) {
self.pos += cnt;
let mut to_trunc = 0;
for p in &mut self.b {
if cnt == 0 {
break;
}
let to_adv = cnt.min(p.remaining());
p.advance(to_adv);
cnt -= to_adv;
if p.is_empty() {
to_trunc += 1;
}
}
if to_trunc > 0 {
self.b.drain(0..to_trunc);
}
}
fn chunks_vectored<'a>(&'a self, dst: &mut [std::io::IoSlice<'a>]) -> usize {
let mut n = 0;
for p in &self.b {
n += p.chunks_vectored(&mut dst[n..]);
}
n
}
fn copy_to_bytes(&mut self, len: usize) -> bytes::Bytes {
self.pos += len;
if let Some(first) = self.b.first_mut() {
if first.remaining() >= len {
return first.copy_to_bytes(len);
}
}
let rem = self.remaining();
if rem < len {
assert!(len <= rem, "`len` greater than remaining");
}
let mut ret = BytesMut::with_capacity(len);
ret.put(self.take(len));
ret.freeze()
}
}
impl IntoIterator for BytesBuffer {
type Item = u8;
type IntoIter = bytes::buf::IntoIter<BytesBuffer>;
fn into_iter(self) -> Self::IntoIter {
bytes::buf::IntoIter::new(self)
}
}
#[cfg(test)]
mod tests {
use bytes::{Buf, Bytes};
use super::BytesBuffer;
#[test]
fn buffer() {
let mut buf = BytesBuffer::new();
buf.push(Bytes::from_static(b"hello"));
buf.push(Bytes::from_static(b" "));
buf.push(Bytes::from_static(b"world"));
assert_eq!(buf[0], b'h');
buf.advance(5);
let w1 = buf.copy_to_bytes(6);
assert_eq!(w1.as_ref(), b" world");
assert!(buf.b.is_empty());
assert_eq!(buf.pos(), 17);
}
}

View file

@ -1101,3 +1101,10 @@ YouTube playlists may use a commandExecutorCommand which holds a list of command
}
}
```
## [23] YouTube Desktop only returns ABR streams
- **Encountered on:** 16.03.2025
- **Impact:** 🔴 High
- **Endpoint:** player (YT)
- **Status:** Stabilized

View file

@ -468,9 +468,8 @@ fn map_channel(
let subscriber_count = sub_part.and_then(|t| {
util::parse_large_numstr_or_warn::<u64>(t.as_str(), ctx.lang, &mut warnings)
});
let video_count = vc_part.and_then(|t| {
util::parse_large_numstr_or_warn(t.as_str(), ctx.lang, &mut warnings)
});
let video_count =
vc_part.and_then(|t| util::parse_numeric_or_warn(t.as_str(), &mut warnings));
Channel {
id: metadata.external_id,

View file

@ -87,7 +87,7 @@ impl RustyPipeQuery {
.iter()
.enumerate()
.filter_map(|(i, track)| {
if track.track_type.is_video() && !track.unavailable {
if track.track_type.is_video() {
Some((i, track.name.clone()))
} else {
None
@ -115,31 +115,25 @@ impl RustyPipeQuery {
for (i, title) in to_replace {
let found_track = playlist.tracks.items.iter().find_map(|track| {
if track.name == title && track.track_type.is_track() {
Some((track.id.clone(), track.duration, track.unavailable))
Some((track.id.clone(), track.duration))
} else {
None
}
});
if let Some((track_id, duration, unavailable)) = found_track {
if let Some((track_id, duration)) = found_track {
album.tracks[i].id = track_id;
if let Some(duration) = duration {
album.tracks[i].duration = Some(duration);
}
album.tracks[i].track_type = TrackType::Track;
album.tracks[i].unavailable = unavailable;
}
}
// Extend the list of album tracks with the ones from the playlist if the playlist returned more tracks
// This is the case for albums with more than 200 tracks (e.g. audiobooks)
// Note: in some cases the playlist may contain a loop of repeating tracks. If a track was found in the playlist
// that already exists in the album, stop.
if album.tracks.len() < playlist.tracks.items.len() {
let mut tn = last_tn;
for mut t in playlist.tracks.items.into_iter().skip(album.tracks.len()) {
if album.tracks.iter().any(|at| at.id == t.id) {
break;
}
tn += 1;
t.album = album.tracks.first().and_then(|t| t.album.clone());
t.track_nr = Some(tn);
@ -302,8 +296,8 @@ impl MapResponse<MusicPlaylist> for response::MusicPlaylist {
// Album playlists fetched via the playlist method dont include a header
let (album, cover) = map_res
.c
.iter()
.find_map(|t: &TrackItem| {
.first()
.and_then(|t: &TrackItem| {
t.album.as_ref().map(|a| (a.clone(), t.cover.clone()))
})
.ok_or(ExtractionError::InvalidData(Cow::Borrowed(
@ -311,11 +305,10 @@ impl MapResponse<MusicPlaylist> for response::MusicPlaylist {
)))?;
if !map_res.c.iter().all(|t| {
t.unavailable
|| t.album
.as_ref()
.map(|a| a.id == album.id)
.unwrap_or_default()
t.album
.as_ref()
.map(|a| a.id == album.id)
.unwrap_or_default()
}) {
return Err(ExtractionError::InvalidData(Cow::Borrowed(
"album playlist containing items from different albums",

View file

@ -50,15 +50,33 @@ struct QPlayer<'a> {
#[serde(rename_all = "camelCase")]
struct QPlaybackContext<'a> {
content_playback_context: QContentPlaybackContext<'a>,
device_playback_capabilities: QDevicePlaybackCapabilities,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
struct QContentPlaybackContext<'a> {
/// Signature timestamp extracted from player.js
signature_timestamp: &'a str,
auto_captions_default_on: bool,
autonav_state: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
current_url: Option<String>,
html5_preference: &'a str,
lact_milliseconds: i8,
/// Referer URL from website
referer: String,
/// Signature timestamp extracted from player.js
signature_timestamp: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
splay: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
vis: Option<i8>,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
struct QDevicePlaybackCapabilities {
supports_vp9_encoding: bool,
support_xhr: bool,
}
#[derive(Debug, Serialize)]
@ -210,8 +228,27 @@ impl RustyPipeQuery {
let playback_context = deobf.as_ref().map(|deobf| QPlaybackContext {
content_playback_context: QContentPlaybackContext {
signature_timestamp: &deobf.sts,
auto_captions_default_on: false,
autonav_state: "STATE_OFF",
current_url: if client_type == ClientType::Tv {
None
} else {
Some(format!("/watch?v={video_id}"))
},
html5_preference: "HTML5_PREF_WANTS",
lact_milliseconds: if client_type == ClientType::Tv {
10
} else {
-1
},
referer: format!("https://www.youtube.com/watch?v={video_id}"),
signature_timestamp: &deobf.sts,
splay: Some(false).filter(|_| client_type != ClientType::Tv),
vis: Some(0).filter(|_| client_type != ClientType::Tv),
},
device_playback_capabilities: QDevicePlaybackCapabilities {
supports_vp9_encoding: true,
support_xhr: true,
},
});
@ -387,21 +424,6 @@ impl MapResponse<VideoPlayer> for response::Player {
video_details.video_id, ctx.id
)));
}
// Sometimes YouTube Desktop does not output any URLs for adaptive streams.
// Since this is currently rare, it is best to retry the request in this case.
if !is_live
&& !streaming_data.adaptive_formats.c.is_empty()
&& streaming_data
.adaptive_formats
.c
.iter()
.all(|f| f.url.is_none() && f.signature_cipher.is_none())
{
return Err(ExtractionError::Unavailable {
reason: UnavailabilityReason::TryAgain,
msg: "no adaptive stream URLs".to_owned(),
});
}
let video_info = VideoPlayerDetails {
id: video_details.video_id,
@ -417,11 +439,27 @@ impl MapResponse<VideoPlayer> for response::Player {
is_live_content: video_details.is_live_content,
};
let mut mapper = StreamsMapper::new(
ctx.deobf,
ctx.session_po_token.as_ref().map(|t| t.po_token.as_str()),
)?;
let abr_streaming_url = match &streaming_data.server_abr_streaming_url {
Some(url) => match mapper.map_url_abr(url) {
Ok(res) => Some(res),
Err(e) => {
warnings.push(format!("could not map abr_streaming_url: {e}"));
None
}
},
None => None,
};
let abr_ustreamer_config = self.player_config.media_common_config.map(|cfg| {
cfg.media_ustreamer_request_config
.video_playback_ustreamer_config
});
let streams = if !is_live {
let mut mapper = StreamsMapper::new(
ctx.deobf,
ctx.session_po_token.as_ref().map(|t| t.po_token.as_str()),
)?;
mapper.map_streams(streaming_data.formats);
mapper.map_streams(streaming_data.adaptive_formats);
let mut res = mapper.output()?;
@ -530,6 +568,12 @@ impl MapResponse<VideoPlayer> for response::Player {
valid_until,
hls_manifest_url: streaming_data.hls_manifest_url,
dash_manifest_url: streaming_data.dash_manifest_url,
abr_streaming_url,
abr_ustreamer_config,
po_token: ctx
.session_po_token
.as_ref()
.map(|pot| pot.po_token.to_owned()),
preview_frames,
drm,
client_type: ctx.client_type,
@ -693,7 +737,7 @@ impl<'a> StreamsMapper<'a> {
&mut self,
url: &Option<String>,
signature_cipher: &Option<String>,
) -> Result<UrlMapRes, ExtractionError> {
) -> Result<Option<String>, ExtractionError> {
let (url_base, mut url_params) =
match url {
Some(url) => util::url_to_params(url).map_err(|_| {
@ -708,9 +752,7 @@ impl<'a> StreamsMapper<'a> {
)
})
}
None => Err(ExtractionError::InvalidData(
"stream contained neither url or cipher".into(),
)),
None => return Ok(None),
},
}?;
@ -722,10 +764,17 @@ impl<'a> StreamsMapper<'a> {
let url = Url::parse_with_params(url_base.as_str(), url_params.iter())
.map_err(|_| ExtractionError::InvalidData("could not combine URL".into()))?;
Ok(UrlMapRes {
url: url.to_string(),
xtags: url_params.get("xtags").cloned(),
})
Ok(Some(url.to_string()))
}
fn map_url_abr(&mut self, url: &str) -> Result<String, ExtractionError> {
let (url_base, mut url_params) = util::url_to_params(url).map_err(|_| {
ExtractionError::InvalidData(format!("Could not parse url `{url}`").into())
})?;
self.deobf_nsig(&mut url_params)?;
let url = Url::parse_with_params(url_base.as_str(), url_params.iter())
.map_err(|_| ExtractionError::InvalidData("could not combine URL".into()))?;
Ok(url.to_string())
}
fn map_video_stream(&mut self, f: player::Format) -> Result<VideoStream, ExtractionError> {
@ -743,14 +792,14 @@ impl<'a> StreamsMapper<'a> {
format!("invalid video format. itag: {}", f.itag).into(),
));
};
let map_res = self.map_url(&f.url, &f.signature_cipher)?;
Ok(VideoStream {
url: map_res.url,
url: self.map_url(&f.url, &f.signature_cipher)?,
itag: f.itag,
bitrate: f.bitrate,
average_bitrate: f.average_bitrate.unwrap_or(f.bitrate),
size: f.content_length,
last_modified: f.last_modified,
index_range: f.index_range,
init_range: f.init_range,
duration_ms: f.approx_duration_ms,
@ -765,6 +814,7 @@ impl<'a> StreamsMapper<'a> {
format,
codec: get_video_codec(codecs),
mime: f.mime_type,
xtags: f.xtags,
drm_track_type: f.drm_track_type.map(|t| t.into()),
drm_systems: f.drm_families.into_iter().map(|t| t.into()).collect(),
})
@ -783,10 +833,9 @@ impl<'a> StreamsMapper<'a> {
let format = get_audio_format(mtype).ok_or_else(|| {
ExtractionError::InvalidData(format!("invalid audio format. itag: {}", f.itag).into())
})?;
let map_res = self.map_url(&f.url, &f.signature_cipher)?;
Ok(AudioStream {
url: map_res.url,
url: self.map_url(&f.url, &f.signature_cipher)?,
itag: f.itag,
bitrate: f.bitrate,
average_bitrate: f.average_bitrate.unwrap_or(f.bitrate),
@ -795,6 +844,7 @@ impl<'a> StreamsMapper<'a> {
format!("no audio content length. itag: {}", f.itag).into(),
)
})?,
last_modified: f.last_modified,
index_range: f.index_range,
init_range: f.init_range,
duration_ms: f.approx_duration_ms,
@ -803,9 +853,11 @@ impl<'a> StreamsMapper<'a> {
mime: f.mime_type,
channels: f.audio_channels,
loudness_db: f.loudness_db,
is_drc: f.is_drc,
track: f
.audio_track
.map(|t| self.map_audio_track(t, map_res.xtags)),
.map(|t| self.map_audio_track(t, f.xtags.as_deref())),
xtags: f.xtags,
drm_track_type: f.drm_track_type.map(|t| t.into()),
drm_systems: f.drm_families.into_iter().map(|t| t.into()).collect(),
})
@ -814,30 +866,36 @@ impl<'a> StreamsMapper<'a> {
fn map_audio_track(
&mut self,
track: response::player::AudioTrack,
xtags: Option<String>,
xtags: Option<&str>,
) -> AudioTrack {
let mut lang = None;
let mut track_type = None;
if let Some(xtags) = xtags {
xtags
.split(':')
.filter_map(|param| param.split_once('='))
.for_each(|(k, v)| match k {
"lang" => {
lang = Some(v.to_owned());
let xtags_data = urlencoding::decode(xtags)
.ok()
.and_then(|dec| util::b64_decode(dec.as_bytes()).ok())
.and_then(|bts| util::kv_from_pb(bts));
match xtags_data {
Some(mut xtags_data) => {
if let Some(acont) = xtags_data.get("acont") {
match serde_plain::from_str(&acont) {
Ok(v) => {
track_type = Some(v);
}
Err(_) => {
self.warnings
.push(format!("could not parse audio track type `{acont}`"));
}
}
}
"acont" => match serde_plain::from_str(v) {
Ok(v) => {
track_type = Some(v);
}
Err(_) => {
self.warnings
.push(format!("could not parse audio track type `{v}`"));
}
},
_ => {}
});
lang = xtags_data.remove("lang");
}
None => self
.warnings
.push(format!("could not parse xtags `{xtags}`")),
}
}
AudioTrack {
@ -850,11 +908,6 @@ impl<'a> StreamsMapper<'a> {
}
}
struct UrlMapRes {
url: String,
xtags: Option<String>,
}
fn parse_mime(mime: &str) -> Option<(&str, Vec<&str>)> {
static PATTERN: Lazy<Regex> =
Lazy::new(|| Regex::new(r#"(\w+/\w+);\scodecs="([a-zA-Z-0-9.,\s]*)""#).unwrap());
@ -1013,7 +1066,7 @@ mod tests {
let url = mapper
.map_url(&None, &Some(signature_cipher.to_owned()))
.unwrap()
.url;
.unwrap();
assert_eq!(url, "https://rr5---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=3781277&dur=229.301&ei=vb7nYvH5BMK8gAfBj7ToBQ&expire=1659376413&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-AB_BABwrXZJN428ZwDxq5ScPn2AbcGODnRlTVhCQ3mj2&initcwndbps=1588750&ip=2003%3Ade%3Aaf06%3A6300%3Ac750%3A1b77%3Ac74a%3A80e3&itag=251&keepalive=yes&lmt=1655510291473933&lsig=AG3C_xAwRQIgCKCGJ1iu4wlaGXy3jcJyU3inh9dr1FIfqYOZEG_MdmACIQCbungkQYFk7EhD6K2YvLaHFMjKOFWjw001_tLb0lPDtg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=hH&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5ednsl&ms=au%2Conr&mt=1659354538&mv=m&mvi=5&n=XzXGSfGusw6OCQ&ns=b_Mq_qlTFcSGlG9RpwpM9xQH&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAPIsKd7-xi4xVHEC9gb__dU4hzfzsHEj9ytd3nt0gEceAiACJWBcw-wFEq9qir35bwKHJZxtQ9mOL7SKiVkLQNDa6A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&spc=lT-Khi831z8dTejFIRCvCEwx_6romtM&txp=4532434&vprv=1");
}

View file

@ -140,10 +140,10 @@ impl MapResponse<Playlist> for response::Playlist {
.next()
.and_then(|r| r.metadata_parts.into_iter().next())
.and_then(|p| match p {
response::MetadataPart::Text { .. } => None,
response::MetadataPart::AvatarStack { avatar_stack } => {
ChannelId::try_from(avatar_stack.avatar_stack_view_model.text).ok()
}
response::MetadataPart::Text(_) => None,
response::MetadataPart::AvatarStack {
avatar_stack_view_model,
} => ChannelId::try_from(avatar_stack_view_model.text).ok(),
});
// remove "by" prefix
if let Some(c) = channel.as_mut() {

View file

@ -646,37 +646,32 @@ pub(crate) struct PhMetadataRow {
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(untagged)]
pub(crate) enum MetadataPart {
Text {
#[serde_as(as = "AttributedText")]
text: TextComponent,
},
#[serde(rename_all = "camelCase")]
AvatarStack { avatar_stack: AvatarStackInner },
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct AvatarStackInner {
pub avatar_stack_view_model: TextComponentBox,
pub(crate) enum MetadataPart {
Text(#[serde_as(as = "AttributedText")] TextComponent),
#[serde(rename_all = "camelCase")]
AvatarStack {
avatar_stack_view_model: TextComponentBox,
},
}
impl MetadataPart {
pub fn into_text_component(self) -> TextComponent {
match self {
MetadataPart::Text { text } => text,
MetadataPart::AvatarStack { avatar_stack } => avatar_stack.avatar_stack_view_model.text,
MetadataPart::Text(text_component) => text_component,
MetadataPart::AvatarStack {
avatar_stack_view_model,
} => avatar_stack_view_model.text,
}
}
pub fn as_str(&self) -> &str {
match self {
MetadataPart::Text { text } => text.as_str(),
MetadataPart::AvatarStack { avatar_stack } => {
avatar_stack.avatar_stack_view_model.text.as_str()
}
MetadataPart::Text(s) => s.as_str(),
MetadataPart::AvatarStack {
avatar_stack_view_model,
} => avatar_stack_view_model.text.as_str(),
}
}
}

View file

@ -797,7 +797,6 @@ impl MusicListMapper {
track_type: vtype.into(),
track_nr,
by_va,
unavailable: item.music_item_renderer_display_policy == DisplayPolicy::GreyOut,
}));
Ok(Some(MusicItemType::Track))
}
@ -978,7 +977,6 @@ impl MusicListMapper {
track_type: vtype.into(),
track_nr: None,
by_va,
unavailable: false,
}));
Ok(Some(MusicItemType::Track))
}
@ -1143,7 +1141,6 @@ impl MusicListMapper {
track_type: vtype.into(),
track_nr: None,
by_va,
unavailable: false,
}));
} else {
let (artists, by_va) = map_artists(subtitle_p2);
@ -1181,7 +1178,6 @@ impl MusicListMapper {
track_type: vtype.into(),
track_nr: None,
by_va,
unavailable: false,
}));
}
Some(MusicItemType::Track)
@ -1439,7 +1435,6 @@ pub(crate) fn map_queue_item(item: QueueMusicItem, lang: Language) -> MapResult<
track_type: MusicVideoType::from_is_video(is_video).into(),
track_nr: None,
by_va,
unavailable: false,
},
warnings,
}

View file

@ -92,6 +92,7 @@ pub(crate) struct StreamingData {
pub dash_manifest_url: Option<String>,
/// Only on livestreams
pub hls_manifest_url: Option<String>,
pub server_abr_streaming_url: Option<String>,
pub drm_params: Option<String>,
#[serde(default)]
#[serde_as(deserialize_as = "VecSkipError<_>")]
@ -109,8 +110,12 @@ pub(crate) struct Format {
pub format_type: FormatType,
pub mime_type: String,
#[serde_as(as = "Option<DisplayFromStr>")]
pub last_modified: Option<u64>,
#[serde_as(as = "Option<DisplayFromStr>")]
pub content_length: Option<u64>,
pub bitrate: u32,
pub xtags: Option<String>,
pub width: Option<u32>,
pub height: Option<u32>,
@ -122,9 +127,6 @@ pub(crate) struct Format {
#[serde_as(as = "Option<crate::serializer::Range>")]
pub init_range: Option<Range<u32>>,
#[serde_as(as = "Option<DisplayFromStr>")]
pub content_length: Option<u64>,
#[serde(default)]
#[serde_as(deserialize_as = "DefaultOnError")]
pub quality: Option<Quality>,
@ -141,6 +143,8 @@ pub(crate) struct Format {
pub audio_sample_rate: Option<u32>,
pub audio_channels: Option<u8>,
pub loudness_db: Option<f32>,
#[serde(default)]
pub is_drc: bool,
pub audio_track: Option<AudioTrack>,
pub signature_cipher: Option<String>,
@ -294,9 +298,13 @@ pub(crate) struct StoryboardRenderer {
pub spec: String,
}
#[serde_as]
#[derive(Default, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct PlayerConfig {
#[serde(default)]
#[serde_as(deserialize_as = "DefaultOnError")]
pub media_common_config: Option<MediaCommonConfig>,
pub web_drm_config: Option<WebDrmConfig>,
}
@ -306,6 +314,18 @@ pub(crate) struct WebDrmConfig {
pub widevine_service_cert: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MediaCommonConfig {
pub media_ustreamer_request_config: UstreamerRequestConfig,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UstreamerRequestConfig {
pub video_playback_ustreamer_config: String,
}
#[derive(Default, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct HeartbeatParams {

View file

@ -7,7 +7,7 @@ Channel(
name: "EEVblog",
handle: Some("@EEVblog"),
subscriber_count: Some(952000),
video_count: Some(2000),
video_count: Some(2),
avatar: [
Thumbnail(
url: "https://yt3.googleusercontent.com/ytc/AIdro_l17lYcTcRSydZeQK-RuiSfEeH5eX9m4irSNQj6109v5MQ=s72-c-k-c0x00ffffff-no-rj",

View file

@ -7,7 +7,7 @@ Channel(
name: "EEVblog",
handle: Some("@EEVblog"),
subscriber_count: Some(933000),
video_count: Some(1900),
video_count: Some(19),
avatar: [
Thumbnail(
url: "https://yt3.googleusercontent.com/ytc/AIdro_lagjGDfXbXlQXhznx3CDRitOBdxvebllQd_YP1ag=s72-c-k-c0x00ffffff-no-rj",

View file

@ -52,7 +52,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "h3T_NXRUUjM",
@ -85,7 +84,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XZfoFwWvkGQ",
@ -118,7 +116,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "LOuVxwVFJhs",
@ -151,7 +148,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "GePZUYeIQQQ",
@ -184,7 +180,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0mcING0Zdis",
@ -214,7 +209,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EAC-2ttHCyk",
@ -244,7 +238,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Bret5VaVzJk",
@ -274,7 +267,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EqP1_IcjW-s",
@ -304,7 +296,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3EoF9Of98e4",
@ -334,7 +325,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qr0eN_uIcTs",
@ -364,7 +354,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "McgSyiug6XE",
@ -398,7 +387,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ioZxvVhjFs8",
@ -428,7 +416,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3jyZJEcomkw",
@ -458,7 +445,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9oM-cflYhGk",
@ -488,7 +474,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -67,7 +67,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xTvyyoF_LZY",
@ -100,7 +99,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SlbfAYvA_gI",
@ -133,7 +131,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fdz_cabS9BU",
@ -166,7 +163,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hJWSZDJb-W4",
@ -199,7 +195,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fezKpDFKf5U",
@ -229,7 +224,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "doGzjheI604",
@ -259,7 +253,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zjEdX8-3CD8",
@ -289,7 +282,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DQZcxN9v0RA",
@ -319,7 +311,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2Vv-BfVoq4g",
@ -349,7 +340,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JGwWNGJdvx8",
@ -379,7 +369,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nSDgHBxUbVQ",
@ -409,7 +398,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lp-EO5I60KA",
@ -439,7 +427,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "orJSJGHjBLI",
@ -469,7 +456,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Il0S8BoucSA",
@ -499,7 +485,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -67,7 +67,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xTvyyoF_LZY",
@ -100,7 +99,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SlbfAYvA_gI",
@ -133,7 +131,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fdz_cabS9BU",
@ -166,7 +163,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hJWSZDJb-W4",
@ -199,7 +195,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fezKpDFKf5U",
@ -229,7 +224,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "doGzjheI604",
@ -259,7 +253,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zjEdX8-3CD8",
@ -289,7 +282,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DQZcxN9v0RA",
@ -319,7 +311,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2Vv-BfVoq4g",
@ -349,7 +340,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JGwWNGJdvx8",
@ -379,7 +369,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nSDgHBxUbVQ",
@ -409,7 +398,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lp-EO5I60KA",
@ -439,7 +427,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "orJSJGHjBLI",
@ -469,7 +456,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Il0S8BoucSA",
@ -499,7 +485,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -67,7 +67,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uZpH7EQ_PwE",
@ -100,7 +99,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WmQHSkjgyDM",
@ -145,7 +143,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9ssQKlLxBdQ",
@ -178,7 +175,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "y4FiCl-tUJc",
@ -211,7 +207,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KSav7HayxtI",
@ -241,7 +236,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7wtfhZwyrcc",
@ -271,7 +265,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TO-_3tck2tg",
@ -301,7 +294,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "D9G1VOjN_84",
@ -331,7 +323,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fKopy74weus",
@ -361,7 +352,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mWRsgZuwf_8",
@ -391,7 +381,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ktvTqknDobU",
@ -421,7 +410,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "I-QfPUz1es8",
@ -446,7 +434,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0I647GU3Jsc",
@ -476,7 +463,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gOsM-DYAEhY",
@ -506,7 +492,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -67,7 +67,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7_Bav4c7UGM",
@ -100,7 +99,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kzUZABVj5UQ",
@ -133,7 +131,6 @@ MusicArtist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "P5uE7KDkDFE",
@ -163,7 +160,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kxjZwdLWFrc",
@ -193,7 +189,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-aneeaddeXc",
@ -223,7 +218,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YWijFdsj_Ew",
@ -253,7 +247,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "N217ZuMQnfY",
@ -283,7 +276,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "STNyxlYFyVY",
@ -313,7 +305,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "v5KZ5dalhzU",
@ -343,7 +334,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vaSSdzgDNw0",
@ -373,7 +363,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Rq_JkcROjsI",
@ -403,7 +392,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5VNZWTzJFso",
@ -433,7 +421,6 @@ MusicArtist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -36,7 +36,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UhbixyxgsiU",
@ -66,7 +65,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "saGYMhApaH8",
@ -96,7 +94,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8n5dJwWXrbo",
@ -126,7 +123,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Cr8K88UcO0s",
@ -156,7 +152,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pfxyk1glEq4",
@ -186,7 +181,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VtKcDwz6hiM",
@ -216,7 +210,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aAkMkVFwAoo",
@ -246,7 +239,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3V8aen7Flhs",
@ -276,7 +268,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rb0bjyt1OD0",
@ -306,7 +297,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-1vsm5bhoyE",
@ -336,7 +326,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ao3SN7fkQQU",
@ -370,7 +359,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "J9QwBwUnhQo",
@ -400,7 +388,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WyhU6Zb_fhY",
@ -430,7 +417,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aV-pJ8BBxj8",
@ -468,7 +454,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gSeBZqcTHLc",
@ -498,7 +483,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Vzkr-G1QEh8",
@ -528,7 +512,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SK37InR9j38",
@ -562,7 +545,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "C2YSX4sV_bA",
@ -592,7 +574,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ca48oMV59LU",
@ -622,7 +603,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TUbmIriJlp4",
@ -656,7 +636,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Z02zptUN8gI",
@ -690,7 +669,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Uq9gPaIzbe8",
@ -724,7 +702,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "b1kbLwvqugk",
@ -754,7 +731,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VF-FGf_ZZiI",
@ -784,7 +760,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Om0rYw6qzb8",
@ -818,7 +793,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PrSBuEFdRFU",
@ -852,7 +826,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9YdgldMKGGU",
@ -882,7 +855,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kiUIkL4aZ5o",
@ -912,7 +884,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mTkPFsVC5NE",
@ -946,7 +917,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YsMB0i5YTOc",
@ -976,7 +946,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3CkLMG5NwUg",
@ -1006,7 +975,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9yvzvUgzxxg",
@ -1036,7 +1004,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gPCCYMeXin0",
@ -1066,7 +1033,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gkkuezo7kX4",
@ -1104,7 +1070,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "D2nyu8d7Sq0",
@ -1134,7 +1099,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SXrcyqCPu4E",
@ -1164,7 +1128,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "p38WgakuYDo",
@ -1194,7 +1157,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "n4Z1cpdkgQU",
@ -1224,7 +1186,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4F_vcZ6KD9Q",
@ -1254,7 +1215,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
trending_tracks: [
@ -1281,7 +1241,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UhbixyxgsiU",
@ -1306,7 +1265,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zugAhfd2r0g",
@ -1331,7 +1289,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5jJJYYaw8vw",
@ -1360,7 +1317,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VMZefv4Vrwg",
@ -1385,7 +1341,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3V8aen7Flhs",
@ -1410,7 +1365,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rb0bjyt1OD0",
@ -1435,7 +1389,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ut1OzEVUiM4",
@ -1460,7 +1413,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rAr3-Pn9yRI",
@ -1485,7 +1437,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PtPewTyPmUg",
@ -1510,7 +1461,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "G6xgMW7U0aY",
@ -1535,7 +1485,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "C2YSX4sV_bA",
@ -1560,7 +1509,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kiUIkL4aZ5o",
@ -1585,7 +1533,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9YdgldMKGGU",
@ -1610,7 +1557,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Z02zptUN8gI",
@ -1639,7 +1585,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "S0_888ZjlAA",
@ -1664,7 +1609,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "J9QwBwUnhQo",
@ -1689,7 +1633,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DWRj2BB8YHs",
@ -1722,7 +1665,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hX0aI5Jz8i8",
@ -1747,7 +1689,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Dw9VmOLwxoM",
@ -1772,7 +1713,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
artists: [

View file

@ -32,7 +32,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jEdfjuG0Fx4",
@ -66,7 +65,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pRpeEdMmmQ0",
@ -96,7 +94,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Gzs60iBgd3E",
@ -130,7 +127,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "sABN7goDbZ8",
@ -164,7 +160,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "saGYMhApaH8",
@ -194,7 +189,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zuVV9Y55gvc",
@ -228,7 +222,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TiM_TFpT_DE",
@ -258,7 +251,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WcIcVapfqXw",
@ -292,7 +284,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Cr8K88UcO0s",
@ -322,7 +313,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BddP6PYo2gs",
@ -352,7 +342,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "POe9SOEKotk",
@ -382,7 +371,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Z02zptUN8gI",
@ -416,7 +404,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "e8laLiWolGg",
@ -458,7 +445,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SK37InR9j38",
@ -492,7 +478,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5kJMtNWUytY",
@ -522,7 +507,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gQlMMD8auMs",
@ -552,7 +536,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "D0gWr9K8Lb4",
@ -582,7 +565,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7ouFkoU8Ap8",
@ -612,7 +594,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-1vsm5bhoyE",
@ -642,7 +623,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gnMdTTeY1FY",
@ -672,7 +652,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ca48oMV59LU",
@ -702,7 +681,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VtKcDwz6hiM",
@ -732,7 +710,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5g2hT4GmAGU",
@ -762,7 +739,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CQLsdm1ZYAw",
@ -796,7 +772,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UhbixyxgsiU",
@ -826,7 +801,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mxF58TYuPaM",
@ -856,7 +830,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8n5dJwWXrbo",
@ -886,7 +859,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "j5y6xLpRwx4",
@ -920,7 +892,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jRxDUsGmwuc",
@ -950,7 +921,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RgKAFK5djSk",
@ -980,7 +950,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TGtWWb9emYI",
@ -1010,7 +979,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "no0RhhdJMlE",
@ -1040,7 +1008,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dzsuE5ugxf4",
@ -1070,7 +1037,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aAkMkVFwAoo",
@ -1100,7 +1066,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jpYkoa-uE_c",
@ -1138,7 +1103,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "A_g3lMcWVy0",
@ -1172,7 +1136,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gIOyB9ZXn8s",
@ -1206,7 +1169,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "MwpMEbgC7DA",
@ -1236,7 +1198,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AJleGCGFyIg",
@ -1266,7 +1227,6 @@ MusicCharts(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
trending_tracks: [],

View file

@ -36,7 +36,6 @@ TrackDetails(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
lyrics_id: Some("MPLYt_wrKjTn9hmry"),
related_id: Some("MPTRt_wrKjTn9hmry"),

View file

@ -54,7 +54,6 @@ TrackDetails(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
lyrics_id: Some("MPLYt_4xbv14CiQJm-1"),
related_id: Some("MPTRt_4xbv14CiQJm-1"),

View file

@ -38,7 +38,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Y8JFxS1HlDo",
@ -73,7 +72,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CM4CkVFmTds",
@ -108,7 +106,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_ysomCGaZLw",
@ -143,7 +140,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gQlMMD8auMs",
@ -178,7 +174,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uR8Mrt1IpXg",
@ -213,7 +208,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PkKnp4SdE-w",
@ -248,7 +242,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4vbDFu0PUew",
@ -283,7 +276,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "A5H8zBb3iao",
@ -318,7 +310,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_xJUCsyMQes",
@ -348,7 +339,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "n0j5NPptyM0",
@ -383,7 +373,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3GWscde8rM8",
@ -418,7 +407,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uBY1AoiF5Vo",
@ -453,7 +441,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WPdWvnAAurg",
@ -488,7 +475,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tyrVtwE8Gv0",
@ -523,7 +509,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Jh4QFaPmdss",
@ -558,7 +543,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2OvyA2__Eas",
@ -593,7 +577,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dYRITmpFbJ4",
@ -628,7 +611,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "POe9SOEKotk",
@ -663,7 +645,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pSudEWBAYRE",
@ -698,7 +679,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nnVjsos40qk",
@ -733,7 +713,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "H69tJmsgd9I",
@ -768,7 +747,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0IBSemQmno8",
@ -803,7 +781,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "MjCZfZfucEc",
@ -833,7 +810,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tg2uF3R_Ozo",
@ -868,7 +844,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("CBkSSBILdGcydUYzUl9Pem8iEVJEQU1WTVplZXJybnVMaTVFMg53QUVCOGdFQ2VBRSUzRDgY0AEB-gEQQzcxNUY2RDFGQjIwNEQwQRgKggEVUFQ6RWd0MFp6SjFSak5TWDA5NmJ3"),

View file

@ -56,7 +56,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "u1uvv_yKhH8",
@ -109,7 +108,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QiziJ40kTz0",
@ -162,7 +160,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OXWz_x6-dro",
@ -215,7 +212,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ghrlZIMDzbM",
@ -268,7 +264,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "04tYkKUPPv4",
@ -321,7 +316,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wjCrjR5WpgQ",
@ -374,7 +368,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wkVlb8rSies",
@ -427,7 +420,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RdU3F5vN3_s",
@ -480,7 +472,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "950BdJKBhGo",
@ -533,7 +524,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "W0x7GcZkvH4",
@ -586,7 +576,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0EK_M2taRIM",
@ -639,7 +628,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "INLFlN-PZq4",
@ -692,7 +680,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8JXc4idKS_c",
@ -745,7 +732,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vFFT1iAUNDE",
@ -802,7 +788,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g92HIac9ufA",
@ -855,7 +840,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CinJhZF5ZuA",
@ -908,7 +892,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "t7hmovsG_f0",
@ -961,7 +944,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FrEDny55ch8",
@ -1014,7 +996,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PyyT5tHbOLw",
@ -1067,7 +1048,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_ZkUb7iIOqQ",
@ -1120,7 +1100,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UxZH9lRdLD0",
@ -1173,7 +1152,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aYlXNpaQydk",
@ -1226,7 +1204,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SZiwpL62to8",
@ -1279,7 +1256,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mbg1Cn6Ua9U",
@ -1332,7 +1308,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("CBkSSBILbWJnMUNuNlVhOVUiEVJEQU1WTTduaWdYUVMxWGIwMg53QUVCOGdFQ2VBRSUzRDgY0AEB-gEQQzcxNUY2RDFGQjIwNEQwQRgKggEVUFQ6RWd0dFltY3hRMjQyVldFNVZR"),

View file

@ -35,7 +35,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g92HIac9ufA",
@ -68,7 +67,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "khgCIMs_lVQ",
@ -101,7 +99,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "i2VGa-ETiM4",
@ -134,7 +131,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "INLFlN-PZq4",
@ -167,7 +163,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ZzbNM2l-AAA",
@ -200,7 +195,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "i4loHXi8f3A",
@ -233,7 +227,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "miqQAzOXPBo",
@ -266,7 +259,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hh5GKVa8VtM",
@ -299,7 +291,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dzwSnvfKEtw",
@ -332,7 +323,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "REmUidcJt5I",
@ -365,7 +355,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OXWz_x6-dro",
@ -398,7 +387,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aFoqCI75WoY",
@ -431,7 +419,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_Pm74XignKI",
@ -464,7 +451,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-uOShlFu1v8",
@ -497,7 +483,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "LP9sF1v-vz4",
@ -530,7 +515,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KJrPsT2X-yk",
@ -563,7 +547,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tkzYyEp4zB4",
@ -596,7 +579,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ZpD59tu5_Rk",
@ -629,7 +611,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_eNXeEx9Hvk",
@ -662,7 +643,6 @@ MusicRelated(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
other_versions: [
@ -689,7 +669,6 @@ MusicRelated(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Yi2nsnpw5h0",
@ -714,7 +693,6 @@ MusicRelated(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2Qefh0W_H88",
@ -739,7 +717,6 @@ MusicRelated(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "oo89OQvzkIo",
@ -764,7 +741,6 @@ MusicRelated(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
albums: [

View file

@ -31,7 +31,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gFERoNpcnFU",
@ -61,7 +60,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bmEzom5sfCI",
@ -91,7 +89,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QHY2pm7uT3k",
@ -121,7 +118,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Su42LK7I4NM",
@ -151,7 +147,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mly7ha04bEE",
@ -181,7 +176,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "c91bmLbGt-g",
@ -219,7 +213,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "IwzkfMmNMpM",
@ -249,7 +242,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_-spkuonX2k",
@ -283,7 +275,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "48pBUciAbRY",
@ -313,6 +304,5 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
]

View file

@ -31,7 +31,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_UN2gwabRBI",
@ -61,7 +60,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aY72b4ZGPbo",
@ -91,7 +89,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Cu82AvG87_g",
@ -121,7 +118,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "p9R94XSYjwI",
@ -151,7 +147,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Tlg574e9fuU",
@ -181,7 +176,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1L-RpSmlWp0",
@ -211,7 +205,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EI28gmgBMfw",
@ -241,7 +234,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Z1DEwM1E7ho",
@ -275,7 +267,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hqnDi07CsJU",
@ -305,7 +296,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_T2tvIwOMfc",
@ -335,7 +325,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "seDc-M7aSOI",
@ -365,7 +354,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "APJAQoSCwuA",
@ -395,7 +383,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "965Lv2AwODM",
@ -425,7 +412,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Yl7NAOn0YJw",
@ -455,7 +441,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TVhoS5qhVi4",
@ -485,7 +470,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dZdaP7DGze4",
@ -515,7 +499,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SsizZ2VZe6c",
@ -545,7 +528,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xFRIddDw8bw",
@ -575,7 +557,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Rbhky_2qIUo",
@ -605,7 +586,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ECovqS_ItUo",
@ -635,7 +615,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uxP0y-m6ysA",
@ -665,7 +644,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "simC880SUGk",
@ -695,7 +673,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dGLVJ35_gnA",
@ -725,7 +702,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vY6UiUDPuMk",
@ -755,7 +731,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QMQw_waEPi0",
@ -785,7 +760,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Sc2-3BK2mzM",
@ -819,7 +793,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bprHBlahnmM",
@ -844,7 +817,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FMhHc5x2DzE",
@ -874,7 +846,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nOjbJdw2dPs",
@ -904,7 +875,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1G1zcTV5yX4",
@ -934,7 +904,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BcbKoY7XpJE",
@ -964,7 +933,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mq6zggKZTFU",
@ -994,7 +962,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aQFl1xhloVo",
@ -1024,7 +991,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "A3IhjA2aMUg",
@ -1058,7 +1024,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cxIOWM0xLc4",
@ -1088,7 +1053,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "IFKAgKgVaSI",
@ -1118,7 +1082,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "iGUN99hW3nU",
@ -1148,7 +1111,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_alKEACsIds",
@ -1178,7 +1140,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WGNJIF7OoAc",
@ -1208,7 +1169,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "a_TotMZ5hxc",
@ -1242,7 +1202,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0eoeyKkWBRs",
@ -1272,7 +1231,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DU4NtqyTnuM",
@ -1302,7 +1260,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kLbn61Z4LDI",
@ -1332,7 +1289,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vMFNI5lOLwU",
@ -1370,7 +1326,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AZoZbtI67Yk",
@ -1400,7 +1355,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ah4Dn3VAnMk",
@ -1430,7 +1384,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "sLklEvxhmAQ",
@ -1460,7 +1413,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2Lbp1P4pP6c",
@ -1490,7 +1442,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2TYIa09PXyo",
@ -1520,7 +1471,6 @@ expression: map_res.c
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Hdy7l8fkREo",
@ -1550,7 +1500,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "A-sjPe3xvqY",
@ -1584,7 +1533,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jFVX_v2yAas",
@ -1614,7 +1562,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YDfL2Ns8wz4",
@ -1644,7 +1591,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "du4hVdxqyr8",
@ -1674,7 +1620,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "G5vlW0PZ878",
@ -1704,7 +1649,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Gtg2TSR19Mg",
@ -1734,7 +1678,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vJ3wwezOV_8",
@ -1764,7 +1707,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "76q5EiRyYks",
@ -1794,7 +1736,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nEjntI9GMVM",
@ -1824,7 +1765,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Gtct_ipIQmo",
@ -1854,7 +1794,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aw4kqTyZshk",
@ -1884,7 +1823,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xjoCNfK3vxo",
@ -1914,7 +1852,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DN1gYO3bu-k",
@ -1939,7 +1876,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "X_cqTeG7v98",
@ -1969,7 +1905,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "b_B4ebhKvQ4",
@ -1999,7 +1934,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VQp1QmwOzxw",
@ -2029,7 +1963,6 @@ expression: map_res.c
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "suAR1PYFNYA",
@ -2059,7 +1992,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "No3Cr6ph-9U",
@ -2089,7 +2021,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ORJEgiVY08U",
@ -2119,7 +2050,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2px4-y1Y0PI",
@ -2149,7 +2079,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kchzKOizhGg",
@ -2179,7 +2108,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "V6eAGSz4JI8",
@ -2209,7 +2137,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1A5hWzS00Nc",
@ -2239,7 +2166,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bzsSkarE4zw",
@ -2273,7 +2199,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "59HJZIMVxAg",
@ -2303,7 +2228,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8XQYz7JKjWI",
@ -2333,7 +2257,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5FkJkpTWSWk",
@ -2371,7 +2294,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1m51ncAU4uA",
@ -2405,7 +2327,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ycff6mFkoPY",
@ -2435,7 +2356,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g0ghPuWqYR0",
@ -2465,7 +2385,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1YiTQJcKajE",
@ -2495,7 +2414,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TuyisGsNr4g",
@ -2525,7 +2443,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ClU3aqamHGQ",
@ -2555,7 +2472,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bYyB3FzPRfg",
@ -2589,7 +2505,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "I5eu4XMWZR8",
@ -2619,7 +2534,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ziNtA-mcXTY",
@ -2649,7 +2563,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CDEikOST7ZQ",
@ -2683,7 +2596,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YQzvJSR5jy8",
@ -2713,7 +2625,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lPaplIqUXJc",
@ -2743,7 +2654,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "78Y0SxVVxP4",
@ -2773,7 +2683,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2e-xqMWT9GY",
@ -2803,7 +2712,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "81RRIPE404o",
@ -2833,7 +2741,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uxR8VhGG9Pc",
@ -2863,7 +2770,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JSNwR0MzGZQ",
@ -2893,7 +2799,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DS8dvzDXpjQ",
@ -2923,7 +2828,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "j10zAWP5KsM",
@ -2953,7 +2857,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ugFKFWhsoZA",
@ -2983,7 +2886,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xXO1h6Kthcw",
@ -3013,7 +2915,6 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VOUqmbeilXA",
@ -3043,6 +2944,5 @@ expression: map_res.c
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
]

View file

@ -69,7 +69,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -61,7 +61,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
TrackItem(
id: "lhPOMUjV4rE",
@ -83,7 +82,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(2),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Bu26uFtpt58",
@ -105,7 +103,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(3),
by_va: false,
unavailable: false,
),
TrackItem(
id: "RgwNqqiVqdY",
@ -127,7 +124,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(4),
by_va: false,
unavailable: false,
),
TrackItem(
id: "2TuOh30XbCI",
@ -149,7 +145,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(5),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -65,7 +65,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
TrackItem(
id: "fk4BbF7B29w",
@ -87,7 +86,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(2),
by_va: false,
unavailable: false,
),
TrackItem(
id: "z7NEG3SGZ_g",
@ -109,7 +107,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(3),
by_va: false,
unavailable: false,
),
TrackItem(
id: "a1IuJLebHgM",
@ -131,7 +128,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(4),
by_va: false,
unavailable: false,
),
TrackItem(
id: "-fsCc7Be1H0",
@ -153,7 +149,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(5),
by_va: false,
unavailable: false,
),
TrackItem(
id: "l8djdhhFuxo",
@ -175,7 +170,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(6),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Qiu59lZShCo",
@ -197,7 +191,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(7),
by_va: false,
unavailable: false,
),
TrackItem(
id: "-hzFTJDJGkQ",
@ -219,7 +212,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(8),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Db9ciJPIaEU",
@ -241,7 +233,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(9),
by_va: false,
unavailable: false,
),
TrackItem(
id: "jb5g4UFHmfQ",
@ -263,7 +254,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(10),
by_va: false,
unavailable: false,
),
TrackItem(
id: "1kZsaRkVEUY",
@ -285,7 +275,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(11),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -61,7 +61,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
TrackItem(
id: "rREEBXp0y9s",
@ -83,7 +82,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(2),
by_va: false,
unavailable: false,
),
TrackItem(
id: "zvU5Y8Q19hU",
@ -105,7 +103,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(3),
by_va: false,
unavailable: false,
),
TrackItem(
id: "ARKLrzzTQA0",
@ -127,7 +124,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(4),
by_va: false,
unavailable: false,
),
TrackItem(
id: "tstLgN8A_Ng",
@ -149,7 +145,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(5),
by_va: false,
unavailable: false,
),
TrackItem(
id: "k2DjgQOY3Ts",
@ -171,7 +166,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(6),
by_va: false,
unavailable: false,
),
TrackItem(
id: "azHwhecxEsI",
@ -193,7 +187,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(7),
by_va: false,
unavailable: false,
),
TrackItem(
id: "_FcsdYIQ2co",
@ -215,7 +208,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(8),
by_va: false,
unavailable: false,
),
TrackItem(
id: "27bOWEbshyE",
@ -237,7 +229,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(9),
by_va: false,
unavailable: false,
),
TrackItem(
id: "riD_3oZwt8w",
@ -259,7 +250,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(10),
by_va: false,
unavailable: false,
),
TrackItem(
id: "8GNvjF3no9s",
@ -281,7 +271,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(11),
by_va: false,
unavailable: false,
),
TrackItem(
id: "YHMFzf1uN2U",
@ -303,7 +292,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(12),
by_va: false,
unavailable: false,
),
TrackItem(
id: "jvV-z5F3oAo",
@ -325,7 +313,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(13),
by_va: false,
unavailable: false,
),
TrackItem(
id: "u8_9cxlrh8k",
@ -347,7 +334,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(14),
by_va: false,
unavailable: false,
),
TrackItem(
id: "gSvKcvM1Wk0",
@ -369,7 +355,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(15),
by_va: false,
unavailable: false,
),
TrackItem(
id: "wQHgKRJ0pDQ",
@ -391,7 +376,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(16),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ckz5i6-hzf0",
@ -413,7 +397,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(17),
by_va: false,
unavailable: false,
),
TrackItem(
id: "y5zuUgyFqrc",
@ -435,7 +418,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(18),
by_va: false,
unavailable: false,
),
],
variants: [

View file

@ -69,7 +69,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -56,7 +56,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
TrackItem(
id: "5jd-AhBwcCQ",
@ -78,7 +77,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(2),
by_va: false,
unavailable: false,
),
TrackItem(
id: "_cmORZMgv6I",
@ -100,7 +98,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(3),
by_va: false,
unavailable: false,
),
TrackItem(
id: "M_kVMsFaGYs",
@ -122,7 +119,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(5),
by_va: false,
unavailable: false,
),
TrackItem(
id: "c8AfY6yhdkM",
@ -144,7 +140,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(6),
by_va: false,
unavailable: false,
),
TrackItem(
id: "DSQEKEegiH0",
@ -166,7 +161,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(7),
by_va: false,
unavailable: false,
),
TrackItem(
id: "2TTOKQSzuQY",
@ -188,7 +182,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(8),
by_va: false,
unavailable: false,
),
TrackItem(
id: "iRaX0BfME70",
@ -210,7 +203,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(9),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Kn3cruxYj0c",
@ -232,7 +224,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(11),
by_va: false,
unavailable: false,
),
TrackItem(
id: "-P1FyntN_Uc",
@ -254,7 +245,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(12),
by_va: false,
unavailable: false,
),
TrackItem(
id: "njdlNT1RRo4",
@ -276,7 +266,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(13),
by_va: false,
unavailable: false,
),
TrackItem(
id: "Si-CXM8CHqQ",
@ -298,7 +287,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(18),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -56,7 +56,6 @@ MusicAlbum(
track_type: video,
track_nr: Some(1),
by_va: false,
unavailable: false,
),
TrackItem(
id: "9WYpLYAEub0",
@ -78,7 +77,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(2),
by_va: false,
unavailable: false,
),
TrackItem(
id: "R48tE237bW4",
@ -100,7 +98,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(3),
by_va: false,
unavailable: false,
),
TrackItem(
id: "-UzsoR6z-vg",
@ -122,7 +119,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(4),
by_va: false,
unavailable: false,
),
TrackItem(
id: "kbNVyn8Ex28",
@ -144,7 +140,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(5),
by_va: false,
unavailable: false,
),
TrackItem(
id: "NJrQZUzWP5Y",
@ -166,7 +161,6 @@ MusicAlbum(
track_type: track,
track_nr: Some(6),
by_va: false,
unavailable: false,
),
],
variants: [],

View file

@ -59,7 +59,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: None,

View file

@ -84,7 +84,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "P-zJCLBqZc4",
@ -117,7 +116,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_mAPAtjWZGE",
@ -150,7 +148,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JbXkjRqWTxc",
@ -187,7 +184,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "72b8D6s_y_U",
@ -220,7 +216,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mHKNroJOcig",
@ -253,7 +248,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0C1NFu4NB_4",
@ -286,7 +280,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EnLWwwtO1-A",
@ -323,7 +316,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cafxLTAWi-g",
@ -360,7 +352,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uyemSV1SpnE",
@ -393,7 +384,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ogc58xMpPCc",
@ -418,7 +408,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tsw1LgVkFjE",
@ -451,7 +440,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xSB8trUFX1A",
@ -484,7 +472,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "yEKTrciCvvY",
@ -509,7 +496,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "LbHsWjX9dv4",
@ -542,7 +528,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "L2apFB6EF-Y",
@ -575,7 +560,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uCW2sZZofhk",
@ -608,7 +592,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XZ9DKiNZszM",
@ -633,7 +616,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "J1AOKFRqCjg",
@ -670,7 +652,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XNd6d6H1LBo",
@ -695,7 +676,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SSy4VdjEJKM",
@ -728,7 +708,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0am_BfODDvc",
@ -765,7 +744,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xv3qKrCq2w8",
@ -798,7 +776,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pZC82a-2eo0",
@ -831,7 +808,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kOmmYiigFLE",
@ -864,7 +840,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Jcp48M-vRJw",
@ -897,7 +872,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YeSgtLJQGJs",
@ -930,7 +904,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_LY6aFUVmOU",
@ -967,7 +940,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SCTMdJ1cuoU",
@ -1000,7 +972,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TEOwoK-CMes",
@ -1033,7 +1004,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JgI6z6aQhEA",
@ -1066,7 +1036,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1FxeCa6kypU",
@ -1103,7 +1072,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hG6YzmvbosI",
@ -1136,7 +1104,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "y3PKcVd7UtM",
@ -1169,7 +1136,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UiCRuNo4dGg",
@ -1202,7 +1168,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3uXHaVENo6E",
@ -1227,7 +1192,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EX2d37tT5fo",
@ -1260,7 +1224,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RjQxmy90hTg",
@ -1305,7 +1268,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "IsLFK8TkaVw",
@ -1338,7 +1300,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "myRx1SRqxic",
@ -1371,7 +1332,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BDuDCIt2eiY",
@ -1408,7 +1368,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Do0lH6GDy7w",
@ -1441,7 +1400,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g2oZ6FSl9TU",
@ -1474,7 +1432,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cHc3cXXIydc",
@ -1507,7 +1464,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ITW3C8lIQlk",
@ -1540,7 +1496,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rKGRuQBnatM",
@ -1573,7 +1528,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JstDN42iDDo",
@ -1610,7 +1564,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "POcbY0NTG9w",
@ -1643,7 +1596,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Jf3JOkPsogI",
@ -1680,7 +1632,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lKLGceNzFAM",
@ -1713,7 +1664,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XNupKC5A6jc",
@ -1746,7 +1696,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BDWxBtjUyWQ",
@ -1779,7 +1728,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7LZIEUxH9Ro",
@ -1812,7 +1760,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5K9y2WGUl0E",
@ -1845,7 +1792,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UzuQCBPpZ7U",
@ -1882,7 +1828,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SU20Ah4PE48",
@ -1915,7 +1860,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3RI2LsrZ9OE",
@ -1948,7 +1892,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2KoWN3sAFms",
@ -1981,7 +1924,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EcHhTnHOzAk",
@ -2014,7 +1956,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "NjjMprtE004",
@ -2047,7 +1988,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gk5sKJ4PgPU",
@ -2080,7 +2020,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "K81Cfizqe9A",
@ -2113,7 +2052,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bM7QN9S0Dno",
@ -2146,7 +2084,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "07O7i2BzqUM",
@ -2179,7 +2116,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "m2mJGmMtBfA",
@ -2212,7 +2148,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0gTcGawN9xk",
@ -2245,7 +2180,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_tbHFWpYFbA",
@ -2278,7 +2212,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "X2rGbIe14Ys",
@ -2311,7 +2244,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "HIVVqNy5w_g",
@ -2348,7 +2280,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cJH0qBxeBmI",
@ -2373,7 +2304,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "a0C_z75ES4A",
@ -2406,7 +2336,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jJQAZKK5_5I",
@ -2439,7 +2368,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FcBaTjGk5Cg",
@ -2472,7 +2400,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vwNNfKpGw00",
@ -2505,7 +2432,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UKwFZI9zHlY",
@ -2538,7 +2464,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "x62rX6BYeYE",
@ -2571,7 +2496,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9BXn7ZNc35Q",
@ -2608,7 +2532,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QKYN0pLq1ew",
@ -2641,7 +2564,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "P5Aq3oxynt4",
@ -2674,7 +2596,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tYbZqVBulkU",
@ -2707,7 +2628,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KUpIwlt3TAA",
@ -2740,7 +2660,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nlkNJ4oavoQ",
@ -2773,7 +2692,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pduHLli6NnA",
@ -2798,7 +2716,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rbNpTesNEuw",
@ -2831,7 +2748,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ecMLL1XKbQA",
@ -2864,7 +2780,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OvfD_geCvkI",
@ -2897,7 +2812,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Qg9ea0wi_18",
@ -2930,7 +2844,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "z5bVgD6KjQU",
@ -2967,7 +2880,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UqiemFNeprQ",
@ -3000,7 +2912,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1yAcDPQ7bPs",
@ -3025,7 +2936,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xbHdNkV1Bgg",
@ -3062,7 +2972,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AjGbzsAH2dI",
@ -3099,7 +3008,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "29OvRKJlOX4",
@ -3132,7 +3040,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JVUypCxmfQA",
@ -3165,7 +3072,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KWIfPu8860w",
@ -3198,7 +3104,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "x1DGqCmCeaE",
@ -3231,7 +3136,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Of5EmGLKEn4",
@ -3256,7 +3160,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "T9_p5vicleo",
@ -3289,7 +3192,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "R_X1K3arztQ",
@ -3322,7 +3224,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VTFALCPPUN4",
@ -3355,7 +3256,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("4qmFsgJbEi1WTFJEQ0xBSzV1eV9rYjdFQmk2eTNHcnRKcmk0X1pINTZNczc4NkRGRWltYk0aKmVoVlFWRHBGWjNSWFZrVmFRbFJGVGxGVlJsWlBUa0dTQVFNSXVnUSUzRA%3D%3D"),

View file

@ -59,7 +59,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RPGLMuxkLCs",
@ -84,7 +83,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "z-ALpnnQLrk",
@ -109,7 +107,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "_rrbTTv8zcQ",
@ -134,7 +131,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "JE16OKTawLw",
@ -159,7 +155,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RQNY0Wzm7DQ",
@ -184,7 +179,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "uhy24PKBkd0",
@ -209,7 +203,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "OL1hQadBHfs",
@ -234,7 +227,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "Zge_SUfk0r8",
@ -259,7 +251,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "yFGIeU_IDE4",
@ -284,7 +275,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "P6MVqfQzPIg",
@ -309,7 +299,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "9n0pLDn8Z_I",
@ -334,7 +323,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "oXbx2YtIkeQ",
@ -359,7 +347,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "pfBBTTwxo8Q",
@ -384,7 +371,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "WxtRqzxSAh0",
@ -409,7 +395,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "ianUckvxtLw",
@ -434,7 +419,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "eb2Ghj1g1ic",
@ -459,7 +443,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "8TpEsyVtCog",
@ -484,7 +467,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "KD_WAei4LMg",
@ -509,7 +491,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "qfpOCrtweKk",
@ -534,7 +515,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "6gv3nrOA_bQ",
@ -559,7 +539,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "waaic6UnkU8",
@ -584,7 +563,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "lSy4MLC_uV4",
@ -609,7 +587,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "BuN8-U_quok",
@ -634,7 +611,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "g_UTG10nzaQ",
@ -659,7 +635,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "kNykFWaDbGw",
@ -684,7 +659,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "gJF7vxCYTgY",
@ -709,7 +683,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "CodZMQ_Anc0",
@ -734,7 +707,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "oKHMTKJdZ_M",
@ -759,7 +731,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "--O_Eyok_eE",
@ -784,7 +755,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "2bT3ljKMSo8",
@ -809,7 +779,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "YRAX_slrbsI",
@ -834,7 +803,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "aRRbCEwUSuw",
@ -859,7 +827,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "5sV8SzTbJS8",
@ -884,7 +851,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "ZxxZlU2o1TE",
@ -909,7 +875,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "gIjo5at4AxE",
@ -934,7 +899,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "NSGk7-kyeEU",
@ -959,7 +923,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "cgJtZ7Otc4Y",
@ -984,7 +947,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "l5LQu3Q0nWY",
@ -1009,7 +971,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "YX4Z3ZlWUFc",
@ -1034,7 +995,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "LoyvqR41lKw",
@ -1059,7 +1019,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "HbQtMZbtx_Q",
@ -1084,7 +1043,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "0DHRbP9ecgw",
@ -1109,7 +1067,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "rFOFkvk-xus",
@ -1134,7 +1091,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "P8zxnSihJ_8",
@ -1159,7 +1115,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RWgeHl9XkCY",
@ -1184,7 +1139,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "I1n539enNNY",
@ -1209,7 +1163,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "70VKekyZz5g",
@ -1234,7 +1187,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "2OWJ1bwFu6Y",
@ -1259,7 +1211,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "zLiSA2i-niw",
@ -1284,7 +1235,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "wyXlw7nMpko",
@ -1309,7 +1259,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "NrU4fhzvFpA",
@ -1334,7 +1283,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "1xhKegaA1hQ",
@ -1359,7 +1307,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "9F4lZ8psBtg",
@ -1384,7 +1331,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "G3uUtejX9to",
@ -1409,7 +1355,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "-0Xn5pViCss",
@ -1434,7 +1379,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "a7u71Fco99I",
@ -1459,7 +1403,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "H6uUbvcgKdk",
@ -1484,7 +1427,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "tPRTCauHtkw",
@ -1509,7 +1451,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "pMKAQExcarM",
@ -1534,7 +1475,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "7E-z-7KCdBI",
@ -1559,7 +1499,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "EPtbC0ZVddo",
@ -1584,7 +1523,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "TpPHng0eGJs",
@ -1609,7 +1547,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "rt2QFQwJYcs",
@ -1634,7 +1571,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "WPyfaztFDQ4",
@ -1659,7 +1595,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "5lmumP0DaUw",
@ -1684,7 +1619,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
],
ctoken: None,

View file

@ -59,7 +59,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8rRj5ZXRNko",
@ -84,7 +83,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lHZtcC67yrY",
@ -109,7 +107,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TSkVVVBS9k8",
@ -134,7 +131,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lc-cnCRhE7c",
@ -159,7 +155,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3ryohiCVq3M",
@ -184,7 +179,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BNHamTwxJ6Q",
@ -213,7 +207,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5mqelmYUcI0",
@ -238,7 +231,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "k9EYjn5f_nE",
@ -263,7 +255,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fkMg_X9lHMc",
@ -288,7 +279,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4wOoLLDXbDY",
@ -313,7 +303,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Z_mf9aCHag8",
@ -338,7 +327,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cZ58odQo87A",
@ -363,7 +351,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1il3RFk5Okw",
@ -388,7 +375,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8WQMBv2deYQ",
@ -413,7 +399,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vGrfFzagzHs",
@ -438,7 +423,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1gDbpWC_9pE",
@ -463,7 +447,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "p-AWcCCbBHw",
@ -488,7 +471,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RPN88D_HjMU",
@ -517,7 +499,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5PST7Ld4wWU",
@ -542,7 +523,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "opoDBF_b-fg",
@ -567,7 +547,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AMT9IOyXmBM",
@ -592,7 +571,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VP5B1UmgHfc",
@ -617,7 +595,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vcuQpbs0yT0",
@ -642,7 +619,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "LeMLVEJLruQ",
@ -667,7 +643,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "MtDPKJSsBgc",
@ -692,7 +667,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4tDpYxNYqPg",
@ -717,7 +691,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EkWjaoH7k6w",
@ -742,7 +715,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tERRFWuYG48",
@ -767,7 +739,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wCcJuN47UcY",
@ -792,7 +763,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qdtLCfEcPL4",
@ -817,7 +787,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wjXUBG15eZ8",
@ -842,7 +811,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "HBjDZMJUduo",
@ -867,7 +835,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xkXQQ0IAbk0",
@ -892,7 +859,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DraA3PUuoQc",
@ -917,7 +883,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wMIGQp4YhuU",
@ -942,7 +907,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "38lrK74voaI",
@ -967,7 +931,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2qW9rOSFF1M",
@ -996,7 +959,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tMILH6UEfPA",
@ -1021,7 +983,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "izHB2EdMngg",
@ -1046,7 +1007,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "haECT-SerHk",
@ -1071,7 +1031,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cVikZ8Oe_XA",
@ -1096,7 +1055,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "drFsXLChrWc",
@ -1121,7 +1079,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1EMFt7m_8yE",
@ -1146,7 +1103,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_yWU0lFghxU",
@ -1171,7 +1127,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XlD-LO3ogFM",
@ -1196,7 +1151,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nAzjWqNfgvc",
@ -1225,7 +1179,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PySC3RGhZJU",
@ -1250,7 +1203,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "G-iwLoyH6ZE",
@ -1275,7 +1227,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fgCOUO-s8nY",
@ -1300,7 +1251,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "m-Ik3yy728Y",
@ -1325,7 +1275,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "U0_UYW5Y4cM",
@ -1350,7 +1299,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rsrDYTEicq8",
@ -1375,7 +1323,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2aU4wRgl_0E",
@ -1400,7 +1347,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FzcJxJAxFtw",
@ -1429,7 +1375,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2hyibXdOp5w",
@ -1454,7 +1399,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YaKG5cUVB30",
@ -1479,7 +1423,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ahwc-ouFeTQ",
@ -1504,7 +1447,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SoImFhORKpg",
@ -1529,7 +1471,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jP4-XrbGt3M",
@ -1554,7 +1495,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Yy2RsG4lnm4",
@ -1579,7 +1519,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "388e_8mu1t4",
@ -1604,7 +1543,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dHHtPi-j7dQ",
@ -1629,7 +1567,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "d8ERTCVXIUE",
@ -1654,7 +1591,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vQXn3EzzYY4",
@ -1679,7 +1615,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zA-BTpC-yvI",
@ -1704,7 +1639,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rnzIN9H_G10",
@ -1729,7 +1663,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fcBbT1GTxqM",
@ -1754,7 +1687,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "wCDsm_dt1cI",
@ -1779,7 +1711,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4j3AOJV1J8I",
@ -1804,7 +1735,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RtuW08ZIgvg",
@ -1829,7 +1759,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cbTXqKBIQ40",
@ -1854,7 +1783,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "oSd0Lph4luY",
@ -1879,7 +1807,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "oq0rrYrufYU",
@ -1904,7 +1831,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0-P_YkS0z8s",
@ -1929,7 +1855,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4BAKb2p450Q",
@ -1954,7 +1879,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "yqObMM_QzVQ",
@ -1979,7 +1903,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dlvStoOyEzE",
@ -2004,7 +1927,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VNttGAaek2U",
@ -2029,7 +1951,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TxZMfufRJfo",
@ -2054,7 +1975,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "6agT2asF4as",
@ -2079,7 +1999,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EcW0n83La5A",
@ -2104,7 +2023,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_b61hg8UlZM",
@ -2129,7 +2047,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kDMFranvFuQ",
@ -2154,7 +2071,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1apku0pVDeE",
@ -2179,7 +2095,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g6JYzOjglBs",
@ -2204,7 +2119,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "GYK-NfOo7b4",
@ -2229,7 +2143,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "omUuR45iU0g",
@ -2254,7 +2167,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "w7BE3inS-NM",
@ -2279,7 +2191,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FM-5BPMnhm0",
@ -2304,7 +2215,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "MnNZNfixTOw",
@ -2329,7 +2239,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qe80EeU8cT8",
@ -2354,7 +2263,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-s2-6KYgqpQ",
@ -2379,7 +2287,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RSlp874hESE",
@ -2408,7 +2315,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "oTI3tRQ_-3k",
@ -2433,7 +2339,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_okA84gaEJw",
@ -2458,7 +2363,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pLHnnJRaP7Q",
@ -2483,7 +2387,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "H2hGrsExuyc",
@ -2508,7 +2411,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RsZvjqG2lec",
@ -2533,7 +2435,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qYRCiQ6d35w",
@ -2562,7 +2463,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("4qmFsgI-EiRWTFBMNWREeDY4MVQ0YlI3WkYxSXVXek92MW9tbFJiRTdQaUoaFmVnWlFWRHBEUjFtU0FRTUl1Z1ElM0Q%3D"),

View file

@ -59,7 +59,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RPGLMuxkLCs",
@ -84,7 +83,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "z-ALpnnQLrk",
@ -109,7 +107,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "_rrbTTv8zcQ",
@ -134,7 +131,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "JE16OKTawLw",
@ -159,7 +155,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RQNY0Wzm7DQ",
@ -184,7 +179,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "uhy24PKBkd0",
@ -209,7 +203,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "OL1hQadBHfs",
@ -234,7 +227,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "Zge_SUfk0r8",
@ -259,7 +251,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "yFGIeU_IDE4",
@ -284,7 +275,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "P6MVqfQzPIg",
@ -309,7 +299,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "9n0pLDn8Z_I",
@ -334,7 +323,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "oXbx2YtIkeQ",
@ -359,7 +347,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "pfBBTTwxo8Q",
@ -384,7 +371,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "WxtRqzxSAh0",
@ -409,7 +395,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "ianUckvxtLw",
@ -434,7 +419,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "eb2Ghj1g1ic",
@ -459,7 +443,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "8TpEsyVtCog",
@ -484,7 +467,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "KD_WAei4LMg",
@ -509,7 +491,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "qfpOCrtweKk",
@ -534,7 +515,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "6gv3nrOA_bQ",
@ -559,7 +539,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "waaic6UnkU8",
@ -584,7 +563,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "lSy4MLC_uV4",
@ -609,7 +587,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "BuN8-U_quok",
@ -634,7 +611,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "g_UTG10nzaQ",
@ -659,7 +635,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "kNykFWaDbGw",
@ -684,7 +659,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "gJF7vxCYTgY",
@ -709,7 +683,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "CodZMQ_Anc0",
@ -734,7 +707,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "oKHMTKJdZ_M",
@ -759,7 +731,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "--O_Eyok_eE",
@ -784,7 +755,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "2bT3ljKMSo8",
@ -809,7 +779,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "YRAX_slrbsI",
@ -834,7 +803,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "aRRbCEwUSuw",
@ -859,7 +827,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "5sV8SzTbJS8",
@ -884,7 +851,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "ZxxZlU2o1TE",
@ -909,7 +875,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "gIjo5at4AxE",
@ -934,7 +899,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "NSGk7-kyeEU",
@ -959,7 +923,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "cgJtZ7Otc4Y",
@ -984,7 +947,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "l5LQu3Q0nWY",
@ -1009,7 +971,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "YX4Z3ZlWUFc",
@ -1034,7 +995,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "LoyvqR41lKw",
@ -1059,7 +1019,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "HbQtMZbtx_Q",
@ -1084,7 +1043,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "0DHRbP9ecgw",
@ -1109,7 +1067,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "rFOFkvk-xus",
@ -1134,7 +1091,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "P8zxnSihJ_8",
@ -1159,7 +1115,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "RWgeHl9XkCY",
@ -1184,7 +1139,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "I1n539enNNY",
@ -1209,7 +1163,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "70VKekyZz5g",
@ -1234,7 +1187,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "2OWJ1bwFu6Y",
@ -1259,7 +1211,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "zLiSA2i-niw",
@ -1284,7 +1235,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "wyXlw7nMpko",
@ -1309,7 +1259,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "NrU4fhzvFpA",
@ -1334,7 +1283,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "1xhKegaA1hQ",
@ -1359,7 +1307,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "9F4lZ8psBtg",
@ -1384,7 +1331,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "G3uUtejX9to",
@ -1409,7 +1355,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "-0Xn5pViCss",
@ -1434,7 +1379,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "a7u71Fco99I",
@ -1459,7 +1403,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "H6uUbvcgKdk",
@ -1484,7 +1427,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "tPRTCauHtkw",
@ -1509,7 +1451,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "pMKAQExcarM",
@ -1534,7 +1475,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "7E-z-7KCdBI",
@ -1559,7 +1499,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "EPtbC0ZVddo",
@ -1584,7 +1523,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "TpPHng0eGJs",
@ -1609,7 +1547,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "rt2QFQwJYcs",
@ -1634,7 +1571,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "WPyfaztFDQ4",
@ -1659,7 +1595,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "5lmumP0DaUw",
@ -1684,7 +1619,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
],
ctoken: None,

View file

@ -61,7 +61,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nBZlrbrBO1I",
@ -86,7 +85,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AcTDlsUej2w",
@ -111,7 +109,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "k6ZoE4RrcDs",
@ -136,7 +133,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2n5GKLdrTfk",
@ -161,7 +157,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "psuRGfAaju4",
@ -186,7 +181,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_JGGLJMpVks",
@ -211,7 +205,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1YUBbF24H44",
@ -236,7 +229,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "E0WRQpjckYg",
@ -261,7 +253,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mqiH0ZSkM9I",
@ -286,7 +277,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UAWcs5H-qgQ",
@ -311,7 +301,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bqO3Y5e4Dow",
@ -336,7 +325,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ouEezpuPc3A",
@ -361,7 +349,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "i-qT5n_5Mys",
@ -386,7 +373,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PMGY8fLwess",
@ -411,7 +397,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2ebfSItB0oM",
@ -436,7 +421,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "c4BLVznuWnU",
@ -461,7 +445,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "c0wUKCekI34",
@ -486,7 +469,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vNfgVjZF8_4",
@ -511,7 +493,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XPpTgCho5ZA",
@ -536,7 +517,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-oqAU5VxFWs",
@ -561,7 +541,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CA1VHbdq5hY",
@ -586,7 +565,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aNzCDt2eidg",
@ -611,7 +589,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "A48hOToMuRE",
@ -636,7 +613,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qHm9MG9xw1o",
@ -661,7 +637,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "74NhLkjIeMs",
@ -686,7 +661,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EptPhiK_q0E",
@ -711,7 +685,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "44u7_wQ1s0g",
@ -736,7 +709,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "toOyxylnNkI",
@ -761,7 +733,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ljXSjIph5ZM",
@ -786,7 +757,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DJFMRLIe-0o",
@ -815,7 +785,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "goqqohUitmw",
@ -840,7 +809,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_LwX7GCE5rI",
@ -865,7 +833,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7KHPC-kEQOA",
@ -894,7 +861,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "26PAgklYYvo",
@ -919,7 +885,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bO3S8CKafbE",
@ -944,7 +909,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tMsbeyeTtpk",
@ -969,7 +933,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fvXn3rmhdc4",
@ -994,7 +957,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2p4n7JgdCsc",
@ -1019,7 +981,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "HtNS1afUOnE",
@ -1044,7 +1005,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ufbDvPaVrzs",
@ -1069,7 +1029,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "H1_icnjg6MY",
@ -1094,7 +1053,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7Lna4Hu4-AQ",
@ -1123,7 +1081,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "K9qu2QMBguw",
@ -1156,7 +1113,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uWeqeQkjLto",
@ -1181,7 +1137,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "X_ZOGHUWwqE",
@ -1206,7 +1161,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mHeK0Cwr9sg",
@ -1231,7 +1185,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0Bf3CJZ4hvg",
@ -1256,7 +1209,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7TCncxWNcPU",
@ -1281,7 +1233,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PxNYvk_0Onw",
@ -1306,7 +1257,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WLoWBe9BRP4",
@ -1331,7 +1281,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1XYLKoEETVA",
@ -1356,7 +1305,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ghl_vkEV3tc",
@ -1381,7 +1329,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5qHRMFQ0pLg",
@ -1406,7 +1353,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "X-vispdELDo",
@ -1431,7 +1377,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "il_L6c_fOvs",
@ -1456,7 +1401,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hCjcgoubkPM",
@ -1481,7 +1425,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nwXlRq_QyTI",
@ -1506,7 +1449,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ZdsER1S3t8k",
@ -1535,7 +1477,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fyrsExw_LUg",
@ -1560,7 +1501,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BS4t017LSoA",
@ -1593,7 +1533,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0AYzzzBaPBI",
@ -1618,7 +1557,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zM0K3LC7Aak",
@ -1643,7 +1581,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1le0xDbrVj8",
@ -1668,7 +1605,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RdFaKz71-5M",
@ -1693,7 +1629,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "d6hUByfuhM4",
@ -1718,7 +1653,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-uxeu0MbNR0",
@ -1743,7 +1677,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "35VK8yonvsc",
@ -1768,7 +1701,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ELD3aRzbVQg",
@ -1793,7 +1725,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BD7HwXv18aU",
@ -1818,7 +1749,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WJJLfUwIVR4",
@ -1843,7 +1773,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "NjW1S0WIiJw",
@ -1868,7 +1797,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-4szr0EMrgk",
@ -1893,7 +1821,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "88NWeOGrxys",
@ -1926,7 +1853,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BxqtS-7GxFM",
@ -1951,7 +1877,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KUKt_LbaBnM",
@ -1976,7 +1901,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bhL7A8k6kU8",
@ -2001,7 +1925,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mUN36hFtazE",
@ -2026,7 +1949,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "dcBZP_pt0uY",
@ -2051,7 +1973,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "m342B1Vv3tM",
@ -2076,7 +1997,6 @@ MusicPlaylist(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "N_5RiRBvPSk",
@ -2109,7 +2029,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Q5kH0wg_sKo",
@ -2142,7 +2061,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "j9zlc5zufl8",
@ -2175,7 +2093,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ufxjiU7BgR4",
@ -2208,7 +2125,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7OfB_8rrtug",
@ -2241,7 +2157,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UqmvAc81XuM",
@ -2274,7 +2189,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QDULTFB8gSY",
@ -2307,7 +2221,6 @@ MusicPlaylist(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: None,

View file

@ -54,7 +54,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "aZ1hziFhj1o",
@ -87,7 +86,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_l2IU1O3l6QK",
@ -156,7 +154,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "65Q7EdWnjqM",
@ -189,7 +186,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "EL72UcDZLSk",
@ -222,7 +218,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "b1kbLwvqugk",
@ -247,7 +242,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "3tmd-ClpJxA",
@ -272,7 +266,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "FuXNumBwDOM",
@ -297,7 +290,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_BiCQyyofUtj",

View file

@ -29,7 +29,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "NU611fxGyPU",
@ -54,7 +53,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "Yi2nsnpw5h0",
@ -79,7 +77,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "2Qefh0W_H88",
@ -104,7 +101,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "BL-aIpCLWnU",
@ -137,7 +133,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "PpKu3UsHYrk",
@ -170,7 +165,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "jynOfK8JB0E",
@ -203,7 +197,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "pgjQkcYD-rQ",
@ -228,7 +221,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "w2GXdb-pHo8",
@ -253,7 +245,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "JepNreB58TA",
@ -278,7 +269,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_rR0VQ4fTxPM",
@ -626,7 +616,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "GE0UAdxPTc0",
@ -651,7 +640,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "4gi9y3sTrXE",
@ -676,7 +664,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
User(UserItem(
id: "UCOeTBeQwhOSvNcaZhxM1PUg",

View file

@ -67,7 +67,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "Yx-sGL0xX-U",
@ -100,7 +99,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "HzdD8kbDzZA",
@ -133,7 +131,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "Zh7Un8gVFak",
@ -158,7 +155,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "BMnD36Abw_0",
@ -183,7 +179,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_UQFAF6UM4DN",
@ -616,7 +611,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "MiVivWh7zrA",
@ -641,7 +635,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "7-hMhhUO8b8",
@ -666,7 +659,6 @@ MusicSearchResult(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
)),
User(UserItem(
id: "UCdQrWgvHD9f-caMSn3SS-WQ",

View file

@ -37,7 +37,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "VHLPvrlclmQ",
@ -70,7 +69,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "R9TPed_ohKM",
@ -103,7 +101,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "Ej1nxBxFSKc",
@ -128,7 +125,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "26OrUhkRa3c",
@ -153,7 +149,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "Idk-oFqn3kM",
@ -178,7 +173,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_CYbQPbuAWrt",

View file

@ -73,7 +73,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "pt0YvfnhGgI",
@ -106,7 +105,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "0yPnvetCm-U",
@ -139,7 +137,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "3ryohiCVq3M",
@ -164,7 +161,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "6Bt1KeMNqvc",
@ -189,7 +185,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Track(TrackItem(
id: "5YQRHUItXTI",
@ -214,7 +209,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
)),
Album(AlbumItem(
id: "MPREb_V5f8YfHKp2j",

View file

@ -75,7 +75,6 @@ MusicSearchSuggestion(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
)),
],
)

View file

@ -37,7 +37,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cATe8Toht70",
@ -74,7 +73,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0I1UpXSYdOQ",
@ -107,7 +105,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9G2tG8V5_PY",
@ -140,7 +137,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WwNKyoizf8k",
@ -173,7 +169,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kS1o36LXQkc",
@ -206,7 +201,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UQQ6L1j6mXE",
@ -239,7 +233,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9l9dCro-7l8",
@ -272,7 +265,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "S_PRpDtgUfI",
@ -305,7 +297,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Xt_ReZc0gnw",
@ -338,7 +329,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "diN3WCxpqis",
@ -371,7 +361,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "9q3FfH_57Rc",
@ -404,7 +393,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "U29V08A9yBs",
@ -441,7 +429,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "HHEKbGlLoEM",
@ -474,7 +461,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qE_dGvQG1rU",
@ -507,7 +493,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1tyPs3ccT7E",
@ -544,7 +529,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "6pSmQ-MHKbg",
@ -577,7 +561,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rNsISA-kWzM",
@ -610,7 +593,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AdvPpJVvyEg",
@ -643,7 +625,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7q7o-kjIKpo",
@ -676,7 +657,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlJQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVF0Q1RDMWhTWEJEVEZkdVZZSUJDMk5CVkdVNFZHOW9kRGN3Z2dFTE1Fa3hWWEJZVTFsa1QxR0NBUXM1UnpKMFJ6aFdOVjlRV1lJQkMxZDNUa3Q1YjJsNlpqaHJnZ0VMYTFNeGJ6TTJURmhSYTJPQ0FRdFZVVkUyVERGcU5tMVlSWUlCQ3psc09XUkRjbTh0TjJ3NGdnRUxVMTlRVW5CRWRHZFZaa21DQVF0WWRGOVNaVnBqTUdkdWQ0SUJDMlJwVGpOWFEzaHdjV2x6Z2dFTE9YRXpSbVpJWHpVM1VtT0NBUXRWTWpsV01EaEJPWGxDYzRJQkMwaElSVXRpUjJ4TWIwVk5nZ0VMY1VWZlpFZDJVVWN4Y2xXQ0FRdEVXak14Y0hoNVdXaFNhNElCQ3pad1UyMVJMVTFJUzJKbmdnRUxjazV6U1ZOQkxXdFhlazJDQVF0QlpIWlFjRXBXZG5sRlo0SUJDemR4TjI4dGEycEpTM0J2GPHq0C4%3D"),

View file

@ -41,7 +41,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OJ5ZittaTCk",
@ -74,7 +73,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "H199HKaUk3g",
@ -107,7 +105,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UlNOkZEcSjQ",
@ -140,7 +137,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "L61sF-655Zw",
@ -173,7 +169,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "bOK90e8P3k0",
@ -206,7 +201,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "oRHLx2mc2zY",
@ -247,7 +241,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: None,

View file

@ -37,7 +37,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pt0YvfnhGgI",
@ -70,7 +69,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VinJmH-uidY",
@ -103,7 +101,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YmSmymHRnEE",
@ -136,7 +133,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TgfIbiHCOLo",
@ -169,7 +165,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lCi6N_uq3vE",
@ -202,7 +197,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QIjqe2B3RdQ",
@ -235,7 +229,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "q2pUotlXPeM",
@ -268,7 +261,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0yPnvetCm-U",
@ -301,7 +293,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EU5Vly60VGU",
@ -334,7 +325,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UnxQ0TI4IMs",
@ -367,7 +357,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ufpny1KxwcU",
@ -400,7 +389,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "duzWgZFJNwA",
@ -433,7 +421,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "rnXq-1n0lt0",
@ -466,7 +453,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vHkqdC6-rOI",
@ -499,7 +485,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "nTlceSET_b8",
@ -532,7 +517,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "D8GhmRiIfxI",
@ -565,7 +549,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "01CS-jTaY1U",
@ -598,7 +581,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2sKkKKKXO28",
@ -631,7 +613,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "czlgl6n9voM",
@ -664,7 +645,6 @@ MusicSearchResult(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("EqcDEg5saWJsaW5nc21lbnNjaBqUA0VnV0tBUUlJQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVFzMk5EZzFVR2hQZEVoNldZSUJDM0IwTUZsMlptNW9SMmRKZ2dFTFZtbHVTbTFJTFhWcFpGbUNBUXRaYlZOdGVXMUlVbTVGUllJQkMxUm5aa2xpYVVoRFQweHZnZ0VMYkVOcE5rNWZkWEV6ZGtXQ0FRdFJTV3B4WlRKQ00xSmtVWUlCQzNFeWNGVnZkR3hZVUdWTmdnRUxNSGxRYm5abGRFTnRMVldDQVF0RlZUVldiSGsyTUZaSFZZSUJDMVZ1ZUZFd1ZFazBTVTF6Z2dFTGRXWndibmt4UzNoM1kxV0NBUXRrZFhwWFoxcEdTazUzUVlJQkMzSnVXSEV0TVc0d2JIUXdnZ0VMZGtocmNXUkROaTF5VDBtQ0FRdHVWR3hqWlZORlZGOWlPSUlCQzBRNFIyaHRVbWxKWm5oSmdnRUxNREZEVXkxcVZHRlpNVldDQVFzeWMwdHJTMHRMV0U4eU9JSUJDMk42Ykdkc05tNDVkbTlOGPHq0C4%3D"),

View file

@ -29,7 +29,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vbl9KrZxOF8",
@ -54,7 +53,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "eMfROJt0a7Q",
@ -79,7 +77,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1ktLEhfkBCI",
@ -104,7 +101,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2hAlp3Khsnk",
@ -129,7 +125,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CHixjhwY0ek",
@ -154,7 +149,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8YXKgZ393Ec",
@ -179,7 +173,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KFNznAXnjXc",
@ -204,7 +197,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hDhJeJZmTDA",
@ -229,7 +221,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "6kKSDXiip_8",
@ -254,7 +245,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vfzlr70ogaI",
@ -279,7 +269,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Fjth6cKGI88",
@ -304,7 +293,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fznwvW9Kn4s",
@ -329,7 +317,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Jore0zZW-_M",
@ -354,7 +341,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_THM-2Ph-6I",
@ -379,7 +365,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "koJAGIUlnD0",
@ -404,7 +389,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4tvQPrHcR4w",
@ -429,7 +413,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CUh6MTvB_4E",
@ -454,7 +437,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4TWR90KJl84",
@ -479,7 +461,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Cw7eMibV-Xk",
@ -504,7 +485,6 @@ MusicSearchResult(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlRQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVF0YVpXVnljbTUxVEdrMVJZSUJDM1ppYkRsTGNscDRUMFk0Z2dFTFpVMW1VazlLZERCaE4xR0NBUXN4YTNSTVJXaG1hMEpEU1lJQkN6Sm9RV3h3TTB0b2MyNXJnZ0VMUTBocGVHcG9kMWt3Wld1Q0FRczRXVmhMWjFvek9UTkZZNElCQzB0R1RucHVRVmh1YWxoamdnRUxhRVJvU21WS1dtMVVSRUdDQVFzMmEwdFRSRmhwYVhCZk9JSUJDM1ptZW14eU56QnZaMkZKZ2dFTFJtcDBhRFpqUzBkSk9EaUNBUXRtZW01M2RsYzVTMjQwYzRJQkMwcHZjbVV3ZWxwWExWOU5nZ0VMWDFSSVRTMHlVR2d0TmttQ0FRdHJiMHBCUjBsVmJHNUVNSUlCQ3pSMGRsRlFja2hqVWpSM2dnRUxRMVZvTmsxVWRrSmZORVdDQVFzMFZGZFNPVEJMU213NE5JSUJDME4zTjJWTmFXSldMVmhyGPHq0C4%3D"),

View file

@ -1,5 +1,5 @@
---
source: src/client/music_userdata.rs
source: src/client/music_history.rs
expression: map_res.c
---
Paginator(
@ -37,7 +37,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -74,7 +73,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -111,7 +109,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -148,7 +145,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -185,7 +181,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -222,7 +217,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -263,7 +257,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -292,7 +285,6 @@ Paginator(
track_type: episode,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Today"),
@ -329,7 +321,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -366,7 +357,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -403,7 +393,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -440,7 +429,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -481,7 +469,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -518,7 +505,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -555,7 +541,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -592,7 +577,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -633,7 +617,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -670,7 +653,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -707,7 +689,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -744,7 +725,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -781,7 +761,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -818,7 +797,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),
@ -851,7 +829,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
playback_date: "[date]",
playback_date_txt: Some("Last week"),

View file

@ -28,7 +28,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "f9g6NCHQrcE",
@ -57,7 +56,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CAVfEwrwT_o",
@ -86,7 +84,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "VUr9JZQ8F2g",
@ -111,7 +108,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XQat6rNNbdQ",
@ -136,7 +132,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "EQyU6fGDn0c",
@ -161,7 +156,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g4poKgQZX6w",
@ -186,7 +180,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "YTHr7gxwYUQ",
@ -211,7 +204,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "MfCSDn6q6j4",
@ -236,7 +228,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "gx9KFXb5x_o",
@ -261,7 +252,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "d7R7DQ5tlQo",
@ -286,7 +276,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cZPjgcqHSa8",
@ -311,7 +300,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ogDLdREonWY",
@ -336,7 +324,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pRQpKprUUPY",
@ -361,7 +348,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "qZoQw9b4uCo",
@ -386,7 +372,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "q23qghoF6Nk",
@ -411,7 +396,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "yU0aKa7PFBg",
@ -436,7 +420,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DVCAqvypaCc",
@ -461,7 +444,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XdnI7sm6LeQ",
@ -486,7 +468,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KcOXNSJtFLg",
@ -511,7 +492,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "K0UxHXZwgsg",
@ -536,7 +516,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "eyyNwOSQ3Yg",
@ -561,7 +540,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1yskotqNuXI",
@ -586,7 +564,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "C03n4AAiL9w",
@ -611,7 +588,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "a2wNRTKRusM",
@ -636,7 +612,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AIf61iHwWMQ",
@ -661,7 +636,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BixqbSRjY2Y",
@ -686,7 +660,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Acgy-3d4P6o",
@ -711,7 +684,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5M_yA9M7yNc",
@ -736,7 +708,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PjJuezhos3U",
@ -761,7 +732,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XMutaJI2-kc",
@ -786,7 +756,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Xac6Q7hcZkQ",
@ -811,7 +780,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "JfwjsjBcDoU",
@ -836,7 +804,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zshiQUV3ohw",
@ -861,7 +828,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g1eTAt1_VAM",
@ -890,7 +856,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "c3rLrFC8igY",
@ -915,7 +880,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: true,
),
TrackItem(
id: "1im4DNEYzEM",
@ -944,7 +908,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8BUxw9ocM2s",
@ -969,7 +932,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g4cSpnGbHPE",
@ -998,7 +960,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1Sdj9MiCowQ",
@ -1027,7 +988,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2DbR35g-0ZY",
@ -1052,7 +1012,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "j09hpp3AxIE",
@ -1077,7 +1036,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "J3GN6JXjV3g",
@ -1102,7 +1060,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "pULl-p02upM",
@ -1127,7 +1084,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "O6By8JeCtQQ",
@ -1152,7 +1108,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "NGn3IYQ7M7E",
@ -1177,7 +1132,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "o43oI5x86dI",
@ -1202,7 +1156,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7TNqUrINxzs",
@ -1227,7 +1180,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "f3BD5Zm3cp0",
@ -1256,7 +1208,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "sF4yTDp95Eo",
@ -1281,7 +1232,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1EwLNHg6ejY",
@ -1306,7 +1256,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-l75qaSDWe8",
@ -1331,7 +1280,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7h7ntYLLrfQ",
@ -1356,7 +1304,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ApUl3Ops69M",
@ -1381,7 +1328,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2YcJ8Wightw",
@ -1406,7 +1352,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "W3q8Od5qJio",
@ -1431,7 +1376,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WPFLAjmWCtk",
@ -1456,7 +1400,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tC76tIp0kBk",
@ -1481,7 +1424,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kiMG_JV2gbo",
@ -1506,7 +1448,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "CrYYg_atdtk",
@ -1531,7 +1472,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XTPGpBBwt1w",
@ -1556,7 +1496,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "uC08L4xxjNM",
@ -1581,7 +1520,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5fAoV_AAMf0",
@ -1606,7 +1544,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "u5Vz7obL460",
@ -1631,7 +1568,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ZPJlyRv_IGI",
@ -1656,7 +1592,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "s2SLbln-JwE",
@ -1681,7 +1616,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "28xHtRw6pG8",
@ -1706,7 +1640,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "joWoKqUTRvc",
@ -1731,7 +1664,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "XNMFTqhcNrE",
@ -1756,7 +1688,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "v3vPLgJ9FX8",
@ -1785,7 +1716,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UFXOd179kOA",
@ -1810,7 +1740,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4xRsDnKgHZc",
@ -1835,7 +1764,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "mE3IjoEqMqY",
@ -1860,7 +1788,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "E7e5vxKerqA",
@ -1885,7 +1812,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "axmZ_5Rx4Go",
@ -1910,7 +1836,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "44Ig6BsOCYA",
@ -1935,7 +1860,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "3iLBFEJjdN0",
@ -1960,7 +1884,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "M-ncq2eHF_k",
@ -1985,7 +1908,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-AJoJ-ggiKI",
@ -2010,7 +1932,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "cgb-zp9DDHg",
@ -2039,7 +1960,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Q7ZXg3KQLt0",
@ -2064,7 +1984,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ysAEZOwp5rM",
@ -2089,7 +2008,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "m5vfng33SVE",
@ -2114,7 +2032,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "yMfgjVlGbUE",
@ -2139,7 +2056,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OQIYEPe6DWY",
@ -2164,7 +2080,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "5FS8RIH7BpI",
@ -2189,7 +2104,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "zSRKgFB9piY",
@ -2214,7 +2128,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "e4eHhgwHCME",
@ -2243,7 +2156,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "q3hZvho7jNk",
@ -2268,7 +2180,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0nWysyj_Z4Y",
@ -2293,7 +2204,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "aGCcLWU0OVo",
@ -2318,7 +2228,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OQsXLK4MeEA",
@ -2343,7 +2252,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "xm7dxIqOO2M",
@ -2368,7 +2276,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "jlaaByab4Zk",
@ -2397,7 +2304,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "KG9-jSqXz4U",
@ -2422,7 +2328,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "7dISZnwsBSA",
@ -2447,7 +2352,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "F_PPdS-PB14",
@ -2472,7 +2376,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DMg9idvVY8M",
@ -2497,7 +2400,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DGEmoSFI94Y",
@ -2522,7 +2424,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "BtZufymxHvE",
@ -2551,7 +2452,6 @@ Paginator(
track_type: video,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("4qmFsgI8EiRWTFBMNWREeDY4MVQ0YlI3WkYxSXVXek92MW9tbFJiRTdQaUoaFGVnZFFWRHBEVGtGQ2tnRURDTG9F"),

View file

@ -56,7 +56,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hh5GKVa8VtM",
@ -109,7 +108,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RdU3F5vN3_s",
@ -162,7 +160,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OXWz_x6-dro",
@ -215,7 +212,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ghrlZIMDzbM",
@ -268,7 +264,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "QiziJ40kTz0",
@ -321,7 +316,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "950BdJKBhGo",
@ -374,7 +368,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "tkzYyEp4zB4",
@ -427,7 +420,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ffqliB42Nh4",
@ -480,7 +472,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vFFT1iAUNDE",
@ -537,7 +528,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8JXc4idKS_c",
@ -590,7 +580,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4JJFrjkRxmo",
@ -643,7 +632,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0EK_M2taRIM",
@ -696,7 +684,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "04tYkKUPPv4",
@ -749,7 +736,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "W0x7GcZkvH4",
@ -802,7 +788,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "INLFlN-PZq4",
@ -855,7 +840,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "GhL8GUjXEfk",
@ -908,7 +892,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "TaZkqPK0sbw",
@ -965,7 +948,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ogKU5EQ0Wn0",
@ -1018,7 +1000,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "g92HIac9ufA",
@ -1071,7 +1052,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_E6gDU0m_hk",
@ -1124,7 +1104,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FrEDny55ch8",
@ -1177,7 +1156,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "-uOShlFu1v8",
@ -1230,7 +1208,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "PyyT5tHbOLw",
@ -1283,7 +1260,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("CBkSSBILUHl5VDV0SGJPTHciEVJEQU1WTTduaWdYUVMxWGIwMg53QUVCOGdFQ2VBRSUzRDgY0AEB-gEQQzcxNUY2RDFGQjIwNEQwQRgKggEVUFQ6RWd0UWVYbFVOWFJJWWs5TWR3"),

View file

@ -36,7 +36,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "0uSu-jHdDd4",
@ -69,7 +68,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "11pkE_azpBQ",
@ -102,7 +100,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "1tJPy7XlfCQ",
@ -135,7 +132,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "2JpUBTLjfPA",
@ -168,7 +164,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "6WiuMIp9B6Y",
@ -201,7 +196,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "8nfNNAlsTTA",
@ -234,7 +228,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "C1U6oXpz4As",
@ -267,7 +260,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "DvKw0jTUN-s",
@ -300,7 +292,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "GDSVX--bsRU",
@ -333,7 +324,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "I-ArzgPbNx8",
@ -366,7 +356,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OElgvIuT8TY",
@ -399,7 +388,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "RGlOEBJyhrc",
@ -432,7 +420,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "UUCM1WR611g",
@ -465,7 +452,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "WlzrZsEtWbs",
@ -498,7 +484,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "apY7iYoYtD8",
@ -531,7 +516,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "azSEPwrxG2c",
@ -564,7 +548,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "b9FNHTk-tAM",
@ -597,7 +580,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "eAeGr78VYxM",
@ -630,7 +612,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "efCzrXOWM0Q",
@ -663,7 +644,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "fbmHQLiF1qs",
@ -696,7 +676,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "h0qhAXLom-Y",
@ -729,7 +708,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hTL2vAvAbNM",
@ -762,7 +740,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "hptOG4EVgMs",
@ -795,7 +772,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "iRIlHsC8xL8",
@ -828,7 +804,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("4qmFsgJcEhRGRW11c2ljX2xpa2VkX3ZpZGVvcxpEQ0JwNkprTkNhMUZIVW05SlEwRkZVVUZvYjBOYVZ6UnBSRUZxWXpsaVF6ZENhRU4yT1ZwdFRVRjNnZ01HS2dRSUFCQUI%3D"),

View file

@ -36,7 +36,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "vMZqNPZADFw",
@ -69,7 +68,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "C8B-nBnB7Bk",
@ -102,7 +100,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "29MOu6Y781I",
@ -135,7 +132,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "AdvPpJVvyEg",
@ -168,7 +164,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "kv3Z269PQvE",
@ -201,7 +196,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "y74ZqAkFkK4",
@ -234,7 +228,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "ZVnqAUnj-1Y",
@ -267,7 +260,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "REmUidcJt5I",
@ -300,7 +292,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "63sEilefjtQ",
@ -333,7 +324,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_LGy1K5vmq8",
@ -366,7 +356,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Ak98OIfed8o",
@ -399,7 +388,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "_aSqdZKxcuU",
@ -432,7 +420,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "6Lb4bmEEfnY",
@ -465,7 +452,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "4lrp5FWFIak",
@ -498,7 +484,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "Kk8vT1o_gYE",
@ -539,7 +524,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "FbUrY0GdO88",
@ -572,7 +556,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "OFesVwAdT80",
@ -605,7 +588,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "lNeJjPPKE1g",
@ -638,7 +620,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
TrackItem(
id: "SW_woyyA1Bg",
@ -671,7 +652,6 @@ Paginator(
track_type: track,
track_nr: None,
by_va: false,
unavailable: false,
),
],
ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlJQVVnb2Fnd1FBeEFFRUFrUURoQUtFQVdDQVF0eVRuTkpVMEV0YTFkNlRZSUJDM1pOV25GT1VGcEJSRVozZ2dFTFF6aENMVzVDYmtJM1FtdUNBUXN5T1UxUGRUWlpOemd4U1lJQkMwRmtkbEJ3U2xaMmVVVm5nZ0VMYTNZeldqSTJPVkJSZGtXQ0FRdDVOelJhY1VGclJtdExOSUlCQzFwV2JuRkJWVzVxTFRGWmdnRUxVa1Z0Vldsa1kwcDBOVW1DQVFzMk0zTkZhV3hsWm1wMFVZSUJDMTlNUjNreFN6VjJiWEU0Z2dFTFFXczVPRTlKWm1Wa09HLUNBUXRmWVZOeFpGcExlR04xVllJQkN6Wk1ZalJpYlVWRlptNVpnZ0VMTkd4eWNEVkdWMFpKWVd1Q0FRdExhemgyVkRGdlgyZFpSWUlCQzBaaVZYSlpNRWRrVHpnNGdnRUxUMFpsYzFaM1FXUlVPRENDQVF0c1RtVkthbEJRUzBVeFo0SUJDMU5YWDNkdmVYbEJNVUpuGPHq0C4%3D"),

View file

@ -61,11 +61,12 @@ VideoPlayer(
),
video_streams: [
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1619781&dur=163.143&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=17&lmt=1580005480199246&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2F3gpp&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJ2s7Pm4w42X3u3PWYViDeqIaE2tE9J6oIGpd0KB9gFsAiAH84QaJ4oUNivdRDUBi1ZYI7JSxESsPQ53mLInajKzcQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1619781&dur=163.143&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=17&lmt=1580005480199246&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2F3gpp&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJ2s7Pm4w42X3u3PWYViDeqIaE2tE9J6oIGpd0KB9gFsAiAH84QaJ4oUNivdRDUBi1ZYI7JSxESsPQ53mLInajKzcQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 17,
bitrate: 79452,
average_bitrate: 79428,
size: Some(1619781),
last_modified: Some(1580005480199246),
index_range: None,
init_range: None,
duration_ms: Some(163143),
@ -77,15 +78,17 @@ VideoPlayer(
mime: "video/3gpp; codecs=\"mp4v.20.3, mp4a.40.2\"",
format: r#3gp,
codec: mp4v,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=11439331&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJAH-tWof01vrs8phEoz51XkWwdMzQ77k1UTrdY5XiuTAiA38z-qANX0jtfCiAl4EVMZaKo1ncrzJFRrCffZ6LagrA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=11439331&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJAH-tWof01vrs8phEoz51XkWwdMzQ77k1UTrdY5XiuTAiA38z-qANX0jtfCiAl4EVMZaKo1ncrzJFRrCffZ6LagrA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 18,
bitrate: 561339,
average_bitrate: 561109,
size: Some(11439331),
last_modified: Some(1580005476071743),
index_range: None,
init_range: None,
duration_ms: Some(163096),
@ -97,15 +100,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=22&lmt=1580005750956837&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFlQZgR63Yz9UgY9gVqiyGDVkZmSmACRP3-MmKN7CRzQCIAMHAwZbHmWL1qNH4Nu3A0pXZwErXMVPzMIt-PyxeZqa&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cratebypass%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=22&lmt=1580005750956837&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFlQZgR63Yz9UgY9gVqiyGDVkZmSmACRP3-MmKN7CRzQCIAMHAwZbHmWL1qNH4Nu3A0pXZwErXMVPzMIt-PyxeZqa&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cratebypass%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 22,
bitrate: 1574434,
average_bitrate: 1574434,
size: None,
last_modified: Some(1580005750956837),
index_range: None,
init_range: None,
duration_ms: Some(163096),
@ -117,17 +122,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.64001F, mp4a.40.2\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
video_only_streams: [
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1224002&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=394&keepalive=yes&lmt=1608045375671513&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgYCPleG9F86UoDRvzFL2xSUUI-HLZGw_P7qBOixlcmKsCIQChdmrJ1NvKo5Ra4QJ9ivR5V8fEcQs0f_3aUiqMhGB5DQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1224002&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=394&keepalive=yes&lmt=1608045375671513&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgYCPleG9F86UoDRvzFL2xSUUI-HLZGw_P7qBOixlcmKsCIQChdmrJ1NvKo5Ra4QJ9ivR5V8fEcQs0f_3aUiqMhGB5DQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 394,
bitrate: 67637,
average_bitrate: 60063,
size: Some(1224002),
last_modified: Some(1608045375671513),
index_range: Some(Range(
start: 700,
end: 1115,
@ -145,15 +152,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.00M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2238952&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=395&keepalive=yes&lmt=1608045728968690&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAKCXHOCh_P3VlNWebTeWw0WdSln-zYe3BjZeEm2QiltCAiAQNcJBI4G-8dK5z1IUoqBZctk6ddjkl_QYKRFAKXyOcw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2238952&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=395&keepalive=yes&lmt=1608045728968690&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAKCXHOCh_P3VlNWebTeWw0WdSln-zYe3BjZeEm2QiltCAiAQNcJBI4G-8dK5z1IUoqBZctk6ddjkl_QYKRFAKXyOcw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 395,
bitrate: 135747,
average_bitrate: 109867,
size: Some(2238952),
last_modified: Some(1608045728968690),
index_range: Some(Range(
start: 700,
end: 1115,
@ -171,15 +180,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.00M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=7808990&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIjjrMvCEzSLlbvbrjItT4V9JdpggnO5IHye9i4PxTyzAiAmbaFCB2hH7evf9JX3JUx-tU9S6zv2IzSKz8ObGSVRjw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=7808990&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIjjrMvCEzSLlbvbrjItT4V9JdpggnO5IHye9i4PxTyzAiAmbaFCB2hH7evf9JX3JUx-tU9S6zv2IzSKz8ObGSVRjw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 134,
bitrate: 538143,
average_bitrate: 383195,
size: Some(7808990),
last_modified: Some(1580005649163759),
index_range: Some(Range(
start: 740,
end: 1155,
@ -197,15 +208,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.4d401e\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=4130385&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=396&keepalive=yes&lmt=1608045761576250&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgBrQhbygTP6RGjUk0lGbxBI5e3NdeR6C_SW8R_ckZ2PkCIQDaBg5cJxYVWfwRrrELQFgRMOJ4xS3oOOROayoQMjxaCA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=4130385&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=396&keepalive=yes&lmt=1608045761576250&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgBrQhbygTP6RGjUk0lGbxBI5e3NdeR6C_SW8R_ckZ2PkCIQDaBg5cJxYVWfwRrrELQFgRMOJ4xS3oOOROayoQMjxaCA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 396,
bitrate: 258097,
average_bitrate: 202682,
size: Some(4130385),
last_modified: Some(1608045761576250),
index_range: Some(Range(
start: 700,
end: 1115,
@ -223,15 +236,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.01M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=6873325&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=397&keepalive=yes&lmt=1608045990917419&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMqBb1hKVVzWl3Awrh1T8GQG9IrSWF84zW_ZfjgbAN5QAiAaP3jYyI4ox2aclcOCzYFzqWgByWCxj_FgTN-SfsARXw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=6873325&dur=163.029&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=397&keepalive=yes&lmt=1608045990917419&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMqBb1hKVVzWl3Awrh1T8GQG9IrSWF84zW_ZfjgbAN5QAiAaP3jYyI4ox2aclcOCzYFzqWgByWCxj_FgTN-SfsARXw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 397,
bitrate: 436843,
average_bitrate: 337281,
size: Some(6873325),
last_modified: Some(1608045990917419),
index_range: Some(Range(
start: 700,
end: 1115,
@ -249,15 +264,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.04M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=22365208&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=398&keepalive=yes&lmt=1608048380553749&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgR6KqCOoig_FMl2tWKa7qHSmCjIZa9S7ABzEI16qdO2sCIFXccwql4bqV9CHlqXY4tgxyMFUsp7vW4XUjxs3AyG6H&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=22365208&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=398&keepalive=yes&lmt=1608048380553749&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgR6KqCOoig_FMl2tWKa7qHSmCjIZa9S7ABzEI16qdO2sCIFXccwql4bqV9CHlqXY4tgxyMFUsp7vW4XUjxs3AyG6H&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 398,
bitrate: 1348419,
average_bitrate: 1097369,
size: Some(22365208),
last_modified: Some(1608048380553749),
index_range: Some(Range(
start: 700,
end: 1115,
@ -275,15 +292,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.08M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=65400181&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAPjxbuzkozPDc1Nd_0q5X8x8H2SiDvAUFuqqMadtz3SNAiEA_3kXCeePb2kci-WB2779tzI56E6E0iKwoHnUSkKCzwU%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=65400181&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAPjxbuzkozPDc1Nd_0q5X8x8H2SiDvAUFuqqMadtz3SNAiEA_3kXCeePb2kci-WB2779tzI56E6E0iKwoHnUSkKCzwU%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 299,
bitrate: 4190323,
average_bitrate: 3208919,
size: Some(65400181),
last_modified: Some(1580005649161486),
index_range: Some(Range(
start: 740,
end: 1155,
@ -301,15 +320,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.64002a\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=42567727&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=399&keepalive=yes&lmt=1608052932785283&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFguw-cmBNOQegpyRRzcCScp2WaSnq_o7FB1-AiBgFpICIAGlMj9-kzNCWb3nhpg98Mc239ls6YYyoL8z1QpM8VmL&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=42567727&dur=163.046&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=399&keepalive=yes&lmt=1608052932785283&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFguw-cmBNOQegpyRRzcCScp2WaSnq_o7FB1-AiBgFpICIAGlMj9-kzNCWb3nhpg98Mc239ls6YYyoL8z1QpM8VmL&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 399,
bitrate: 2572342,
average_bitrate: 2088624,
size: Some(42567727),
last_modified: Some(1608052932785283),
index_range: Some(Range(
start: 700,
end: 1115,
@ -327,17 +348,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.09M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
audio_streams: [
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=995840&dur=163.189&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=139&keepalive=yes&lmt=1580005582214385&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhALhtrbIL9_CQBeXsEwxFqyPY1XqBCOceQc7y00h7XBS9AiAH9VkMnkuFCU1ACkYU__uApTwcYeDoYNU74VYmKED3Gw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=995840&dur=163.189&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=139&keepalive=yes&lmt=1580005582214385&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhALhtrbIL9_CQBeXsEwxFqyPY1XqBCOceQc7y00h7XBS9AiAH9VkMnkuFCU1ACkYU__uApTwcYeDoYNU74VYmKED3Gw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 139,
bitrate: 49724,
average_bitrate: 48818,
size: 995840,
last_modified: Some(1580005582214385),
index_range: Some(Range(
start: 641,
end: 876,
@ -353,15 +376,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: None,
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=934449&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgPmadKd9As393GMRmu1Ow4RfQkDQhY6SbPRnkLMYyZOoCIE9AIgMMJ7n5HD2gKv3c8-HrnkMeakq_uWUOivnWquJX&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=934449&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgPmadKd9As393GMRmu1Ow4RfQkDQhY6SbPRnkLMYyZOoCIE9AIgMMJ7n5HD2gKv3c8-HrnkMeakq_uWUOivnWquJX&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 249,
bitrate: 53039,
average_bitrate: 45845,
size: 934449,
last_modified: Some(1608509101590706),
index_range: Some(Range(
start: 266,
end: 551,
@ -377,15 +402,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: None,
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1245866&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIge8uetzhejNg3DegY9EQkpvVam1gp8Jm-q6oqtb6Rn9wCIQD_VeQle7Z2H1uXB6qsYMGDU4OWA4h6YTTwMDmw5DDvuA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=1245866&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIge8uetzhejNg3DegY9EQkpvVam1gp8Jm-q6oqtb6Rn9wCIQD_VeQle7Z2H1uXB6qsYMGDU4OWA4h6YTTwMDmw5DDvuA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 250,
bitrate: 71268,
average_bitrate: 61123,
size: 1245866,
last_modified: Some(1608509101111096),
index_range: Some(Range(
start: 266,
end: 551,
@ -401,15 +428,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: None,
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2640283&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAI8YylDImOPxxRo251u_RX6ir_j0p-gP_yQPcI6SxareAiArCxOcgrF9pxYS5bNYEnLGEQxRiEFJ0sT2Ydpa1G7x5A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2640283&dur=163.096&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAI8YylDImOPxxRo251u_RX6ir_j0p-gP_yQPcI6SxareAiArCxOcgrF9pxYS5bNYEnLGEQxRiEFJ0sT2Ydpa1G7x5A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=2211222&vprv=1"),
itag: 140,
bitrate: 130268,
average_bitrate: 129508,
size: 2640283,
last_modified: Some(1580005579712232),
index_range: Some(Range(
start: 632,
end: 867,
@ -425,15 +454,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: None,
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2476314&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgErpt4HOgIybMGrMD2qg9JB4O53n0jsCxkiI9JBxbz8ECIQDixyFJ54m4NsxhyFtIYPscMVp_G6RyvwrfKzdoya-62Q%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=ANDROID&clen=2476314&dur=163.061&ei=q1jpYtOPEYSBgQeHmqbwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AEDMTCojVtwpIKOdhBaxEHE5s322qnAJHGqa2r1F46BM&initcwndbps=1527500&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhAOiL-qJ04sA8FSOkEJfOYl3gFe4SzwYu_rAf3DMLHYigAiEA0Upi1HqqIu7NH_LTDL0jT1R5TTozQypL5FiSP9RoqtU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659459429&mv=m&mvi=5&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgErpt4HOgIybMGrMD2qg9JB4O53n0jsCxkiI9JBxbz8ECIQDixyFJ54m4NsxhyFtIYPscMVp_G6RyvwrfKzdoya-62Q%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&txp=1311222&vprv=1"),
itag: 251,
bitrate: 140633,
average_bitrate: 121491,
size: 2476314,
last_modified: Some(1608509101894140),
index_range: Some(Range(
start: 266,
end: 551,
@ -449,6 +480,7 @@ VideoPlayer(
channels: Some(2),
loudness_db: None,
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
@ -465,6 +497,9 @@ VideoPlayer(
valid_until: "[date]",
hls_manifest_url: None,
dash_manifest_url: Some("https://manifest.googlevideo.com/api/manifest/dash/expire/1659481355/ei/q1jpYtOPEYSBgQeHmqbwAQ/ip/2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e/id/a4fbddf14c6649b4/source/youtube/requiressl/yes/playback_host/rr5---sn-h0jeenek.googlevideo.com/mh/mQ/mm/31%2C29/mn/sn-h0jeenek%2Csn-h0jelnez/ms/au%2Crdu/mv/m/mvi/5/pl/37/hfr/1/as/fmp4_audio_clear%2Cfmp4_sd_hd_clear/initcwndbps/1527500/vprv/1/mt/1659459429/fvip/4/itag_bl/376%2C377%2C384%2C385%2C612%2C613%2C617%2C619%2C623%2C628%2C655%2C656%2C660%2C662%2C666%2C671/keepalive/yes/fexp/24001373%2C24007246/itag/0/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cas%2Cvprv%2Citag/sig/AOq0QJ8wRAIgMm4a_MIHA3YUszKeruSy3exs5JwNjJAyLAwxL0yPdNMCIANb9GDMSTp_NT-PPhbvYMwRULJ5a9BO6MYD9FuWprC1/lsparams/playback_host%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps/lsig/AG3C_xAwRQIgETSOwhwWVMy7gmrFXZlJu655ToLzSwOEsT16oRyrWhACIQDkvOEw1fImz5omu4iVIRNFe-z-JC9v8WUyx281dW2NOw%3D%3D"),
abr_streaming_url: None,
abr_ustreamer_config: Some("Cs0CCAAlMZkqPi0AAIA_NT0Klz9YAXjoAoABAaABAbUB9ijcP-ABAegBA_ABAfkBAAAAAAAA0D-BAgAAAAAAABhAmALwAaAC6AK4AgDaAlUQsOoBGKhGIKCcASjYNjCYdXCIJ4AB9AO4AQHgAQGYAgyoAgGwAgG4AgHAAgHIAgHQAgLgAgHoAgLwAgGAAwaIA4gnmAMBqAMIsAMBuAMBwAMB2AMB-gIrCAwQGBgyIDItAABwQjUAAIxCQAFIAWUAAIBAaMBwzQEAAIA_8AEB6ALgA4IDAJADAaADAbADA-ADkE6wBAG4BAHKBFgKFQiA4gkQmHUYrAIlAAAAACgAMABAARDg1AMY0A8qNgoKdGJfY29zdF81MCAIKQAAAAAAAAAASAFQAV2amZk-ZQAAAD9tAAAAP3UAAAA_eMCpB5IBADAB6AQB8AQB-AQBkAUBGAEgATIMCKsCEI662NuboOcCMgwIjwMQg-na_r_Q7QIyDAiqAhCOutjbm6DnAjIMCI4DEJXUhISv0O0CMgwIhwEQjrrY25ug5wIyDAiNAxCr6siQptDtAjIMCIYBEO_L2NuboOcCMgwIjAMQuvqao6XQ7QIyDAiFARCOutjbm6DnAjIMCIsDEPLf1JOl0O0CMgwIoAEQjrrY25ug5wIyDAiKAxDZmZnro9DtAjIMCIsBEPGp4ruboOcCMgwIjAEQ6M3Jupug5wIyDAj5ARCykfms493tAjIMCPoBELju26zj3e0CMgwI-wEQ_NOLrePd7QI6AA=="),
po_token: None,
preview_frames: [
Frameset(
url_template: "https://i.ytimg.com/sb/pPvd8UxmSbQ/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgjf8LPxBQ==&sigh=rs$AOn4CLAXobPyrylgm8IEvjlZzqYTiPe1Ow",

View file

@ -66,11 +66,12 @@ VideoPlayer(
),
video_streams: [
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=11439331&dur=163.096&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=ig_QojS86GYHYg&ns=cOm8mnsR9HFwfq55dDyGyqYH&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgNqstD2C4HG7Vn5En5Z4aUyH2mk7gAB9cyfOAWGCaWeoCIQDbxxJZuOnz_3RJNviFYADvgTO7u8YBYKtpFtp9Ujmk2w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=11439331&dur=163.096&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=ig_QojS86GYHYg&ns=cOm8mnsR9HFwfq55dDyGyqYH&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgNqstD2C4HG7Vn5En5Z4aUyH2mk7gAB9cyfOAWGCaWeoCIQDbxxJZuOnz_3RJNviFYADvgTO7u8YBYKtpFtp9Ujmk2w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1"),
itag: 18,
bitrate: 561339,
average_bitrate: 561109,
size: Some(11439331),
last_modified: Some(1580005476071743),
index_range: None,
init_range: None,
duration_ms: Some(163096),
@ -82,17 +83,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
video_only_streams: [
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=1484736&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=278&keepalive=yes&lmt=1608509388295661&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgDYs7xrSqi-Co90zypk9zutEJ-aaEpNAHWnE57zVIfxgCIQDE0exs9SN8JH5OEJ8728Ke6bfa0CsUucFETHLk3IFF7w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=1484736&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=278&keepalive=yes&lmt=1608509388295661&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgDYs7xrSqi-Co90zypk9zutEJ-aaEpNAHWnE57zVIfxgCIQDE0exs9SN8JH5OEJ8728Ke6bfa0CsUucFETHLk3IFF7w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 278,
bitrate: 87458,
average_bitrate: 72857,
size: Some(1484736),
last_modified: Some(1608509388295661),
index_range: Some(Range(
start: 218,
end: 751,
@ -110,15 +113,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=1224002&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=394&keepalive=yes&lmt=1608045375671513&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAI-uoNLUkMHpH35niVh1tBvwwFLtmSbeHyknmyCvccFVAiB2XriyJd0u2q-tGIRTx5qtKt6bJCs5ndXtMsdSxOheuA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=1224002&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=394&keepalive=yes&lmt=1608045375671513&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAI-uoNLUkMHpH35niVh1tBvwwFLtmSbeHyknmyCvccFVAiB2XriyJd0u2q-tGIRTx5qtKt6bJCs5ndXtMsdSxOheuA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 394,
bitrate: 67637,
average_bitrate: 60063,
size: Some(1224002),
last_modified: Some(1608045375671513),
index_range: Some(Range(
start: 700,
end: 1115,
@ -136,15 +141,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.00M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=2973283&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=242&keepalive=yes&lmt=1608509388282028&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgEleuqkeo7x7BsHur5aGPfHaT6KjKEG4c1d_xXwqlrsYCIQD85X_m050XwWyYlfLiWtZz-TX--H8H0UvfZCWKpY7m4Q%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=2973283&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=242&keepalive=yes&lmt=1608509388282028&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgEleuqkeo7x7BsHur5aGPfHaT6KjKEG4c1d_xXwqlrsYCIQD85X_m050XwWyYlfLiWtZz-TX--H8H0UvfZCWKpY7m4Q%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 242,
bitrate: 184064,
average_bitrate: 145902,
size: Some(2973283),
last_modified: Some(1608509388282028),
index_range: Some(Range(
start: 219,
end: 753,
@ -162,15 +169,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=2238952&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=395&keepalive=yes&lmt=1608045728968690&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIBttTR02kTdGb4vdxQ9Gro88JOAY7u5z69nJbdmVS1sAiBr61rqkUtra4PHLdnp2w-s8ZSaN_4qZ3OEeeuIr5C13w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=2238952&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=395&keepalive=yes&lmt=1608045728968690&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIBttTR02kTdGb4vdxQ9Gro88JOAY7u5z69nJbdmVS1sAiBr61rqkUtra4PHLdnp2w-s8ZSaN_4qZ3OEeeuIr5C13w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 395,
bitrate: 135747,
average_bitrate: 109867,
size: Some(2238952),
last_modified: Some(1608045728968690),
index_range: Some(Range(
start: 700,
end: 1115,
@ -188,15 +197,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.00M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=7808990&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMBRhMAZ5GXFSZHN6D-XhXRdG_EWSNwnN2eLPlwVNQ6PAiEA75eH0iJLgwRkujaABZnaJxG2ni-4irYHEGD42x6uaQg%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=7808990&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMBRhMAZ5GXFSZHN6D-XhXRdG_EWSNwnN2eLPlwVNQ6PAiEA75eH0iJLgwRkujaABZnaJxG2ni-4irYHEGD42x6uaQg%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1"),
itag: 134,
bitrate: 538143,
average_bitrate: 383195,
size: Some(7808990),
last_modified: Some(1580005649163759),
index_range: Some(Range(
start: 740,
end: 1155,
@ -214,15 +225,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.4d401e\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=5169510&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=243&keepalive=yes&lmt=1608509388282405&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgNi0fwQbep6oKsEeEGfms2Ay4x2OL2G0hUX5GFhycgKkCIANiC-j-Gz3-noxsNeSKKPxy--T9mFBu_8V7Vi5-zDYS&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=5169510&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=243&keepalive=yes&lmt=1608509388282405&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgNi0fwQbep6oKsEeEGfms2Ay4x2OL2G0hUX5GFhycgKkCIANiC-j-Gz3-noxsNeSKKPxy--T9mFBu_8V7Vi5-zDYS&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 243,
bitrate: 319085,
average_bitrate: 253673,
size: Some(5169510),
last_modified: Some(1608509388282405),
index_range: Some(Range(
start: 220,
end: 754,
@ -240,15 +253,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=4130385&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=396&keepalive=yes&lmt=1608045761576250&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFuBoOIkqwq0D1_OmnNJx3C0jmhHUyskpzPrTMoaWRYECIFZ1Y4QbQ41GsWS8yRHox8l_nGVosfXhXfKu3v18AyeT&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=4130385&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=396&keepalive=yes&lmt=1608045761576250&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgFuBoOIkqwq0D1_OmnNJx3C0jmhHUyskpzPrTMoaWRYECIFZ1Y4QbQ41GsWS8yRHox8l_nGVosfXhXfKu3v18AyeT&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 396,
bitrate: 258097,
average_bitrate: 202682,
size: Some(4130385),
last_modified: Some(1608045761576250),
index_range: Some(Range(
start: 700,
end: 1115,
@ -266,15 +281,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.01M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=8890590&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=244&keepalive=yes&lmt=1608509388284632&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgMYF0KQQNgYI8oOhgdCwyRY6E_hvFnJiaAadyMf89MRoCIHnDnROTvUoy0iIBM3MzFAxJh_bLA-2vFl9KFDrHOf1B&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=8890590&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=244&keepalive=yes&lmt=1608509388284632&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgMYF0KQQNgYI8oOhgdCwyRY6E_hvFnJiaAadyMf89MRoCIHnDnROTvUoy0iIBM3MzFAxJh_bLA-2vFl9KFDrHOf1B&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 244,
bitrate: 539056,
average_bitrate: 436270,
size: Some(8890590),
last_modified: Some(1608509388284632),
index_range: Some(Range(
start: 220,
end: 754,
@ -292,15 +309,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=6873325&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=397&keepalive=yes&lmt=1608045990917419&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAOtLGFoFtLHIXzNRoSrR7ULbIz91OYmaVQkcSatqNKAiAiEA23ZF7h2BZZCAGc0Zdd2p3PWRotmwLDyH6yYCuQpE8xw%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=6873325&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=397&keepalive=yes&lmt=1608045990917419&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAOtLGFoFtLHIXzNRoSrR7ULbIz91OYmaVQkcSatqNKAiAiEA23ZF7h2BZZCAGc0Zdd2p3PWRotmwLDyH6yYCuQpE8xw%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 397,
bitrate: 436843,
average_bitrate: 337281,
size: Some(6873325),
last_modified: Some(1608045990917419),
index_range: Some(Range(
start: 700,
end: 1115,
@ -318,15 +337,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.04M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=16547577&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=247&keepalive=yes&lmt=1608509388326822&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgfYKbT_196P-2EtjuqcTKdataiM480y65Ko0a73dv7WECIQC6nqWienQvu7swC1OW9HlwFWRH7VwTwj6H4yjY6FYvzg%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=16547577&dur=163.029&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=247&keepalive=yes&lmt=1608509388326822&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgfYKbT_196P-2EtjuqcTKdataiM480y65Ko0a73dv7WECIQC6nqWienQvu7swC1OW9HlwFWRH7VwTwj6H4yjY6FYvzg%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 247,
bitrate: 982813,
average_bitrate: 812006,
size: Some(16547577),
last_modified: Some(1608509388326822),
index_range: Some(Range(
start: 220,
end: 754,
@ -344,15 +365,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=35955780&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=302&keepalive=yes&lmt=1608509234088626&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgQG8GPj3w_5_Lr2apagmte66IFBY3bYcZ2KnhwnUpshYCIFgvHYIZsz8WdYGSk9adpfMNKX0pzSP_l8cW47Gq2RTi&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=35955780&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=302&keepalive=yes&lmt=1608509234088626&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgQG8GPj3w_5_Lr2apagmte66IFBY3bYcZ2KnhwnUpshYCIFgvHYIZsz8WdYGSk9adpfMNKX0pzSP_l8cW47Gq2RTi&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 302,
bitrate: 2354009,
average_bitrate: 1764202,
size: Some(35955780),
last_modified: Some(1608509234088626),
index_range: Some(Range(
start: 219,
end: 771,
@ -370,15 +393,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=22365208&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=398&keepalive=yes&lmt=1608048380553749&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAI-VhcBU6o8LGmeuVYC2_zbxeGvC6XWf7yIOQ1RvjURhAiEA0YcZlVOI2ZUtKl-31__Hzax2SOUPeekCRjqjfw4m15s%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=22365208&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=398&keepalive=yes&lmt=1608048380553749&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAI-VhcBU6o8LGmeuVYC2_zbxeGvC6XWf7yIOQ1RvjURhAiEA0YcZlVOI2ZUtKl-31__Hzax2SOUPeekCRjqjfw4m15s%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 398,
bitrate: 1348419,
average_bitrate: 1097369,
size: Some(22365208),
last_modified: Some(1608048380553749),
index_range: Some(Range(
start: 700,
end: 1115,
@ -396,15 +421,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.08M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=65400181&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAIdbG-deTvLhp7mD2b-QZYQamPFv75l1bNBEEOMihrxPAiEA1NYvRlFphbRRvFIBCP-Ij9-5q8OTwUskgsL6LyIrD7c%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=65400181&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAIdbG-deTvLhp7mD2b-QZYQamPFv75l1bNBEEOMihrxPAiEA1NYvRlFphbRRvFIBCP-Ij9-5q8OTwUskgsL6LyIrD7c%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1"),
itag: 299,
bitrate: 4190323,
average_bitrate: 3208919,
size: Some(65400181),
last_modified: Some(1580005649161486),
index_range: Some(Range(
start: 740,
end: 1155,
@ -422,15 +449,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.64002a\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=62993617&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=303&keepalive=yes&lmt=1608509371758331&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJ8n34LQhg6iEg1Ux9rDkk48e8l3vBR4WwuHeIpKnorlAiBopK4z-nq-pJTPTmrdbbKPW1Lfufdz2f9sGUKY-dzk5A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=62993617&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=303&keepalive=yes&lmt=1608509371758331&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAJ8n34LQhg6iEg1Ux9rDkk48e8l3vBR4WwuHeIpKnorlAiBopK4z-nq-pJTPTmrdbbKPW1Lfufdz2f9sGUKY-dzk5A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 303,
bitrate: 3832648,
average_bitrate: 3090839,
size: Some(62993617),
last_modified: Some(1608509371758331),
index_range: Some(Range(
start: 219,
end: 776,
@ -448,15 +477,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=42567727&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=399&keepalive=yes&lmt=1608052932785283&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMewAT3SgJRGn7wqDaDzNWcsAfrjFRu6k0wm7O_5YJeQAiANVhGmILp_gmNXnmixDesxsZ44_72YBT2SqjLLSZV32w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&c=WEB&clen=42567727&dur=163.046&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=399&keepalive=yes&lmt=1608052932785283&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMewAT3SgJRGn7wqDaDzNWcsAfrjFRu6k0wm7O_5YJeQAiANVhGmILp_gmNXnmixDesxsZ44_72YBT2SqjLLSZV32w%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 399,
bitrate: 2572342,
average_bitrate: 2088624,
size: Some(42567727),
last_modified: Some(1608052932785283),
index_range: Some(Range(
start: 700,
end: 1115,
@ -474,17 +505,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"av01.0.09M.08\"",
format: mp4,
codec: av01,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
audio_streams: [
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=934449&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAOdVu1woKNveQspV4WPm1PHrOBuzlrnPu2ZLvyiYZCSbAiAYODN_y5t1oU334SHUqqgyc4Wnt-9If-W98Fd966fy2A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=934449&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAOdVu1woKNveQspV4WPm1PHrOBuzlrnPu2ZLvyiYZCSbAiAYODN_y5t1oU334SHUqqgyc4Wnt-9If-W98Fd966fy2A%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 249,
bitrate: 53039,
average_bitrate: 45845,
size: 934449,
last_modified: Some(1608509101590706),
index_range: Some(Range(
start: 266,
end: 551,
@ -500,15 +533,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2200003),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=1245866&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMJJ-uGQureE70LIxHjHP9hFxqcWwsSlxXX6EjGKmFfEAiAvQ98YKkqUrweNnBZOI7pXJk1kuU_1hSsQ0KeNU4CbyQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=1245866&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAMJJ-uGQureE70LIxHjHP9hFxqcWwsSlxXX6EjGKmFfEAiAvQ98YKkqUrweNnBZOI7pXJk1kuU_1hSsQ0KeNU4CbyQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 250,
bitrate: 71268,
average_bitrate: 61123,
size: 1245866,
last_modified: Some(1608509101111096),
index_range: Some(Range(
start: 266,
end: 551,
@ -524,15 +559,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2200003),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=2640283&dur=163.096&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhANXIw4pIwIPvMGWnJSrA_bnmBX6KPBPqak18aPtKsI8jAiBvisRnEtFax7OTrwKbOiktCihoMraLkCi7Rnnu6JGmeQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=2640283&dur=163.096&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhANXIw4pIwIPvMGWnJSrA_bnmBX6KPBPqak18aPtKsI8jAiBvisRnEtFax7OTrwKbOiktCihoMraLkCi7Rnnu6JGmeQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=2211222&vprv=1"),
itag: 140,
bitrate: 130268,
average_bitrate: 129508,
size: 2640283,
last_modified: Some(1580005579712232),
index_range: Some(Range(
start: 632,
end: 867,
@ -548,15 +585,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2159004),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=2476314&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAKP_KjT_SSnz5WGXaveO56pJAEw166qT3cpBdAZI1zwCAiBWZKVQZxfOPWnqSp5FnRDyQBQ-6a2nZopyA1eHicgHtw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=WEB&clen=2476314&dur=163.061&ei=q1jpYtq3BJCX1gKVyJGQDg&expire=1659481355&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AGfBIFoT5D_NZAwXN7lVCS2VYLDMMegfaJQqvSJp-Hhy&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhANxHzq0WC6OvdTpPJp52z3eGAm-jzUX7fcKiWlJ0T9kEAiEA02Bjesi_an2-pUh0kHdKQe0s_7micbcv3JKiBlxsYGs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C26&mn=sn-h0jelnez%2Csn-4g5edn6k&ms=au%2Conr&mt=1659459429&mv=m&mvi=4&n=T16m7p0RvV7UhQ&ns=tWuNfisHu8yiCA6Avm7nUlwH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAKP_KjT_SSnz5WGXaveO56pJAEw166qT3cpBdAZI1zwCAiBWZKVQZxfOPWnqSp5FnRDyQBQ-6a2nZopyA1eHicgHtw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-KhrZGE2opztWyVdAtyUNlb8dXPDs&txp=1311222&vprv=1"),
itag: 251,
bitrate: 140633,
average_bitrate: 121491,
size: 2476314,
last_modified: Some(1608509101894140),
index_range: Some(Range(
start: 266,
end: 551,
@ -572,6 +611,7 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2200003),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
@ -588,6 +628,9 @@ VideoPlayer(
valid_until: "[date]",
hls_manifest_url: None,
dash_manifest_url: Some("https://manifest.googlevideo.com/api/manifest/dash/expire/1659481355/ei/q1jpYtq3BJCX1gKVyJGQDg/ip/2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e/id/a4fbddf14c6649b4/source/youtube/requiressl/yes/playback_host/rr4---sn-h0jelnez.googlevideo.com/mh/mQ/mm/31%2C26/mn/sn-h0jelnez%2Csn-4g5edn6k/ms/au%2Conr/mv/m/mvi/4/pl/37/hfr/all/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cwebm2_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm2_sd_hd_clear/initcwndbps/1513750/spc/lT-KhrZGE2opztWyVdAtyUNlb8dXPDs/vprv/1/mt/1659459429/fvip/4/keepalive/yes/fexp/24001373%2C24007246/itag/0/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cas%2Cspc%2Cvprv%2Citag/sig/AOq0QJ8wRgIhAPEjHK19PKVHqQeia6WF4qubuMYk74LGi8F8lk5ZMPkFAiEAsaB2pKQWBvuPnNUnbdQXHc-izgsHJUP793woC2xNJlg%3D/lsparams/playback_host%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps/lsig/AG3C_xAwRQIgOY4xu4H9wqPVZ7vF2i0hFcOnqrur1XGoA43a7ZEuuSUCIQCyPxBKXUQrKFmknNEGpX5GSWySKgMw_xHBikWpKpKwvg%3D%3D"),
abr_streaming_url: None,
abr_ustreamer_config: None,
po_token: None,
preview_frames: [
Frameset(
url_template: "https://i.ytimg.com/sb/pPvd8UxmSbQ/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgjf8LPxBQ==&sigh=rs$AOn4CLAXobPyrylgm8IEvjlZzqYTiPe1Ow",

View file

@ -34,11 +34,12 @@ VideoPlayer(
),
video_streams: [
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=11439331&dur=163.096&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=mAEwZepBJSQPkQ&ns=orl5qWACo00YlHHyQZ7a6awH&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhANfXubbDcXpc25m3F5xQ97ygJRjrTvm8ruVxgnxgFAUBAiAEnj_3KacDNTTLUk-6ZEbL-52zxmBLU1iuTEDx0NvJzA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=11439331&dur=163.096&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=18&lmt=1580005476071743&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=mAEwZepBJSQPkQ&ns=orl5qWACo00YlHHyQZ7a6awH&pl=37&ratebypass=yes&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhANfXubbDcXpc25m3F5xQ97ygJRjrTvm8ruVxgnxgFAUBAiAEnj_3KacDNTTLUk-6ZEbL-52zxmBLU1iuTEDx0NvJzA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1"),
itag: 18,
bitrate: 561339,
average_bitrate: 561109,
size: Some(11439331),
last_modified: Some(1580005476071743),
index_range: None,
init_range: None,
duration_ms: Some(163096),
@ -50,17 +51,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
video_only_streams: [
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=1484736&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=278&keepalive=yes&lmt=1608509388295661&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgEQ0-VVvo41T4l2X26p5zP8Wo8sXOPmBWvCf2OW33ilgCIH2bIFOYgpmsml7FvRQj_SoLzPh7yBvmLZ61Kgsj4FUe&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=1484736&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=278&keepalive=yes&lmt=1608509388295661&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgEQ0-VVvo41T4l2X26p5zP8Wo8sXOPmBWvCf2OW33ilgCIH2bIFOYgpmsml7FvRQj_SoLzPh7yBvmLZ61Kgsj4FUe&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 278,
bitrate: 87458,
average_bitrate: 72857,
size: Some(1484736),
last_modified: Some(1608509388295661),
index_range: Some(Range(
start: 218,
end: 751,
@ -78,15 +81,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2973283&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=242&keepalive=yes&lmt=1608509388282028&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAO7DI5E91yHpLhgiWg9C99NsMoJBVOWsNTNF3os9kREQAiAr2oC8vFtXIHwkJJt45q0sdmjiJdkTO2i8VAjUodk6Xw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2973283&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=242&keepalive=yes&lmt=1608509388282028&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAO7DI5E91yHpLhgiWg9C99NsMoJBVOWsNTNF3os9kREQAiAr2oC8vFtXIHwkJJt45q0sdmjiJdkTO2i8VAjUodk6Xw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 242,
bitrate: 184064,
average_bitrate: 145902,
size: Some(2973283),
last_modified: Some(1608509388282028),
index_range: Some(Range(
start: 219,
end: 753,
@ -104,15 +109,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=7808990&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgTkOjFd0nExEtpr8sBIaNu9HhkxWNdjhSKufHMhLR8-8CIHJAmOuCD7VBv_krH6rn5zqXFqAfsq9rQPXlC3CcQrjM&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=7808990&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgTkOjFd0nExEtpr8sBIaNu9HhkxWNdjhSKufHMhLR8-8CIHJAmOuCD7VBv_krH6rn5zqXFqAfsq9rQPXlC3CcQrjM&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1"),
itag: 134,
bitrate: 538143,
average_bitrate: 383195,
size: Some(7808990),
last_modified: Some(1580005649163759),
index_range: Some(Range(
start: 740,
end: 1155,
@ -130,15 +137,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.4d401e\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=5169510&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=243&keepalive=yes&lmt=1608509388282405&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAPqQfxwIANgIC3DrQ6avaWOhCvIMLdzMPQtFOx2gwEXNAiAwJp2mgN9-zl4vPOB2uoQXOfmGsYDB470q1zg7wRW4Sw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=5169510&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=243&keepalive=yes&lmt=1608509388282405&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAPqQfxwIANgIC3DrQ6avaWOhCvIMLdzMPQtFOx2gwEXNAiAwJp2mgN9-zl4vPOB2uoQXOfmGsYDB470q1zg7wRW4Sw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 243,
bitrate: 319085,
average_bitrate: 253673,
size: Some(5169510),
last_modified: Some(1608509388282405),
index_range: Some(Range(
start: 220,
end: 754,
@ -156,15 +165,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=8890590&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=244&keepalive=yes&lmt=1608509388284632&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIjdvhcThMxoo_v2bzEjaR_w0ryWFQDs0f0INaI5WPcVAiApQZUYTqcQJdfxZlNSsp7cl3FK8XPfDZ-qbVvj9GuauQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=8890590&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=244&keepalive=yes&lmt=1608509388284632&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIjdvhcThMxoo_v2bzEjaR_w0ryWFQDs0f0INaI5WPcVAiApQZUYTqcQJdfxZlNSsp7cl3FK8XPfDZ-qbVvj9GuauQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 244,
bitrate: 539056,
average_bitrate: 436270,
size: Some(8890590),
last_modified: Some(1608509388284632),
index_range: Some(Range(
start: 220,
end: 754,
@ -182,15 +193,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=16547577&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=247&keepalive=yes&lmt=1608509388326822&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgBV4Oa1IQ0YNDvRrKO5ec3Pfbg65MxzmIxCcm0gOuwT0CIFysQdow6DQXzz1W9KZVuqACTdjXQ3-yiBj9GcmNw3HE&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=16547577&dur=163.029&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=247&keepalive=yes&lmt=1608509388326822&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgBV4Oa1IQ0YNDvRrKO5ec3Pfbg65MxzmIxCcm0gOuwT0CIFysQdow6DQXzz1W9KZVuqACTdjXQ3-yiBj9GcmNw3HE&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 247,
bitrate: 982813,
average_bitrate: 812006,
size: Some(16547577),
last_modified: Some(1608509388326822),
index_range: Some(Range(
start: 220,
end: 754,
@ -208,15 +221,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=35955780&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=302&keepalive=yes&lmt=1608509234088626&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAOiqSNfGfOprZ9InWVMc7gY0KrTf8weLibcpK0W2Hfa6AiAFHW213qsByzlar5ivCAYttjo1rPciQnLEnh-izJ3ZhA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=35955780&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=302&keepalive=yes&lmt=1608509234088626&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAOiqSNfGfOprZ9InWVMc7gY0KrTf8weLibcpK0W2Hfa6AiAFHW213qsByzlar5ivCAYttjo1rPciQnLEnh-izJ3ZhA%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 302,
bitrate: 2354009,
average_bitrate: 1764202,
size: Some(35955780),
last_modified: Some(1608509234088626),
index_range: Some(Range(
start: 219,
end: 771,
@ -234,15 +249,17 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=65400181&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgdkJv6w9_Azf0m6poA-ULyX0eH_GKBtSJRwUY1lNBAZgCIDCrC0lnu__ycTaIhg0pUcsRUqay60S3QMo5084EWifd&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=65400181&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgdkJv6w9_Azf0m6poA-ULyX0eH_GKBtSJRwUY1lNBAZgCIDCrC0lnu__ycTaIhg0pUcsRUqay60S3QMo5084EWifd&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1"),
itag: 299,
bitrate: 4190323,
average_bitrate: 3208919,
size: Some(65400181),
last_modified: Some(1580005649161486),
index_range: Some(Range(
start: 740,
end: 1155,
@ -260,15 +277,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.64002a\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=62993617&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=303&keepalive=yes&lmt=1608509371758331&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgZi9dDSMWh10NID8-QNn3azIH1zw5UooZrRTPZjVn7hYCIAm9bFc6NBwJ_DzY4V2R_zGmJSpOwQl8LEsfCb7hf6i7&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=62993617&dur=163.046&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=303&keepalive=yes&lmt=1608509371758331&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgZi9dDSMWh10NID8-QNn3azIH1zw5UooZrRTPZjVn7hYCIAm9bFc6NBwJ_DzY4V2R_zGmJSpOwQl8LEsfCb7hf6i7&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 303,
bitrate: 3832648,
average_bitrate: 3090839,
size: Some(62993617),
last_modified: Some(1608509371758331),
index_range: Some(Range(
start: 219,
end: 776,
@ -286,17 +305,19 @@ VideoPlayer(
mime: "video/webm; codecs=\"vp9\"",
format: webm,
codec: vp9,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
audio_streams: [
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=934449&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMUfr2X-eQJt1abn-IK1H4d5DtvKZuBaETo4opNi6mqCAiEAvBmrmuaoFjB1CJ2Kug87w-Uv6OCdxyrJ_3HIaHX9KBI%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=934449&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=249&keepalive=yes&lmt=1608509101590706&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMUfr2X-eQJt1abn-IK1H4d5DtvKZuBaETo4opNi6mqCAiEAvBmrmuaoFjB1CJ2Kug87w-Uv6OCdxyrJ_3HIaHX9KBI%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 249,
bitrate: 53039,
average_bitrate: 45845,
size: 934449,
last_modified: Some(1608509101590706),
index_range: Some(Range(
start: 266,
end: 551,
@ -312,15 +333,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(0.0006532669),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=1245866&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIflUU4t4Ukf4CXW3ttB5c8SnP4z4z3ef-7EFVMFv4U8AiAlcKmmofCTzzr2NRRsRVosQdpDBphUqWyVzS7noGrixw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=1245866&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=250&keepalive=yes&lmt=1608509101111096&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIhAIflUU4t4Ukf4CXW3ttB5c8SnP4z4z3ef-7EFVMFv4U8AiAlcKmmofCTzzr2NRRsRVosQdpDBphUqWyVzS7noGrixw%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 250,
bitrate: 71268,
average_bitrate: 61123,
size: 1245866,
last_modified: Some(1608509101111096),
index_range: Some(Range(
start: 266,
end: 551,
@ -336,15 +359,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(0.0006532669),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2640283&dur=163.096&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhALBveArAZ7DP9r1BIpNz6ZXst5MtzvUM72jhtYMrildCAiEArvwqaqcowZwR_UrRM-O7jq2CMxgBtbnmul27AEcBqEI%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2640283&dur=163.096&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhALBveArAZ7DP9r1BIpNz6ZXst5MtzvUM72jhtYMrildCAiEArvwqaqcowZwR_UrRM-O7jq2CMxgBtbnmul27AEcBqEI%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=2211222&vprv=1"),
itag: 140,
bitrate: 130268,
average_bitrate: 129508,
size: 2640283,
last_modified: Some(1580005579712232),
index_range: Some(Range(
start: 632,
end: 867,
@ -360,15 +385,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(-0.003446579),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2476314&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgARPqD-6172OshMHeV8DpONV7tnPvdsxcg8QlaIGxcuMCICSe8LWvhRTEO2bdAQ43OzOoc5XfJcj3veyhScVXVz8O&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1",
url: Some("https://rr5---sn-h0jeenek.googlevideo.com/videoplayback?c=WEB_REMIX&clen=2476314&dur=163.061&ei=knDpYub6BojEgAf6jbLgDw&expire=1659487474&fexp=24001373%2C24007246&fvip=4&gir=yes&id=o-AM-wcJVO-yYYbVFnuifnzM4eRnD-AG1bS1AhLoDqi_is&initcwndbps=1418750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=251&keepalive=yes&lmt=1608509101894140&lsig=AG3C_xAwRgIhAMwYJqxve8BSujC-oaSFBbq67p-rFi7saU5V8Yb3qrjLAiEAlrMKR_sadHrkFpy7o7lGzKOCmU1OQazCNBbXjDT2a-o%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fwebm&mm=31%2C29&mn=sn-h0jeenek%2Csn-h0jelnez&ms=au%2Crdu&mt=1659465669&mv=m&mvi=5&n=1taQMNHGExb_Vg&ns=UTT8RXHZNhPYTw6NgkzWMWEH&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRAIgARPqD-6172OshMHeV8DpONV7tnPvdsxcg8QlaIGxcuMCICSe8LWvhRTEO2bdAQ43OzOoc5XfJcj3veyhScVXVz8O&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&spc=lT-Khox4YuJQ2wmH79zYALRvsWTPCUc&txp=1311222&vprv=1"),
itag: 251,
bitrate: 140633,
average_bitrate: 121491,
size: 2476314,
last_modified: Some(1608509101894140),
index_range: Some(Range(
start: 266,
end: 551,
@ -384,6 +411,7 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(0.0006532669),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
@ -400,6 +428,9 @@ VideoPlayer(
valid_until: "[date]",
hls_manifest_url: None,
dash_manifest_url: Some("https://manifest.googlevideo.com/api/manifest/dash/expire/1659487474/ei/knDpYub6BojEgAf6jbLgDw/ip/2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e/id/a4fbddf14c6649b4/source/youtube/requiressl/yes/playback_host/rr5---sn-h0jeenek.googlevideo.com/mh/mQ/mm/31%2C29/mn/sn-h0jeenek%2Csn-h0jelnez/ms/au%2Crdu/mv/m/mvi/5/pl/37/hfr/all/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cwebm2_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm2_sd_hd_clear/initcwndbps/1418750/spc/lT-Khox4YuJQ2wmH79zYALRvsWTPCUc/vprv/1/mt/1659465669/fvip/4/keepalive/yes/fexp/24001373%2C24007246/itag/0/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cas%2Cspc%2Cvprv%2Citag/sig/AOq0QJ8wRAIgErABhAEaoKHUDu9dDbpxE_8gR4b8WWAi61fnu8UKnuICIEYrEKcHvqHdO4V3R7cvSGwi_HGH34IlQsKbziOfMBov/lsparams/playback_host%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps/lsig/AG3C_xAwRQIgJxHmH0Sxo3cY_pW_ZzQ3hW9-7oz6K_pZWcUdrDDQ2sQCIQDJYNINQwLgKelgbO3CZYx7sMxdUAFpWdokmRBQ77vwvw%3D%3D"),
abr_streaming_url: None,
abr_ustreamer_config: None,
po_token: None,
preview_frames: [
Frameset(
url_template: "https://i.ytimg.com/sb/pPvd8UxmSbQ/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgjf8LPxBQ==&sigh=rs$AOn4CLAXobPyrylgm8IEvjlZzqYTiPe1Ow",

View file

@ -57,11 +57,12 @@ VideoPlayer(
video_streams: [],
video_only_streams: [
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=7808990&dur=163.029&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMFQo_RyC3Ud44QVGtKckMcuq5UQ3J7CgYsYl0bXaWMUAiEAhMi1h0ru4zoIGX0jBZT23dozvtrhf_m61p4qbAfEhZo%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=7808990&dur=163.029&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=134&keepalive=yes&lmt=1580005649163759&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMFQo_RyC3Ud44QVGtKckMcuq5UQ3J7CgYsYl0bXaWMUAiEAhMi1h0ru4zoIGX0jBZT23dozvtrhf_m61p4qbAfEhZo%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1"),
itag: 134,
bitrate: 538143,
average_bitrate: 383195,
size: Some(7808990),
last_modified: Some(1580005649163759),
index_range: Some(Range(
start: 740,
end: 1155,
@ -79,15 +80,17 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.4D401E\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
VideoStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=65400181&dur=163.046&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAP6zxXXA18ToZWUfalauhhsgOsDHTu-R0QrqNrJR7D5kAiEAi8HBa9OkYwmA0bcRxhgvXfN9JsFlXwCWJ-x4ty6TjoY%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=65400181&dur=163.046&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=299&keepalive=yes&lmt=1580005649161486&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=video%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAP6zxXXA18ToZWUfalauhhsgOsDHTu-R0QrqNrJR7D5kAiEAi8HBa9OkYwmA0bcRxhgvXfN9JsFlXwCWJ-x4ty6TjoY%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1"),
itag: 299,
bitrate: 4190323,
average_bitrate: 3208919,
size: Some(65400181),
last_modified: Some(1580005649161486),
index_range: Some(Range(
start: 740,
end: 1155,
@ -105,17 +108,19 @@ VideoPlayer(
mime: "video/mp4; codecs=\"avc1.64002A\"",
format: mp4,
codec: avc1,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
],
audio_streams: [
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=995840&dur=163.189&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=139&keepalive=yes&lmt=1580005582214385&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMXDvZZznm1LafIKh_pdGf-TjY5Kz-F9N67o6gXenKouAiEA5qji45i5ABmAytPDOORjw0OaBmwX88S7bgUWcmF-_LU%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=995840&dur=163.189&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=139&keepalive=yes&lmt=1580005582214385&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRgIhAMXDvZZznm1LafIKh_pdGf-TjY5Kz-F9N67o6gXenKouAiEA5qji45i5ABmAytPDOORjw0OaBmwX88S7bgUWcmF-_LU%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1"),
itag: 139,
bitrate: 49724,
average_bitrate: 48818,
size: 995840,
last_modified: Some(1580005582214385),
index_range: Some(Range(
start: 641,
end: 876,
@ -131,15 +136,17 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2159004),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
AudioStream(
url: "https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=2640283&dur=163.096&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgcsPm6rrUAwCi1VTGf0FMDTjzjM01__iTC13PnzDTFeQCIQCJ_EGeKVZztkmK3Cr7gVuxUP83XCSlP01YLx5FO-PPcQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1",
url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&clen=2640283&dur=163.096&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&gir=yes&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&itag=140&keepalive=yes&lmt=1580005579712232&lsig=AG3C_xAwRQIgWKVoDpyI6QmVnkdGzdirFtjMAXhmLex64VTO7UUJd-4CIQDoJKkT2-Kpa7j0merJJoZDs4IkkXSjdNm3bvdCL8t2Pg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mime=audio%2Fmp4&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&otfp=1&pl=37&rbqsm=fr&requiressl=yes&sig=AOq0QJ8wRQIgcsPm6rrUAwCi1VTGf0FMDTjzjM01__iTC13PnzDTFeQCIQCJ_EGeKVZztkmK3Cr7gVuxUP83XCSlP01YLx5FO-PPcQ%3D%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&svpuc=1&txp=2211222&vprv=1"),
itag: 140,
bitrate: 130268,
average_bitrate: 129508,
size: 2640283,
last_modified: Some(1580005579712232),
index_range: Some(Range(
start: 632,
end: 867,
@ -155,6 +162,7 @@ VideoPlayer(
channels: Some(2),
loudness_db: Some(5.2159004),
track: None,
xtags: None,
drm_track_type: None,
drm_systems: [],
),
@ -171,6 +179,9 @@ VideoPlayer(
valid_until: "[date]",
hls_manifest_url: Some("https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1659481355/ei/q1jpYq-xHs7NgQev0bfwAQ/ip/2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e/id/a4fbddf14c6649b4/source/youtube/requiressl/yes/playback_host/rr4---sn-h0jelnez.googlevideo.com/mh/mQ/mm/31%2C29/mn/sn-h0jelnez%2Csn-h0jeenek/ms/au%2Crdu/mv/m/mvi/4/pl/37/hfr/1/demuxed/1/tts_caps/1/maudio/1/initcwndbps/1513750/vprv/1/go/1/mt/1659459429/fvip/5/nvgoi/1/short_key/1/ncsapi/1/keepalive/yes/fexp/24001373%2C24007246/dover/13/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cdemuxed%2Ctts_caps%2Cmaudio%2Cvprv%2Cgo%2Citag%2Cplaylist_type/sig/AOq0QJ8wRQIhAIYnEHvIgJtJ8hehAXNtVY3qsgsq_GdOhWf2hkJZe6lCAiBxaRY_nubYp6hBizcAg_KFkKnkG-t2XYLRQ5wGdM3AjA%3D%3D/lsparams/playback_host%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps/lsig/AG3C_xAwRgIhAM_91Kk_0VLuSsR6nLCY7LdtWojyRAzXSScd_X9ShRROAiEA1AF4VY04F71NsAI8_j3iqjuXnWL9s6NoXHq7P8-bHx8%3D/file/index.m3u8"),
dash_manifest_url: None,
abr_streaming_url: Some("https://rr4---sn-h0jelnez.googlevideo.com/videoplayback?c=IOS&ei=q1jpYq-xHs7NgQev0bfwAQ&expire=1659481355&fexp=24001373%2C24007246&fvip=5&id=o-ANNg3iPHI56jhLSlPQk4pi4mdub5iAby0hmJBVrtiJgY&initcwndbps=1513750&ip=2003%3Ade%3Aaf0e%3A2f00%3Ade47%3A297%3Aa6db%3A774e&keepalive=yes&lsig=AG3C_xAwRgIhAK6T5ehnFBsc0FOurPHH1ME_vGcVysI-g5jrtEsvX64sAiEArY-iAvQCsc4R8yg8dvMdpnuHPIcPMCnRgyh8E527HF0%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&mh=mQ&mm=31%2C29&mn=sn-h0jelnez%2Csn-h0jeenek&ms=au%2Crdu&mt=1659459429&mv=m&mvi=4&pl=37&rbqsm=fr&requiressl=yes&sabr=1&sig=AOq0QJ8wRgIhAJCJpb5gE12jQc2qOUy-Y61vEHeiAP_F78weNCzj8VklAiEAwR2PK52CmwsVHfRVk75OOYOxwYKNW2g1eDBw3COBP9w%3D&source=youtube&sparams=expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Csvpuc%2Csabr&svpuc=1"),
abr_ustreamer_config: Some("CpYECp0DCAAQgAUY6AIl-n6qPi0AAIA_NT0Klz9oAXI6ChJtZnMyX2NtZnNfdjNfMV8wNDMSIAoeCgxkZXZpY2VfbW9kZWwSDgoMCgppcGhvbmUxNCw1GAAgAXIWChJtZnMyX2NtZnNfdjNfMV8wNDMYAHjoAoABAagBAbUB9ijcP6AC6AK4AgDaAmEQsOoBGKhGIKCcASjYNjCYdXCIJ4AB9AO4AQHgAQP4AQGQAgGYAgygAgGoAgGwAgG4AgHAAgHIAgHQAgLgAgHoAgLwAgGAAwKIA4gnmAMBqAMIwAMByAMB2AMB-LWR5QwB-gIvCAwQGBgyIDItAABwQjUAAIxCQAFIAVAKWAplAACAQGjAcM0BAACAP_ABAegC0AWCAwCQAwGgAwGoAwGwAwPQAwHYAwHgA5BOuAQBygRWChUI4NQDEJh1GOgHJQAAAAAoADAAQAEQ4NQDGNAPKjYKCnRiX2Nvc3RfNTAgDykAAAAAAAAAAEgBUAFdZmbmPmXNzEw-bZqZGT91mpkZP3jAqQeSAQDoBAHwBAH4BAGQBQGgBQEYASABMgwIqwIQjrrY25ug5wIyDAiqAhCOutjbm6DnAjIMCIcBEI662NuboOcCMgwIhgEQ78vY25ug5wIyDAiFARCOutjbm6DnAjIMCKABEI662NuboOcCMgwIiwEQ8aniu5ug5wIyDAiMARDozcm6m6DnAjoAEkwA8tjvwTBFAiAyo6mtW-M8Y8noBO_6Y3RmNo5U2LntCwiKcI2yye_zRgIhAK27d1UbqzhtkQhminIBAajD70ONeAQNwjt7VRpJRDimGgJlaQ=="),
po_token: None,
preview_frames: [
Frameset(
url_template: "https://i.ytimg.com/sb/pPvd8UxmSbQ/storyboard3_L0/default.jpg?sqp=-oaymwGbA0g48quKqQOSA4gBAZUBAAAEQpgBMqABPKgBBLABELABDbABDLABELABFbABH7ABJrABLbABDrABDrABD7ABErABF7ABK7ABLLABKbABD7ABDrABELABFbABH7ABKrABMrABKbABD7ABEbABFLABGLABJrABPbABOLABLbABEbABFLABHrABKrABMbABS7ABR7ABNrABFbABHLABKbABLrABObABR7ABTbABP7ABJbABLrABN7ABPbABR7ABUrABUbABRbABM7ABQLABQrABQ7ABTLABRLABRrABQ7gBEbgBEbgBFbgBI7gBRLgBQ7gBQ7gBQ7gBEbgBE7gBFrgBL7gBQ7gBQ7gBQ7gBQ7gBFbgBFrgBKbgBQ7gBQ7gBQ7gBQ7gBQ7gBI7gBL7gBQ7gBQ7gBQ7gBQ7gBQ7gBQ7gBRLgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQqLzl_8DBgjf8LPxBQ==&sigh=rs$AOn4CLCsCT8Lprh2S0ptmCRsWH7VtDl3YQ",

Some files were not shown because too many files have changed in this diff Show more