Repository: yt-dlp
Issue: "ERROR: Parse error at position 38 (near 'Style:\n::cue(c.blue)')" on a particular YT video
Labels: bug,site:youtube,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

Germany

### Provide a description that is worded well enough to be understood

Trying to download this video fails: https://www.youtube.com/watch?v=VCWRZu3dD6c

Config file is as follows (no other options used):
```
--add-metadata
--download-archive="blah.txt"
--sub-langs .+-orig$,en,all
--check-formats
--embed-subs
--embed-thumbnail
--embed-metadata  
--ignore-errors
--include-ads
--trim-filenames 100
--write-annotations    
--write-auto-sub
--write-description
--write-info-json
--write-thumbnail
-S "hdr,res,vcodec:h264"
--concurrent-fragments 3
--windows-filenames  
--no-overwrite
--force-ipv4
```

Judging by the verbose output, something with the subtitle parsing is not working, idk.

### 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
[debug] Command-line config: ['https://www.youtube.com/watch?v=VCWRZu3dD6c', '-vU']
[debug] User config "C:\Users\User\yt-dlp.conf": ['--add-metadata', '--download-archive=blah.txt', '--sub-langs', '.+-orig$,en,all', '--check-formats', '--embed-subs', '--embed-thumbnail', '--embed-metadata', '--ignore-errors', '--include-ads', '--trim-filenames', '100', '--write-annotations', '--write-auto-sub', '--write-description', '--write-info-json', '--write-thumbnail', '-S', 'hdr,res,vcodec:h264', '--concurrent-fragments', '3', '--windows-filenames', '--no-overwrite', '--force-ipv4']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out cp1252 (No VT), error cp1252 (No VT), screen cp1252 (No VT)
[debug] yt-dlp version nightly@2024.03.03.232706 from yt-dlp/yt-dlp-nightly-builds [ede624d1d] (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 2022-10-20-git-eb9153b4a7-full_build-www.gyan.dev (setts), ffprobe 2022-10-20-git-eb9153b4a7-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1834 extractors
[debug] Loading archive file 'blah.txt'
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.03.03.232706 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.03.03.232706 from yt-dlp/yt-dlp-nightly-builds)
[youtube] Extracting URL: https://www.youtube.com/watch?v=VCWRZu3dD6c
[youtube] VCWRZu3dD6c: Downloading webpage
[youtube] VCWRZu3dD6c: Downloading ios player API JSON
[youtube] VCWRZu3dD6c: Downloading android player API JSON
[youtube] VCWRZu3dD6c: Downloading m3u8 information
[info] VCWRZu3dD6c: Downloading subtitles: en-orig, en, en-GB, af, ak, sq, am, ar, hy, as, ay, az, bn, eu, be, bho, bs, bg, my, ca, ceb, zh-Hans, zh-Hant, co, hr, cs, da, dv, nl, eo, et, ee, fil, fi, fr, gl, lg, ka, de, el, gn, gu, ht, ha, haw, iw, hi, hmn, hu, is, ig, id, ga, it, ja, jv, kn, kk, km, rw, ko, kri, ku, ky, lo, la, lv, ln, lt, lb, mk, mg, ms, ml, mt, mi, mr, mn, ne, nso, no, ny, or, om, ps, fa, pl, pt, pa, qu, ro, ru, sm, sa, gd, sr, sn, sd, si, sk, sl, so, st, es, su, sw, sv, tg, ta, tt, te, th, ti, ts, tr, tk, uk, ur, ug, uz, vi, cy, fy, xh, yi, yo, zu, af-en-GB, ak-en-GB, sq-en-GB, am-en-GB, ar-en-GB, hy-en-GB, as-en-GB, ay-en-GB, az-en-GB, bn-en-GB, eu-en-GB, be-en-GB, bho-en-GB, bs-en-GB, bg-en-GB, my-en-GB, ca-en-GB, ceb-en-GB, zh-Hans-en-GB, zh-Hant-en-GB, co-en-GB, hr-en-GB, cs-en-GB, da-en-GB, dv-en-GB, nl-en-GB, en-en-GB, eo-en-GB, et-en-GB, ee-en-GB, fil-en-GB, fi-en-GB, fr-en-GB, gl-en-GB, lg-en-GB, ka-en-GB, de-en-GB, el-en-GB, gn-en-GB, gu-en-GB, ht-en-GB, ha-en-GB, haw-en-GB, iw-en-GB, hi-en-GB, hmn-en-GB, hu-en-GB, is-en-GB, ig-en-GB, id-en-GB, ga-en-GB, it-en-GB, ja-en-GB, jv-en-GB, kn-en-GB, kk-en-GB, km-en-GB, rw-en-GB, ko-en-GB, kri-en-GB, ku-en-GB, ky-en-GB, lo-en-GB, la-en-GB, lv-en-GB, ln-en-GB, lt-en-GB, lb-en-GB, mk-en-GB, mg-en-GB, ms-en-GB, ml-en-GB, mt-en-GB, mi-en-GB, mr-en-GB, mn-en-GB, ne-en-GB, nso-en-GB, no-en-GB, ny-en-GB, or-en-GB, om-en-GB, ps-en-GB, fa-en-GB, pl-en-GB, pt-en-GB, pa-en-GB, qu-en-GB, ro-en-GB, ru-en-GB, sm-en-GB, sa-en-GB, gd-en-GB, sr-en-GB, sn-en-GB, sd-en-GB, si-en-GB, sk-en-GB, sl-en-GB, so-en-GB, st-en-GB, es-en-GB, su-en-GB, sw-en-GB, sv-en-GB, tg-en-GB, ta-en-GB, tt-en-GB, te-en-GB, th-en-GB, ti-en-GB, ts-en-GB, tr-en-GB, tk-en-GB, uk-en-GB, ur-en-GB, ug-en-GB, uz-en-GB, vi-en-GB, cy-en-GB, fy-en-GB, xh-en-GB, yi-en-GB, yo-en-GB, zu-en-GB
[debug] Sort order given by user: hdr, res, vcodec:h264
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, hdr, res, vcodec:h264(7), quality, fps, source, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] Testing format 313
[debug] File locking is not supported. Proceeding without locking
[download] Destination: C:\test\tmp9zkjn1v2.tmp
[download] 100% of   10.00KiB in 00:00:00 at 116.26KiB/s
[info] Testing format 251
[download] Destination: C:\test\tmp9lgihc5r.tmp
[download] 100% of   10.00KiB in 00:00:00 at 217.42KiB/s
[info] VCWRZu3dD6c: Downloading 1 format(s): 313+251
[info] Video description is already present
[info] Video subtitle en-orig.vtt is already present
[info] Video subtitle en.vtt is already present
[info] Writing video subtitles to: Racing GEOWIZARD in a Straight Line across the Isle of Man [VCWRZu3dD6c].en-GB.vtt
[debug] Invoking hlsnative downloader on "https://manifest.googlevideo.com/api/manifest/hls_timedtext_playlist/expire/1709557040/ei/0HDlZcWRDvSs6dsP1sWL2Aw/ip/188.192.120.153/id/54259166eddd0fa7/source/youtube/requiressl/yes/dur/1553.927/tts_params/caps%3Dasr%26v%3DVCWRZu3dD6c%26lang%3Den-GB%26ip%3D[IP removed]%26ipbits%3D0%26expire%3D1709557040%26sparams%3Dip,ipbits,expire,caps,v%26signature%3D7EA22CB602E04085450D205877E679D8B418E74B.284EFC0AF385CBEA8D7AD8C5CF274584761F46A0%26key%3Ddg_yt0/rqh/4/hls_chunk_host/rr5---sn-h0jelne7.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/mh/Tx/mm/31,29/mn/sn-h0jelne7,sn-h0jeenl6/ms/au,rdu/mv/m/mvi/5/pl/24/initcwndbps/2636250/vprv/1/playlist_type/DVR/mt/1709535195/fvip/3/short_key/1/keepalive/yes/fexp/24007246/sparams/expire,ei,ip,id,source,requiressl,dur,tts_params,rqh,xpc,vprv,playlist_type/sig/AJfQdSswRgIhAL4Kt0DqB5hw5Kygv8I6Fn2J6krkTUi4qlyDcgRxEh_aAiEAsNIhRvNGbxgePU-Yo2VXg6YykDoFvKQEiM63RaVGfL0%3D/lsparams/hls_chunk_host,mh,mm,mn,ms,mv,mvi,pl,initcwndbps/lsig/APTiJQcwRgIhAL1IY8hJ8MJPvCoAaLy-iaWIuulLqplsz29czTb8nz_vAiEAi_8K6RT8N755ntJ3nxApwLLKZAHkAhzdFAWz3hY20ew%3D/playlist/index.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 3
[download] Destination: Racing GEOWIZARD in a Straight Line across the Isle of Man [VCWRZu3dD6c].en-GB.vtt
[download] Racing GEOWIZARD in a Straight Line across the Isle of Man [VCWRZu3dD6c].en-GB.vtt.part-Frag1 has already been downloaded
[download]   0.0% of ~  48.44KiB at      0.00B/s ETA Unknown (frag 1/3)[download] Racing GEOWIZARD in a Straight Line across the Isle of Man [VCWRZu3dD6c].en-GB.vtt.part-Frag2 has already been downloaded
[download] Racing GEOWIZARD in a Straight Line across the Isle of Man [VCWRZu3dD6c].en-GB.vtt.part-Frag3 has already been downloaded
[download]   0.0% of ~  16.98KiB at      0.00B/s ETA Unknown (frag 3/3)ERROR: Parse error at position 38 (near 'Style:\n::cue(c.blue)')
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1593, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1749, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1808, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 2966, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 3220, in process_info
  File "yt_dlp\YoutubeDL.py", line 4274, in _write_subtitles
  File "yt_dlp\YoutubeDL.py", line 3153, in dl
  File "yt_dlp\downloader\common.py", line 455, in download
  File "yt_dlp\downloader\hls.py", line 375, in real_download
  File "yt_dlp\downloader\fragment.py", line 501, in download_and_append_fragments
  File "yt_dlp\downloader\fragment.py", line 475, in append_fragment
  File "yt_dlp\downloader\hls.py", line 287, in pack_fragment
  File "yt_dlp\webvtt.py", line 365, in parse_fragment
  File "yt_dlp\webvtt.py", line 218, in parse
yt_dlp.webvtt.ParseError: Parse error at position 38 (near 'Style:\n::cue(c.blue)')
```