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'