prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  vidzi.tv doesn't work
  $youtube-dl --version
  2018.06.04
  
  $youtube-dl and http://vidzi.tv links doesn't work
  
  for example:
  $youtube-dl http://vidzi.tv/n83vo2mlnpgb
  
  Failed to parse JSON  (caused by ValueError("Expecting ',' delimiter: line 12 column 175 (char 771)",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  
  $youtube-dl --verbose http://vidzi.tv/n83vo2mlnpgb
  
  [debug] System config: []
  [debug] User config: []
  [debug] Custom config: []
  [debug] Command-line args: [u'--verbose', u'http://vidzi.tv/n83vo2mlnpgb']
  [debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
  [debug] youtube-dl version 2018.06.04
  [debug] Python version 2.7.10 (CPython) - Darwin-17.5.0-x86_64-i386-64bit
  [debug] exe versions: avconv 12.3, avprobe 12.3, ffmpeg 3.4.2, ffprobe 3.4.2
  [debug] Proxy map: {}
  [Vidzi] n83vo2mlnpgb: Downloading webpage
  ERROR: n83vo2mlnpgb: Failed to parse JSON  (caused by ValueError("Expecting ',' delimiter: line 12 column 175 (char 791)",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  Traceback (most recent call last):
    File "/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py", line 774, in _parse_json
      return json.loads(json_string)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
      return _default_decoder.decode(s)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
      obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
      obj, end = self.scan_once(s, idx)
  ValueError: Expecting ',' delimiter: line 12 column 175 (char 791)
  Traceback (most recent call last):
    File "/Library/Python/2.7/site-packages/youtube_dl/YoutubeDL.py", line 792, in extract_info
      ie_result = ie.extract(url)
    File "/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py", line 500, in extract
      ie_result = self._real_extract(url)
    File "/Library/Python/2.7/site-packages/youtube_dl/extractor/vidzi.py", line 57, in _real_extract
      video_id, transform_source=js_to_json)
    File "/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py", line 778, in _parse_json
      raise ExtractorError(errmsg, cause=ve)
  ExtractorError: n83vo2mlnpgb: Failed to parse JSON  (caused by ValueError("Expecting ',' delimiter: line 12 column 175 (char 791)",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `youtube_dl/extractor/vidzi.py`
  Content:
  ```
  1 # coding: utf-8
  2 from __future__ import unicode_literals
  3 
  4 import re
  5 
  6 from .common import InfoExtractor
  7 from ..utils import (
  8     decode_packed_codes,
  9     js_to_json,
  10     NO_DEFAULT,
  11     PACKED_CODES_RE,
  12 )
  13 
  14 
  15 class VidziIE(InfoExtractor):
  16     _VALID_URL = r'https?://(?:www\.)?vidzi\.(?:tv|cc|si)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)'
  17     _TESTS = [{
  18         'url': 'http://vidzi.tv/cghql9yq6emu.html',
  19         'md5': '4f16c71ca0c8c8635ab6932b5f3f1660',
  20         'info_dict': {
  21             'id': 'cghql9yq6emu',
  22             'ext': 'mp4',
  23             'title': 'youtube-dl test video  1\\\\2\'3/4<5\\\\6ä7↭',
  24         },
  25         'params': {
  26             # m3u8 download
  27             'skip_download': True,
  28         },
  29     }, {
  30         'url': 'http://vidzi.tv/embed-4z2yb0rzphe9-600x338.html',
  31         'only_matching': True,
  32     }, {
  33         'url': 'http://vidzi.cc/cghql9yq6emu.html',
  34         'only_matching': True,
  35     }, {
  36         'url': 'https://vidzi.si/rph9gztxj1et.html',
  37         'only_matching': True,
  38     }]
  39 
  40     def _real_extract(self, url):
  41         video_id = self._match_id(url)
  42 
  43         webpage = self._download_webpage(
  44             'http://vidzi.tv/%s' % video_id, video_id)
  45         title = self._html_search_regex(
  46             r'(?s)<h2 class="video-title">(.*?)</h2>', webpage, 'title')
  47 
  48         codes = [webpage]
  49         codes.extend([
  50             decode_packed_codes(mobj.group(0)).replace('\\\'', '\'')
  51             for mobj in re.finditer(PACKED_CODES_RE, webpage)])
  52         for num, code in enumerate(codes, 1):
  53             jwplayer_data = self._parse_json(
  54                 self._search_regex(
  55                     r'setup\(([^)]+)\)', code, 'jwplayer data',
  56                     default=NO_DEFAULT if num == len(codes) else '{}'),
  57                 video_id, transform_source=js_to_json)
  58             if jwplayer_data:
  59                 break
  60 
  61         info_dict = self._parse_jwplayer_data(jwplayer_data, video_id, require_title=False)
  62         info_dict['title'] = title
  63 
  64         return info_dict
  65
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/youtube_dl/extractor/vidzi.py b/youtube_dl/extractor/vidzi.py
  --- a/youtube_dl/extractor/vidzi.py
  +++ b/youtube_dl/extractor/vidzi.py
  @@ -54,7 +54,8 @@
                   self._search_regex(
                       r'setup\(([^)]+)\)', code, 'jwplayer data',
                       default=NO_DEFAULT if num == len(codes) else '{}'),
  -                video_id, transform_source=js_to_json)
  +                video_id, transform_source=lambda s: js_to_json(
  +                    re.sub(r'\s*\+\s*window\[.+?\]', '', s)))
               if jwplayer_data:
                   break
  
verification_info: {"golden_diff": "diff --git a/youtube_dl/extractor/vidzi.py b/youtube_dl/extractor/vidzi.py\n--- a/youtube_dl/extractor/vidzi.py\n+++ b/youtube_dl/extractor/vidzi.py\n@@ -54,7 +54,8 @@\n                 self._search_regex(\n                     r'setup\\(([^)]+)\\)', code, 'jwplayer data',\n                     default=NO_DEFAULT if num == len(codes) else '{}'),\n-                video_id, transform_source=js_to_json)\n+                video_id, transform_source=lambda s: js_to_json(\n+                    re.sub(r'\\s*\\+\\s*window\\[.+?\\]', '', s)))\n             if jwplayer_data:\n                 break\n", "issue": "vidzi.tv doesn't work\n$youtube-dl --version\r\n2018.06.04\r\n\r\n$youtube-dl and http://vidzi.tv links doesn't work\r\n\r\nfor example:\r\n$youtube-dl http://vidzi.tv/n83vo2mlnpgb\r\n\r\nFailed to parse JSON  (caused by ValueError(\"Expecting ',' delimiter: line 12 column 175 (char 771)\",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.\r\n\r\n$youtube-dl --verbose http://vidzi.tv/n83vo2mlnpgb\r\n\r\n[debug] System config: []\r\n[debug] User config: []\r\n[debug] Custom config: []\r\n[debug] Command-line args: [u'--verbose', u'http://vidzi.tv/n83vo2mlnpgb']\r\n[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8\r\n[debug] youtube-dl version 2018.06.04\r\n[debug] Python version 2.7.10 (CPython) - Darwin-17.5.0-x86_64-i386-64bit\r\n[debug] exe versions: avconv 12.3, avprobe 12.3, ffmpeg 3.4.2, ffprobe 3.4.2\r\n[debug] Proxy map: {}\r\n[Vidzi] n83vo2mlnpgb: Downloading webpage\r\nERROR: n83vo2mlnpgb: Failed to parse JSON  (caused by ValueError(\"Expecting ',' delimiter: line 12 column 175 (char 791)\",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.\r\nTraceback (most recent call last):\r\n  File \"/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py\", line 774, in _parse_json\r\n    return json.loads(json_string)\r\n  File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py\", line 338, in loads\r\n    return _default_decoder.decode(s)\r\n  File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 366, in decode\r\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\r\n  File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 382, in raw_decode\r\n    obj, end = self.scan_once(s, idx)\r\nValueError: Expecting ',' delimiter: line 12 column 175 (char 791)\r\nTraceback (most recent call last):\r\n  File \"/Library/Python/2.7/site-packages/youtube_dl/YoutubeDL.py\", line 792, in extract_info\r\n    ie_result = ie.extract(url)\r\n  File \"/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py\", line 500, in extract\r\n    ie_result = self._real_extract(url)\r\n  File \"/Library/Python/2.7/site-packages/youtube_dl/extractor/vidzi.py\", line 57, in _real_extract\r\n    video_id, transform_source=js_to_json)\r\n  File \"/Library/Python/2.7/site-packages/youtube_dl/extractor/common.py\", line 778, in _parse_json\r\n    raise ExtractorError(errmsg, cause=ve)\r\nExtractorError: n83vo2mlnpgb: Failed to parse JSON  (caused by ValueError(\"Expecting ',' delimiter: line 12 column 175 (char 791)\",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.\r\n\r\n\n", "before_files": [{"content": "# coding: utf-8\nfrom __future__ import unicode_literals\n\nimport re\n\nfrom .common import InfoExtractor\nfrom ..utils import (\n    decode_packed_codes,\n    js_to_json,\n    NO_DEFAULT,\n    PACKED_CODES_RE,\n)\n\n\nclass VidziIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?vidzi\\.(?:tv|cc|si)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)'\n    _TESTS = [{\n        'url': 'http://vidzi.tv/cghql9yq6emu.html',\n        'md5': '4f16c71ca0c8c8635ab6932b5f3f1660',\n        'info_dict': {\n            'id': 'cghql9yq6emu',\n            'ext': 'mp4',\n            'title': 'youtube-dl test video  1\\\\\\\\2\\'3/4<5\\\\\\\\6\u00e47\u21ad',\n        },\n        'params': {\n            # m3u8 download\n            'skip_download': True,\n        },\n    }, {\n        'url': 'http://vidzi.tv/embed-4z2yb0rzphe9-600x338.html',\n        'only_matching': True,\n    }, {\n        'url': 'http://vidzi.cc/cghql9yq6emu.html',\n        'only_matching': True,\n    }, {\n        'url': 'https://vidzi.si/rph9gztxj1et.html',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n\n        webpage = self._download_webpage(\n            'http://vidzi.tv/%s' % video_id, video_id)\n        title = self._html_search_regex(\n            r'(?s)<h2 class=\"video-title\">(.*?)</h2>', webpage, 'title')\n\n        codes = [webpage]\n        codes.extend([\n            decode_packed_codes(mobj.group(0)).replace('\\\\\\'', '\\'')\n            for mobj in re.finditer(PACKED_CODES_RE, webpage)])\n        for num, code in enumerate(codes, 1):\n            jwplayer_data = self._parse_json(\n                self._search_regex(\n                    r'setup\\(([^)]+)\\)', code, 'jwplayer data',\n                    default=NO_DEFAULT if num == len(codes) else '{}'),\n                video_id, transform_source=js_to_json)\n            if jwplayer_data:\n                break\n\n        info_dict = self._parse_jwplayer_data(jwplayer_data, video_id, require_title=False)\n        info_dict['title'] = title\n\n        return info_dict\n", "path": "youtube_dl/extractor/vidzi.py"}], "after_files": [{"content": "# coding: utf-8\nfrom __future__ import unicode_literals\n\nimport re\n\nfrom .common import InfoExtractor\nfrom ..utils import (\n    decode_packed_codes,\n    js_to_json,\n    NO_DEFAULT,\n    PACKED_CODES_RE,\n)\n\n\nclass VidziIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?vidzi\\.(?:tv|cc|si)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)'\n    _TESTS = [{\n        'url': 'http://vidzi.tv/cghql9yq6emu.html',\n        'md5': '4f16c71ca0c8c8635ab6932b5f3f1660',\n        'info_dict': {\n            'id': 'cghql9yq6emu',\n            'ext': 'mp4',\n            'title': 'youtube-dl test video  1\\\\\\\\2\\'3/4<5\\\\\\\\6\u00e47\u21ad',\n        },\n        'params': {\n            # m3u8 download\n            'skip_download': True,\n        },\n    }, {\n        'url': 'http://vidzi.tv/embed-4z2yb0rzphe9-600x338.html',\n        'only_matching': True,\n    }, {\n        'url': 'http://vidzi.cc/cghql9yq6emu.html',\n        'only_matching': True,\n    }, {\n        'url': 'https://vidzi.si/rph9gztxj1et.html',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n\n        webpage = self._download_webpage(\n            'http://vidzi.tv/%s' % video_id, video_id)\n        title = self._html_search_regex(\n            r'(?s)<h2 class=\"video-title\">(.*?)</h2>', webpage, 'title')\n\n        codes = [webpage]\n        codes.extend([\n            decode_packed_codes(mobj.group(0)).replace('\\\\\\'', '\\'')\n            for mobj in re.finditer(PACKED_CODES_RE, webpage)])\n        for num, code in enumerate(codes, 1):\n            jwplayer_data = self._parse_json(\n                self._search_regex(\n                    r'setup\\(([^)]+)\\)', code, 'jwplayer data',\n                    default=NO_DEFAULT if num == len(codes) else '{}'),\n                video_id, transform_source=lambda s: js_to_json(\n                    re.sub(r'\\s*\\+\\s*window\\[.+?\\]', '', s)))\n            if jwplayer_data:\n                break\n\n        info_dict = self._parse_jwplayer_data(jwplayer_data, video_id, require_title=False)\n        info_dict['title'] = title\n\n        return info_dict\n", "path": "youtube_dl/extractor/vidzi.py"}]}