parse static method
Parse an M3U8 playlist content. Returns HlsMasterPlaylist if master, HlsMediaPlaylist if media.
Implementation
static HlsPlaylist parse(String content, String playlistUrl) {
final lines = LineSplitter.split(content).toList();
if (lines.isEmpty || !lines[0].startsWith('#EXTM3U')) {
throw FormatException('Invalid M3U8: missing #EXTM3U header');
}
// Check if master playlist (contains #EXT-X-STREAM-INF)
final isMaster = lines.any((l) => l.startsWith('#EXT-X-STREAM-INF'));
if (isMaster) {
return _parseMasterPlaylist(lines, playlistUrl);
} else {
return _parseMediaPlaylist(lines, playlistUrl);
}
}