diff options
| author | Sergey M․ <dstftw@gmail.com> | 2020-02-15 05:35:55 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2020-02-15 05:35:55 +0700 | 
| commit | 7bf27721d61dadb2e4f2f6215cbc9d66ba3fd708 (patch) | |
| tree | 7963711b513731f30b7b5cca10139a5129b03932 | |
| parent | f6052ec923fbe4270a3733aeb8d4a9d5727ef80f (diff) | |
[npr] Add support for streams (closes #24042)
| -rw-r--r-- | youtube_dl/extractor/npr.py | 16 | 
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({  | 
