Repository: yt-dlp
Issue: New Extractor for MGTOW TV
Labels: site-request,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 a new site support request
- [X] I've verified that I'm running yt-dlp version **2023.07.06** ([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 none of provided URLs [violate any copyrights](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#is-the-website-primarily-used-for-piracy) or contain any [DRM](https://en.wikipedia.org/wiki/Digital_rights_management) to the best of my knowledge
- [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)
- [ ] 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 am willing to share it if required

### Region

Hungary

### Example URLs

- Single video, short URL: https://www.mgtow.tv/watch/inA4r3ODfbwlaZl
- Single video, long URL: https://www.mgtow.tv/watch/watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm.html
- Channel page: https://www.mgtow.tv/@Taylor_The_Fiend
- Playlist: not yet applicable
- Live stream: not yet applicable

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

Up until approximately 3 weeks ago, downloading/streaming (via mpv) from mgtow.tv worked mostly fine (#1282) with the generic extractor. The bug appeared around the time a new stable version of yt-dlp came out, so I retested with the previous version, but the error is the same, hence the logs below are from the newest stable only. The site owner isn't aware of any changes that might be causing this problem, and strangely enough, _his_ videos (first example in verbose log) still work as expected. Second example in the log is a manual upload by the channel owner, while the other two are automatically mirrored from youtube.

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] 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 -vUF https://www.mgtow.tv/watch/watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm.html
[debug] Command-line config: ['-vUF', 'https://www.mgtow.tv/watch/watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm.html']
[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.07.06 [b532a3481] (linux_exe)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-4.15.0-144-generic-x86_64-with-glibc2.27 (OpenSSL 3.1.1 30 May 2023, glibc 2.27)
[debug] exe versions: ffmpeg 3.4.11, ffprobe 3.4.11, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
Current Build Hash: 0556fff82db6c942a5dfbb9583e2896013847b28b95186b3800f730a8d5e0c0a
yt-dlp is up to date (stable@2023.07.06)
[generic] Extracting URL: https://www.mgtow.tv/watch/watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm.html
[generic] watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm: Extracting information
[debug] Looking for embeds
[debug] Identified a html5 embed
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[info] Available formats for watch-rumble-stock-explode-in-the-next-ten-days_1h16xbJecoHDygm-1:
ID   EXT RESOLUTION │ PROTO │ VCODEC  ACODEC
─────────────────────────────────────────────
fmp3 mp4 unknown    │ https │ unknown unknown
240p mp4 240p       │ https │ unknown unknown
360p mp4 360p       │ https │ unknown unknown
480p mp4 480p       │ https │ unknown unknown



$ yt-dlp -vUF https://www.mgtow.tv/watch/declining-female-dating-standards-mgtow_TuAPYeWvj3VuYqb.html
[debug] Command-line config: ['-vUF', 'https://www.mgtow.tv/watch/declining-female-dating-standards-mgtow_TuAPYeWvj3VuYqb.html']
[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.07.06 [b532a3481] (linux_exe)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-4.15.0-144-generic-x86_64-with-glibc2.27 (OpenSSL 3.1.1 30 May 2023, glibc 2.27)
[debug] exe versions: ffmpeg 3.4.11, ffprobe 3.4.11, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
Current Build Hash: 0556fff82db6c942a5dfbb9583e2896013847b28b95186b3800f730a8d5e0c0a
yt-dlp is up to date (stable@2023.07.06)
[generic] Extracting URL: https://www.mgtow.tv/watch/declining-female-dating-standards-mgtow_TuAPYeWvj3VuYqb.html
[generic] declining-female-dating-standards-mgtow_TuAPYeWvj3VuYqb: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] declining-female-dating-standards-mgtow_TuAPYeWvj3VuYqb: Extracting information
[debug] Looking for embeds
[debug] Identified a html5 embed
ERROR: [generic] None: None: Failed to parse JSON (caused by JSONDecodeError('Expecting \',\' delimiter in \'><a href="https://ww\': line 10 column 71 (char 396)')); 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 "yt_dlp/extractor/common.py", line 710, in extract
  File "yt_dlp/extractor/generic.py", line 2563, in _real_extract
  File "yt_dlp/extractor/generic.py", line 2592, in _extract_embeds
  File "yt_dlp/extractor/common.py", line 3767, in extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 102, in _extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 17, in _extract_mediastream_urls
  File "yt_dlp/extractor/common.py", line 1483, in _yield_json_ld
  File "yt_dlp/extractor/common.py", line 1011, in _parse_json
  File "yt_dlp/extractor/common.py", line 994, in __print_error

  File "yt_dlp/utils/_utils.py", line 624, in decode
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 353, in raw_decode
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 10 column 71 (char 396)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp/extractor/common.py", line 1008, in _parse_json
  File "json/__init__.py", line 359, in loads
  File "yt_dlp/utils/_utils.py", line 632, in decode
json.decoder.JSONDecodeError: Expecting ',' delimiter in '><a href="https://ww': line 10 column 71 (char 396)



$ yt-dlp -vUF https://www.mgtow.tv/watch/equality-in-sports-green-bans-facebook-fails-again-more_S9F6NG4iGraLxWD.html
[debug] Command-line config: ['-vUF', 'https://www.mgtow.tv/watch/equality-in-sports-green-bans-facebook-fails-again-more_S9F6NG4iGraLxWD.html']
[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.07.06 [b532a3481] (linux_exe)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-4.15.0-144-generic-x86_64-with-glibc2.27 (OpenSSL 3.1.1 30 May 2023, glibc 2.27)
[debug] exe versions: ffmpeg 3.4.11, ffprobe 3.4.11, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
Current Build Hash: 0556fff82db6c942a5dfbb9583e2896013847b28b95186b3800f730a8d5e0c0a
yt-dlp is up to date (stable@2023.07.06)
[generic] Extracting URL: https://www.mgtow.tv/watch/equality-in-sports-green-bans-facebook-fails-again-more_S9F6NG4iGraLxWD.html
[generic] equality-in-sports-green-bans-facebook-fails-again-more_S9F6NG4iGraLxWD: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] equality-in-sports-green-bans-facebook-fails-again-more_S9F6NG4iGraLxWD: Extracting information
[debug] Looking for embeds
[debug] Identified a html5 embed
ERROR: [generic] None: None: Failed to parse JSON (caused by JSONDecodeError('Expecting \',\' delimiter in \'><a href="https://st\': line 10 column 415 (char 778)')); 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 "yt_dlp/extractor/common.py", line 710, in extract
  File "yt_dlp/extractor/generic.py", line 2563, in _real_extract
  File "yt_dlp/extractor/generic.py", line 2592, in _extract_embeds
  File "yt_dlp/extractor/common.py", line 3767, in extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 102, in _extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 17, in _extract_mediastream_urls
  File "yt_dlp/extractor/common.py", line 1483, in _yield_json_ld
  File "yt_dlp/extractor/common.py", line 1011, in _parse_json
  File "yt_dlp/extractor/common.py", line 994, in __print_error

  File "yt_dlp/utils/_utils.py", line 624, in decode
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 353, in raw_decode
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 10 column 415 (char 778)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp/extractor/common.py", line 1008, in _parse_json
  File "json/__init__.py", line 359, in loads
  File "yt_dlp/utils/_utils.py", line 632, in decode
json.decoder.JSONDecodeError: Expecting ',' delimiter in '><a href="https://st': line 10 column 415 (char 778)



$ yt-dlp -vUF https://www.mgtow.tv/watch/inA4r3ODfbwlaZl
[debug] Command-line config: ['-vUF', 'https://www.mgtow.tv/watch/inA4r3ODfbwlaZl']
[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.07.06 [b532a3481] (linux_exe)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-4.15.0-144-generic-x86_64-with-glibc2.27 (OpenSSL 3.1.1 30 May 2023, glibc 2.27)
[debug] exe versions: ffmpeg 3.4.11, ffprobe 3.4.11, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
Current Build Hash: 0556fff82db6c942a5dfbb9583e2896013847b28b95186b3800f730a8d5e0c0a
yt-dlp is up to date (stable@2023.07.06)
[generic] Extracting URL: https://www.mgtow.tv/watch/inA4r3ODfbwlaZl
[generic] inA4r3ODfbwlaZl: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] inA4r3ODfbwlaZl: Extracting information
[debug] Looking for embeds
[debug] Identified a html5 embed
ERROR: [generic] None: None: Failed to parse JSON (caused by JSONDecodeError('Expecting \',\' delimiter in \'><a href="https://ww\': line 10 column 139 (char 504)')); 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 "yt_dlp/extractor/common.py", line 710, in extract
  File "yt_dlp/extractor/generic.py", line 2563, in _real_extract
  File "yt_dlp/extractor/generic.py", line 2592, in _extract_embeds
  File "yt_dlp/extractor/common.py", line 3767, in extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 102, in _extract_from_webpage
  File "yt_dlp/extractor/mediastream.py", line 17, in _extract_mediastream_urls
  File "yt_dlp/extractor/common.py", line 1483, in _yield_json_ld
  File "yt_dlp/extractor/common.py", line 1011, in _parse_json
  File "yt_dlp/extractor/common.py", line 994, in __print_error

  File "yt_dlp/utils/_utils.py", line 624, in decode
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 353, in raw_decode
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 10 column 139 (char 504)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp/extractor/common.py", line 1008, in _parse_json
  File "json/__init__.py", line 359, in loads
  File "yt_dlp/utils/_utils.py", line 632, in decode
json.decoder.JSONDecodeError: Expecting ',' delimiter in '><a href="https://ww': line 10 column 139 (char 504)
```