diff options
author | bashonly <bashonly@bashonly.com> | 2023-01-29 00:59:37 -0600 |
---|---|---|
committer | bashonly <bashonly@bashonly.com> | 2023-01-29 00:59:37 -0600 |
commit | 8aa0bd5d10627ece3c1815c01d02fb8bf22847a7 (patch) | |
tree | 9066e5884d9e752b9fc74762bd0d8476e593a020 /yt_dlp/extractor/generic.py | |
parent | 37e325b92ff9d784715ac0e5d1f7d96bf5f45ad9 (diff) | |
download | hypervideo-pre-8aa0bd5d10627ece3c1815c01d02fb8bf22847a7.tar.lz hypervideo-pre-8aa0bd5d10627ece3c1815c01d02fb8bf22847a7.tar.xz hypervideo-pre-8aa0bd5d10627ece3c1815c01d02fb8bf22847a7.zip |
[extractor/generic] Avoid catastrophic backtracking in KVS regex
Authored by: bashonly
Diffstat (limited to 'yt_dlp/extractor/generic.py')
-rw-r--r-- | yt_dlp/extractor/generic.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/yt_dlp/extractor/generic.py b/yt_dlp/extractor/generic.py index 04677b23f..9e4df4cea 100644 --- a/yt_dlp/extractor/generic.py +++ b/yt_dlp/extractor/generic.py @@ -2637,11 +2637,11 @@ class GenericIE(InfoExtractor): # Look for generic KVS player (before json-ld bc of some urls that break otherwise) found = self._search_regex(( - r'<script\b[^>]+?\bsrc\s*=\s*(["\'])https?://(?:\S+?/)+kt_player\.js\?v=(?P<ver>\d+(?:\.\d+)+)\1[^>]*>', - r'kt_player\s*\(\s*(["\'])(?:(?!\1)[\w\W])+\1\s*,\s*(["\'])https?://(?:\S+?/)+kt_player\.swf\?v=(?P<ver>\d+(?:\.\d+)+)\2\s*,', + r'<script\b[^>]+?\bsrc\s*=\s*(["\'])https?://(?:(?!\1)[^?#])+/kt_player\.js\?v=(?P<ver>\d+(?:\.\d+)+)\1[^>]*>', + r'kt_player\s*\(\s*(["\'])(?:(?!\1)[\w\W])+\1\s*,\s*(["\'])https?://(?:(?!\2)[^?#])+/kt_player\.swf\?v=(?P<ver>\d+(?:\.\d+)+)\2\s*,', ), webpage, 'KVS player', group='ver', default=False) if found: - self.report_detected('KWS Player') + self.report_detected('KVS Player') if found.split('.')[0] not in ('4', '5', '6'): self.report_warning(f'Untested major version ({found}) in player engine - download may fail.') return [self._extract_kvs(url, webpage, video_id)] |