From fc5771e35b459af6210cbd9a2e7c33b6c462d337 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sun, 16 Feb 2025 09:48:08 +0100 Subject: fix(crates/yt_dlp/wrappers/info_json): Don't serialize `None` values This keeps the jsons, which we internally parse, shorter. --- crates/yt_dlp/src/wrapper/info_json.rs | 253 +++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) diff --git a/crates/yt_dlp/src/wrapper/info_json.rs b/crates/yt_dlp/src/wrapper/info_json.rs index bffc133..9d63ee6 100644 --- a/crates/yt_dlp/src/wrapper/info_json.rs +++ b/crates/yt_dlp/src/wrapper/info_json.rs @@ -29,132 +29,385 @@ type ExtractorKey = String; #[derive(Debug, Deserialize, Serialize, PartialEq)] #[serde(deny_unknown_fields)] pub struct InfoJson { + #[serde(skip_serializing_if = "Option::is_none")] pub __files_to_move: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub __last_playlist_index: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub __post_extractor: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub __x_forwarded_for_ip: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub _filename: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub _format_sort_fields: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub _has_drm: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub _type: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub _version: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub abr: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub acodec: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub age_limit: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub artists: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub aspect_ratio: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub asr: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub audio_channels: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub audio_ext: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub automatic_captions: Option>>, + + #[serde(skip_serializing_if = "Option::is_none")] pub availability: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub average_rating: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub categories: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub channel: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub channel_follower_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub channel_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub channel_is_verified: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub channel_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub chapters: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub comment_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub comments: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub concurrent_view_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub container: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub direct: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub display_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub downloader_options: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub duration: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub duration_string: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub dynamic_range: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub entries: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub episode: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub episode_number: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub epoch: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub ext: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub extractor: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub extractor_key: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub filename: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub filesize: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub filesize_approx: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub format: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub format_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub format_index: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub format_note: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub formats: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub fps: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub fulltitle: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub genre: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub genres: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub has_drm: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub heatmap: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub height: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub hls_aes: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub http_headers: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub ie_key: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub is_live: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub language: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub language_preference: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub license: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub like_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub live_status: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub location: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub manifest_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub media_type: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub modified_date: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub n_entries: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub original_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playable_in_embed: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_autonumber: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_channel: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_channel_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_index: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_title: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_uploader: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_uploader_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub playlist_webpage_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub preference: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub protocol: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub quality: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub release_date: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub release_timestamp: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub release_year: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub repost_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub requested_downloads: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub requested_entries: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub requested_formats: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub requested_subtitles: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub resolution: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub season: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub season_number: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub series: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub source_preference: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub sponsorblock_chapters: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub stretched_ratio: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub subtitles: Option>>, + + #[serde(skip_serializing_if = "Option::is_none")] pub tags: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub tbr: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub thumbnail: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub thumbnails: Option>, + + #[serde(skip_serializing_if = "Option::is_none")] pub timestamp: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub title: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub upload_date: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub uploader: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub uploader_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub uploader_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub vbr: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub vcodec: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub video_ext: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub view_count: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub was_live: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub webpage_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub webpage_url_basename: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub webpage_url_domain: Option, + + #[serde(skip_serializing_if = "Option::is_none")] pub width: Option, } -- cgit 1.4.1