From 371b758962e3fb64ccf752a069e1848b42af33be Mon Sep 17 00:00:00 2001 From: Paul van Tilburg Date: Sat, 31 Dec 2022 14:32:29 +0100 Subject: [PATCH] Strip parameters from MIME types Some podcast clients are scared of them and they are not really necessary either. --- src/backends/youtube.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/backends/youtube.rs b/src/backends/youtube.rs index 35cc8fc..e08d251 100644 --- a/src/backends/youtube.rs +++ b/src/backends/youtube.rs @@ -182,10 +182,13 @@ impl From for Item { ) -> Self { let id = video.id().to_string(); - let mime_type = stream.mime_type().to_string(); - // Ignore everything from MIME type parameter seperator on for extension look-up. - let mime_sep = mime_type.find(';').unwrap_or(mime_type.len()); - let extension = mime_db::extension(&mime_type[..mime_sep]).unwrap_or_default(); + // Strip parameters from MIME type; some clients are scared of them and they are no + // necessary. + let mut mime_type = stream.mime_type().to_string(); + if let Some(sep_idx) = mime_type.find(';') { + mime_type.truncate(sep_idx); + } + let extension = mime_db::extension(&mime_type).unwrap_or_default(); let file = PathBuf::from(&id).with_extension(extension); let enclosure = Enclosure { file,