diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-10-03 16:50:27 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-10-03 16:56:19 +0530 |
commit | 8b7fb8b60da78b54a518246b251be3d1829fef38 (patch) | |
tree | 0a18644076581c900ef769f6319d758749f4a279 /yt_dlp/extractor/common.py | |
parent | a83333c4328591c279a27dd0ec4c7c5addcc411f (diff) |
[extractor] Make search_json able to parse lists
Now `contains_pattern` can be set to `\[.+\]`
Diffstat (limited to 'yt_dlp/extractor/common.py')
-rw-r--r-- | yt_dlp/extractor/common.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 11e715871..caec0ccf6 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -1227,7 +1227,7 @@ class InfoExtractor: return None def _search_json(self, start_pattern, string, name, video_id, *, end_pattern='', - contains_pattern='(?s:.+)', fatal=True, default=NO_DEFAULT, **kwargs): + contains_pattern=r'{(?s:.+)}', fatal=True, default=NO_DEFAULT, **kwargs): """Searches string for the JSON object specified by start_pattern""" # NB: end_pattern is only used to reduce the size of the initial match if default is NO_DEFAULT: @@ -1236,7 +1236,7 @@ class InfoExtractor: fatal, has_default = False, True json_string = self._search_regex( - rf'(?:{start_pattern})\s*(?P<json>{{\s*(?:{contains_pattern})\s*}})\s*(?:{end_pattern})', + rf'(?:{start_pattern})\s*(?P<json>{contains_pattern})\s*(?:{end_pattern})', string, name, group='json', fatal=fatal, default=None if has_default else NO_DEFAULT) if not json_string: return default |