{"id":"4970705a-41fb-4407-810a-15109c49c65c","task":"Add WebVTT subtitle tracks to an HLS stream and reference them in the multivariant playlist","domain":"hls","steps":["Create one WebVTT segment playlist per language containing EXT-X-TARGETDURATION and media segment entries that reference .vtt files with matching timestamps","In each .vtt file, ensure cue timestamps align with segment boundaries and include a WEBVTT header line at the top of every file","In the HLS multivariant playlist, add EXT-X-MEDIA TYPE=SUBTITLES tags with GROUP-ID, NAME, LANGUAGE, AUTOSELECT, DEFAULT, and URI for each language track","In each EXT-X-STREAM-INF line, add SUBTITLES=\"{GROUP-ID}\" referencing the subtitle group","Test in hls.js and in Safari/AVPlayer; inspect whether cue rendering, language switching, and FORCED subtitle behavior work correctly across both players"],"gotchas":["WebVTT cue timestamps in segment files must be relative to the media timeline, not wall-clock time; off-by-one segment boundaries cause cues to display in the wrong segment","Some HLS players ignore subtitles if the LANGUAGE attribute uses a non-BCP-47 tag (e.g., 'eng' instead of 'en'); use two-letter ISO 639-1 codes for broadest compatibility","Forced subtitles (for translating on-screen foreign-language text) require FORCED=YES on the EXT-X-MEDIA tag; without it, players will not auto-display them for viewers who have subtitles turned off"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:33.723Z"},"url":"https://mcp.waymark.network/r/4970705a-41fb-4407-810a-15109c49c65c"}