From d9a92921e642d76ca989d5f6880f5f46c9d2c68c Mon Sep 17 00:00:00 2001 From: Simon Sawicki Date: Tue, 26 Nov 2024 22:16:22 +0100 Subject: [PATCH] Fix fragment url generation --- yt_dlp/extractor/common.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 41d090c6b3..ce79e0b622 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -1855,7 +1855,7 @@ class InfoExtractor: @staticmethod def _remove_duplicate_formats(formats): seen_urls = set() - seen_fragments = set() + seen_fragment_urls = set() unique_formats = [] for f in formats: fragments = f.get('fragments') @@ -1863,12 +1863,11 @@ class InfoExtractor: unique_formats.append(f) elif fragments: - if base_url := f.get('fragment_base_url'): - fragments = map(urljoin(base_url), fragments) - - fragments = frozenset(fragments) - if fragments not in seen_fragments: - seen_fragments.add(fragments) + fragment_urls = frozenset( + fragment.get('url') or urljoin(f['fragment_base_url'], fragment['path']) + for fragment in fragments) + if fragment_urls not in seen_fragment_urls: + seen_fragment_urls.add(fragment_urls) unique_formats.append(f) elif f['url'] not in seen_urls: