From b8abd255e454acbe0023cdb946f9eb461ced7eeb Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:43:40 -0500 Subject: [PATCH 1/2] [utils] `mimetype2ext`: Always parse `flac` from `audio/flac` (#13748) Authored by: bashonly --- yt_dlp/utils/_utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/yt_dlp/utils/_utils.py b/yt_dlp/utils/_utils.py index 20aa341ca..c930830d9 100644 --- a/yt_dlp/utils/_utils.py +++ b/yt_dlp/utils/_utils.py @@ -2961,6 +2961,7 @@ def mimetype2ext(mt, default=NO_DEFAULT): 'audio/x-matroska': 'mka', 'audio/x-mpegurl': 'm3u', 'aacp': 'aac', + 'flac': 'flac', 'midi': 'mid', 'ogg': 'ogg', 'wav': 'wav', From 28bf46b7dafe2e241137763bf570a2f91ba8a53a Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:46:06 -0500 Subject: [PATCH 2/2] [utils] `urlhandle_detect_ext`: Use `x-amz-meta-file-type` headers (#13749) Authored by: bashonly --- yt_dlp/utils/_utils.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/yt_dlp/utils/_utils.py b/yt_dlp/utils/_utils.py index c930830d9..c91a06e9a 100644 --- a/yt_dlp/utils/_utils.py +++ b/yt_dlp/utils/_utils.py @@ -3106,21 +3106,15 @@ def get_compatible_ext(*, vcodecs, acodecs, vexts, aexts, preferences=None): def urlhandle_detect_ext(url_handle, default=NO_DEFAULT): getheader = url_handle.headers.get - cd = getheader('Content-Disposition') - if cd: - m = re.match(r'attachment;\s*filename="(?P[^"]+)"', cd) - if m: - e = determine_ext(m.group('filename'), default_ext=None) - if e: - return e + if cd := getheader('Content-Disposition'): + if m := re.match(r'attachment;\s*filename="(?P[^"]+)"', cd): + if ext := determine_ext(m.group('filename'), default_ext=None): + return ext - meta_ext = getheader('x-amz-meta-name') - if meta_ext: - e = meta_ext.rpartition('.')[2] - if e: - return e - - return mimetype2ext(getheader('Content-Type'), default=default) + return ( + determine_ext(getheader('x-amz-meta-name'), default_ext=None) + or getheader('x-amz-meta-file-type') + or mimetype2ext(getheader('Content-Type'), default=default)) def encode_data_uri(data, mime_type):