projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[youtube] Fix age gate content detection (#26100) (closes #26152, closes #26311,...
[youtube-dl]
/
youtube_dl
/
extractor
/
npo.py
diff --git
a/youtube_dl/extractor/npo.py
b/youtube_dl/extractor/npo.py
index ad62f8ec61c423384f001cf0df42e6dbf9ffbd11..e525ad928433bc64521cce3e9c2bdd2a7ead65b1 100644
(file)
--- a/
youtube_dl/extractor/npo.py
+++ b/
youtube_dl/extractor/npo.py
@@
-181,10
+181,7
@@
class NPOIE(NPOBaseIE):
def _real_extract(self, url):
video_id = self._match_id(url)
def _real_extract(self, url):
video_id = self._match_id(url)
- try:
- return self._get_info(url, video_id)
- except ExtractorError:
- return self._get_old_info(video_id)
+ return self._get_info(url, video_id) or self._get_old_info(video_id)
def _get_info(self, url, video_id):
token = self._download_json(
def _get_info(self, url, video_id):
token = self._download_json(
@@
-206,6
+203,7
@@
class NPOIE(NPOBaseIE):
player_token = player['token']
player_token = player['token']
+ drm = False
format_urls = set()
formats = []
for profile in ('hls', 'dash-widevine', 'dash-playready', 'smooth'):
format_urls = set()
formats = []
for profile in ('hls', 'dash-widevine', 'dash-playready', 'smooth'):
@@
-227,7
+225,8
@@
class NPOIE(NPOBaseIE):
if not stream_url or stream_url in format_urls:
continue
format_urls.add(stream_url)
if not stream_url or stream_url in format_urls:
continue
format_urls.add(stream_url)
- if stream.get('protection') is not None:
+ if stream.get('protection') is not None or stream.get('keySystemOptions') is not None:
+ drm = True
continue
stream_type = stream.get('type')
stream_ext = determine_ext(stream_url)
continue
stream_type = stream.get('type')
stream_ext = determine_ext(stream_url)
@@
-246,6
+245,11
@@
class NPOIE(NPOBaseIE):
'url': stream_url,
})
'url': stream_url,
})
+ if not formats:
+ if drm:
+ raise ExtractorError('This video is DRM protected.', expected=True)
+ return
+
self._sort_formats(formats)
info = {
self._sort_formats(formats)
info = {