From ebea243ea248ad92bdcb3a21fc904f3164b3941e Mon Sep 17 00:00:00 2001 From: Florent DELAHAYE Date: Sun, 27 Jul 2025 10:41:03 +0200 Subject: [PATCH] feat(extractor/applepodcasts): add playlist support --- yt_dlp/extractor/_extractors.py | 5 +- yt_dlp/extractor/applepodcasts.py | 142 +++++++++++++++++++++++++++++- 2 files changed, 142 insertions(+), 5 deletions(-) diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py index 617c2c5ce0..84608b2efc 100644 --- a/yt_dlp/extractor/_extractors.py +++ b/yt_dlp/extractor/_extractors.py @@ -137,7 +137,10 @@ from .aol import AolIE from .apa import APAIE from .aparat import AparatIE from .appleconnect import AppleConnectIE -from .applepodcasts import ApplePodcastsIE +from .applepodcasts import ( + ApplePodcastsIE, + ApplePodcastsPlaylistIE +) from .appletrailers import ( AppleTrailersIE, AppleTrailersSectionIE, diff --git a/yt_dlp/extractor/applepodcasts.py b/yt_dlp/extractor/applepodcasts.py index b99d24e0eb..5c20dbaff1 100644 --- a/yt_dlp/extractor/applepodcasts.py +++ b/yt_dlp/extractor/applepodcasts.py @@ -5,10 +5,16 @@ from ..utils import ( parse_iso8601, ) from ..utils.traversal import traverse_obj +import re +from urllib.parse import urljoin +class ApplePodcastsBaseIE(InfoExtractor): + _BASE_URL_REGEX = r'https?://podcasts\.apple\.com/(?:[^/]+/)?podcast(?:/[^/]+){1,2}' + _BASE_HTML_JSON_LOCATION = r'