diff options
Diffstat (limited to 'youtube_dl/extractor/applepodcasts.py')
-rw-r--r-- | youtube_dl/extractor/applepodcasts.py | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/youtube_dl/extractor/applepodcasts.py b/youtube_dl/extractor/applepodcasts.py deleted file mode 100644 index 6a74de758..000000000 --- a/youtube_dl/extractor/applepodcasts.py +++ /dev/null @@ -1,62 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -from .common import InfoExtractor -from ..utils import ( - clean_podcast_url, - int_or_none, - parse_iso8601, - try_get, -) - - -class ApplePodcastsIE(InfoExtractor): - _VALID_URL = r'https?://podcasts\.apple\.com/(?:[^/]+/)?podcast(?:/[^/]+){1,2}.*?\bi=(?P<id>\d+)' - _TESTS = [{ - 'url': 'https://podcasts.apple.com/us/podcast/207-whitney-webb-returns/id1135137367?i=1000482637777', - 'md5': 'df02e6acb11c10e844946a39e7222b08', - 'info_dict': { - 'id': '1000482637777', - 'ext': 'mp3', - 'title': '207 - Whitney Webb Returns', - 'description': 'md5:13a73bade02d2e43737751e3987e1399', - 'upload_date': '20200705', - 'timestamp': 1593921600, - 'duration': 6425, - 'series': 'The Tim Dillon Show', - } - }, { - 'url': 'https://podcasts.apple.com/podcast/207-whitney-webb-returns/id1135137367?i=1000482637777', - 'only_matching': True, - }, { - 'url': 'https://podcasts.apple.com/podcast/207-whitney-webb-returns?i=1000482637777', - 'only_matching': True, - }, { - 'url': 'https://podcasts.apple.com/podcast/id1135137367?i=1000482637777', - 'only_matching': True, - }] - - def _real_extract(self, url): - episode_id = self._match_id(url) - webpage = self._download_webpage(url, episode_id) - ember_data = self._parse_json(self._search_regex( - r'id="shoebox-ember-data-store"[^>]*>\s*({.+?})\s*<', - webpage, 'ember data'), episode_id) - ember_data = ember_data.get(episode_id) or ember_data - episode = ember_data['data']['attributes'] - description = episode.get('description') or {} - - series = None - for inc in (ember_data.get('included') or []): - if inc.get('type') == 'media/podcast': - series = try_get(inc, lambda x: x['attributes']['name']) - - return { - 'id': episode_id, - 'title': episode['name'], - 'url': clean_podcast_url(episode['assetUrl']), - 'description': description.get('standard') or description.get('short'), - 'timestamp': parse_iso8601(episode.get('releaseDateTime')), - 'duration': int_or_none(episode.get('durationInMilliseconds'), 1000), - 'series': series, - } |