aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2020-02-15 05:35:55 +0700
committerSergey M․ <dstftw@gmail.com>2020-02-15 05:35:55 +0700
commit7bf27721d61dadb2e4f2f6215cbc9d66ba3fd708 (patch)
tree7963711b513731f30b7b5cca10139a5129b03932
parentf6052ec923fbe4270a3733aeb8d4a9d5727ef80f (diff)
downloadyoutube-dl-7bf27721d61dadb2e4f2f6215cbc9d66ba3fd708.tar.xz
[npr] Add support for streams (closes #24042)
-rw-r--r--youtube_dl/extractor/npr.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/youtube_dl/extractor/npr.py b/youtube_dl/extractor/npr.py
index a5e8baa7e..53acc6e57 100644
--- a/youtube_dl/extractor/npr.py
+++ b/youtube_dl/extractor/npr.py
@@ -4,6 +4,7 @@ from .common import InfoExtractor
from ..utils import (
int_or_none,
qualities,
+ url_or_none,
)
@@ -48,6 +49,10 @@ class NprIE(InfoExtractor):
},
}],
'expected_warnings': ['Failed to download m3u8 information'],
+ }, {
+ # multimedia, no formats, stream
+ 'url': 'https://www.npr.org/2020/02/14/805476846/laura-stevenson-tiny-desk-concert',
+ 'only_matching': True,
}]
def _real_extract(self, url):
@@ -95,6 +100,17 @@ class NprIE(InfoExtractor):
'format_id': format_id,
'quality': quality(format_id),
})
+ for stream_id, stream_entry in media.get('stream', {}).items():
+ if not isinstance(stream_entry, dict):
+ continue
+ if stream_id != 'hlsUrl':
+ continue
+ stream_url = url_or_none(stream_entry.get('$text'))
+ if not stream_url:
+ continue
+ formats.extend(self._extract_m3u8_formats(
+ stream_url, stream_id, 'mp4', 'm3u8_native',
+ m3u8_id='hls', fatal=False))
self._sort_formats(formats)
entries.append({