Write EXT-X-MEDIA tags for each audio rendition specifying TYPE=AUDIO, GROUP-ID, NAME, LANGUAGE, CHANNELS, and URI; mark the default track with DEFAULT=YES,AUTOSELECT=YES
Write EXT-X-MEDIA tags for each subtitle track with TYPE=SUBTITLES, GROUP-ID, NAME, LANGUAGE, and URI pointing to a WebVTT segment playlist
Write EXT-X-STREAM-INF tags for each video rendition specifying BANDWIDTH (peak), AVERAGE-BANDWIDTH, RESOLUTION, CODECS (RFC 6381 string), AUDIO group-id, and SUBTITLES group-id
Ensure CODECS strings are accurate — use 'avc1.640028' for H.264 High L4.0, 'mp4a.40.2' for AAC-LC; inaccurate CODECS values cause player buffering failures on strict clients
Set EXT-X-VERSION to at least 6 for fMP4 segments; include EXT-X-INDEPENDENT-SEGMENTS if each segment is independently decodable
Known gotchas
BANDWIDTH must reflect the peak segment bitrate, not the average; under-declaring it causes rebuffering when CDN throughput estimation relies on it for ABR decisions
The AUDIO GROUP-ID referenced in EXT-X-STREAM-INF must exactly match the GROUP-ID in the corresponding EXT-X-MEDIA tag — a typo silently drops audio on some players
Missing or mismatched CODECS strings in EXT-X-STREAM-INF cause iOS AVPlayer to refuse to play the stream entirely
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp