diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index d5607296d..099046afb 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -262,6 +262,9 @@ class InfoExtractor: * http_chunk_size Chunk size for HTTP downloads * ffmpeg_args Extra arguments for ffmpeg downloader (input) * ffmpeg_args_out Extra arguments for ffmpeg downloader (output) + * ws (NiconicoLiveFD only) WebSocketResponse + * ws_url (NiconicoLiveFD only) Websockets URL + * max_quality (NiconicoLiveFD only) Max stream quality string * is_dash_periods Whether the format is a result of merging multiple DASH periods. RTMP formats can also have the additional fields: page_url, diff --git a/yt_dlp/extractor/niconico.py b/yt_dlp/extractor/niconico.py index 7a0628b4b..f6326bef7 100644 --- a/yt_dlp/extractor/niconico.py +++ b/yt_dlp/extractor/niconico.py @@ -30,7 +30,11 @@ urlencode_postdata, urljoin, ) -from ..utils.traversal import find_element, traverse_obj +from ..utils.traversal import ( + find_element, + require, + traverse_obj, +) class NiconicoBaseIE(InfoExtractor): @@ -890,8 +894,7 @@ def _real_extract(self, url): 'id': video_id, 'title': title, 'downloader_options': { - 'max_quality': traverse_obj(embedded_data, ( - 'program', 'stream', 'maxQuality', {str})), + 'max_quality': traverse_obj(embedded_data, ('program', 'stream', 'maxQuality', {str})) or 'normal', 'ws': ws, 'ws_url': ws_url, },