Repository: yt-dlp
Issue: NBC - can't download subtitles from certain videos. The download begins but then stops.
Labels: bug,core:downloader

### 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 yt-dlp is broken on a **supported** site
- [X] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [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

US

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

There is an error when I try to download subtitles from the NBC site. In the majority of cases, the download process is fine, but with some episodes, there is an error, and the download stops before it reaches 100%. In this example, the download stops at approximately 45%.

```
45.6% of ~59.02KiB at 22.64KiB/s ETA Unknown (frag 3/5)
ERROR: Parse error at position 8465 (near '00:28:51.865 --> 00:28:52.1000\n>>GRACIAS, ALEJANDRA.\n[***]\n\n')
```

Is this related to yt-dlp, or maybe it's NBC's fault? I played the episode and everything looks okay, with the subtitles being displayed in the browser player, so why are they not downloading?

### 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 -vU https://www.nbc.com/madre-luna/video/dulce-atraccion/4348004 --sub-langs all --all-subs --convert-subs srt --skip-download -o "%(series)s E%(episode_number)03d - %(episode)s"
[debug] Command-line config: ['-vU', 'https://www.nbc.com/madre-luna/video/dulce-atraccion/4348004', '--sub-langs', 'all', '--all-subs', '--convert-subs', 'srt', '--skip-download', '-o', '%(series)s E%(episode_number)03d - %(episode)s']
[debug] Encodings: locale cp1250, fs utf-8, pref cp1250, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.01.28.232706 from yt-dlp/yt-dlp-nightly-builds [41b6cdb41] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-94813-g85386c36e3-ffmpeg-for-N_m3u8DL-CLI
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2023.11.17, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.1.0, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1824 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
[debug] Downloading _update_spec from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/_update_spec
[debug] Downloading SHA2-256SUMS from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/download/2024.07.16.232919/SHA2-256SUMS
Current version: nightly@2024.01.28.232706 from yt-dlp/yt-dlp-nightly-builds
Latest version: nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds
Current Build Hash: 74172fb363cf1dc79963f6e93ca4b8f7e56aa1c47fad51884e8fefed953e6520
Updating to nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds ...
[debug] Downloading yt-dlp.exe from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/download/2024.07.16.232919/yt-dlp.exe
Updated yt-dlp to nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds
[debug] Restarting: yt-dlp -vU "https://www.nbc.com/madre-luna/video/dulce-atraccion/4348004" --sub-langs all --all-subs --convert-subs srt --skip-download -o "%(series)s E%(episode_number)03d - %(episode)s"
[debug] Command-line config: ['-vU', 'https://www.nbc.com/madre-luna/video/dulce-atraccion/4348004', '--sub-langs', 'all', '--all-subs', '--convert-subs', 'srt', '--skip-download', '-o', '%(series)s E%(episode_number)03d - %(episode)s']
[debug] Encodings: locale cp1250, fs utf-8, pref cp1250, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds [37c233562] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-94813-g85386c36e3-ffmpeg-for-N_m3u8DL-CLI
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.07.04, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.2, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1829 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.07.16.232919 from yt-dlp/yt-dlp-nightly-builds)
[NBC] Extracting URL: https://www.nbc.com/madre-luna/video/dulce-atraccion/4348004
[NBC] 4348004: Downloading JSON metadata
[NBC] 4348004: Downloading JSON metadata
[ThePlatform] Extracting URL: http://link.theplatform.com/s/NnzsPC/media/guid/2304991196/4348004?mbr=true&manifest=m3u&switch=HLSServiceSecure#__youtubedl_smuggle=%7B%22force_smil_url%22%3A+true%7D
[ThePlatform] 4348004: Downloading SMIL data
[ThePlatform] 4348004: Downloading m3u8 information
[ThePlatform] 4348004: Downloading JSON metadata
[info] 4348004: Downloading subtitles: en
[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
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 4348004: Downloading 1 format(s): hls-7784
[info] Writing video subtitles to: Madre Luna E047 - Dulce atracción.en.vtt
[debug] Invoking hlsnative downloader on "https://vod-lf-oneapp-prd.akamaized.net/prod/video/bKd/jnk/4348004/1674677885708-FKEoV/_2580318140.subtitles.0.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 5
[download] Destination: Madre Luna E047 - Dulce atracción.en.vtt
[debug] File locking is not supported. Proceeding without locking
[download]  45.6% of ~  59.02KiB at   22.64KiB/s ETA Unknown (frag 3/5)ERROR: Parse error at position 8465 (near '00:28:51.865 --> 00:28:52.1000\n>>GRACIAS, ALEJANDRA.\n[***]\n\n')
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1626, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1782, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1894, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 1841, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 3015, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 179, in wrapper
  File "yt_dlp\YoutubeDL.py", line 3271, in process_info
  File "yt_dlp\YoutubeDL.py", line 4354, in _write_subtitles
  File "yt_dlp\YoutubeDL.py", line 3203, in dl
  File "yt_dlp\downloader\common.py", line 466, in download
  File "yt_dlp\downloader\hls.py", line 378, in real_download
  File "yt_dlp\downloader\fragment.py", line 515, in download_and_append_fragments
  File "yt_dlp\downloader\fragment.py", line 475, in append_fragment
  File "yt_dlp\downloader\hls.py", line 291, in pack_fragment
  File "yt_dlp\webvtt.py", line 398, in parse_fragment
yt_dlp.webvtt.ParseError: Parse error at position 8465 (near '00:28:51.865 --> 00:28:52.1000\n>>GRACIAS, ALEJANDRA.\n[***]\n\n')
```