diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-06-23 01:42:39 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-06-23 01:46:49 +0530 |
commit | 0c36dc00d7b9f43238bacb0e03730f31117d0b38 (patch) | |
tree | cd125bf5c2d63e83019e9189c7cefa9380317124 /yt_dlp/extractor/npr.py | |
parent | 28163422a667d63cceb0e8bf27d150951e78d313 (diff) | |
download | hypervideo-pre-0c36dc00d7b9f43238bacb0e03730f31117d0b38.tar.lz hypervideo-pre-0c36dc00d7b9f43238bacb0e03730f31117d0b38.tar.xz hypervideo-pre-0c36dc00d7b9f43238bacb0e03730f31117d0b38.zip |
[extractor/npr] Implement e50c3500b43d80e4492569c4b4523c4379c6fbb2 differently
Closes #4141
Diffstat (limited to 'yt_dlp/extractor/npr.py')
-rw-r--r-- | yt_dlp/extractor/npr.py | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/yt_dlp/extractor/npr.py b/yt_dlp/extractor/npr.py index e4ff8d6c2..e677e862d 100644 --- a/yt_dlp/extractor/npr.py +++ b/yt_dlp/extractor/npr.py @@ -1,9 +1,5 @@ from .common import InfoExtractor -from ..utils import ( - int_or_none, - qualities, - url_or_none, -) +from ..utils import int_or_none, qualities, traverse_obj, url_or_none class NprIE(InfoExtractor): @@ -74,10 +70,6 @@ class NprIE(InfoExtractor): })['list']['story'][0] playlist_title = story.get('title', {}).get('$text') - # Fetch the JSON-LD from the npr page. - json_ld = self._search_json_ld( - self._download_webpage(url, playlist_id), playlist_id, 'NewsArticle', fatal=False) - KNOWN_FORMATS = ('threegp', 'm3u8', 'smil', 'mp4', 'mp3') quality = qualities(KNOWN_FORMATS) @@ -124,8 +116,10 @@ class NprIE(InfoExtractor): stream_url, stream_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) - if not formats and json_ld.get('url'): - formats.extend(self._extract_m3u8_formats(json_ld['url'], media_id, 'mp4', m3u8_id='hls', fatal=False)) + if not formats: + raw_json_ld = self._yield_json_ld(self._download_webpage(url, playlist_id), playlist_id, fatal=False) + m3u8_url = traverse_obj(list(raw_json_ld), (..., 'subjectOf', ..., 'embedUrl'), get_all=False) + formats = self._extract_m3u8_formats(m3u8_url, media_id, 'mp4', m3u8_id='hls', fatal=False) self._sort_formats(formats) |