diff options
author | Gilles Pietri <gilles@wolface.fr> | 2020-09-23 23:09:00 +0200 |
---|---|---|
committer | Gilles Pietri <gilles@wolface.fr> | 2020-09-23 23:14:01 +0200 |
commit | 9c1f99402fa25a5a691944c133432741af19829b (patch) | |
tree | 2880483feb209a5e13d01a321f06ad98bb404161 | |
parent | c5764b3f89b66e0148a186490f522ae7c259a55e (diff) | |
download | hypervideo-pre-9c1f99402fa25a5a691944c133432741af19829b.tar.lz hypervideo-pre-9c1f99402fa25a5a691944c133432741af19829b.tar.xz hypervideo-pre-9c1f99402fa25a5a691944c133432741af19829b.zip |
[bandcamp] fix regexp for JSON matching on bandcamp
-rw-r--r-- | youtube_dl/extractor/bandcamp.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index f14b407dc..ad1812320 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -91,10 +91,11 @@ class BandcampIE(InfoExtractor): duration = None formats = [] - track_info = self._parse_json( - self._search_regex( - r'trackinfo\s*:\s*\[\s*({.+?})\s*\]\s*,\s*?\n', - webpage, 'track info', default='{}'), title) + trackinfo_block = self._search_regex( + r'trackinfo":\[\s*({.+?})\s*\],"', + webpage, 'track info', default='{}') + quoted_json = trackinfo_block.replace('"', '"') + track_info = self._parse_json(quoted_json, title) if track_info: file_ = track_info.get('file') if isinstance(file_, dict): @@ -117,7 +118,7 @@ class BandcampIE(InfoExtractor): def extract(key): return self._search_regex( - r'\b%s\s*["\']?\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1' % key, + r',"%s":(")(?P<value>(?:(?!").)+)"' % key, webpage, key, default=None, group='value') artist = extract('artist') |