Repository: yt-dlp
Issue: ABC iView JSONDecodeError
Labels: site-bug,triage

### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm reporting that a **supported** site is broken
- [X] I've verified that I'm running yt-dlp version **2023.03.04** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

Australia

### Provide a description that is worded well enough to be understood

Receiving `Failed to parse JSON caused by JSONDecodeError` error message

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [X] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
./yt-dlp https://iview.abc.net.au/show/ready-steady-wiggle -s -vU
[debug] Command-line config: ['https://iview.abc.net.au/show/ready-steady-wiggle', '-s', '-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (zip)
[debug] Python 3.9.16 (CPython x86_64 64bit) - Linux-5.19.17-Unraid-x86_64-Intel-R-_Xeon-R-_CPU_E5-2620_v2_@_2.10GHz-with-glibc2.36 (OpenSSL 1.1.1s  1 Nov 2022, glibc 2.36)
[debug] exe versions: none
[debug] Optional libraries: no_Cryptodome-None, sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 91cad9f121c1f6f0a81b747415c46ecba0ff331ed38cc6433040b4ac7b6e15ca
yt-dlp is up to date (stable@2023.03.04)
[debug] Using fake IP 1.137.117.21 (AU) as X-Forwarded-For
[abc.net.au:iview:showseries] Extracting URL: https://iview.abc.net.au/show/ready-steady-wiggle
[abc.net.au:iview:showseries] ready-steady-wiggle: Downloading webpage
ERROR: [abc.net.au:iview:showseries] ready-steady-wiggle: ready-steady-wiggle: Failed to parse JSON (caused by JSONDecodeError('Unterminated string starting at in \'cription":"Captain F\': line 1 column 43732 (char 43731)')); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/extractor/common.py", line 694, in extract
    ie_result = self._real_extract(url)
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/extractor/abc.py", line 294, in _real_extract
    video_data = self._parse_json(
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/extractor/common.py", line 995, in _parse_json
    self.__print_error('Failed to parse JSON' if errnote is None else errnote, fatal, video_id, ve)
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/extractor/common.py", line 978, in __print_error
    raise ExtractorError(f'{video_id}: {errnote}', cause=err)

  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/utils.py", line 623, in decode
    return super().decode(s)
  File "/usr/lib64/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.9/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 43732 (char 43731)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/extractor/common.py", line 992, in _parse_json
    return json.loads(
  File "/usr/lib64/python3.9/json/__init__.py", line 359, in loads
    return cls(**kw).decode(s)
  File "/mnt/user/downloads/youtube-dl/./yt-dlp/yt_dlp/utils.py", line 631, in decode
    raise type(e)(f'{e.msg} in {s[e.pos-10:e.pos+10]!r}', s, e.pos)
json.decoder.JSONDecodeError: Unterminated string starting at in 'cription":"Captain F': line 1 column 43732 (char 43731)
```