parse static method

HlsPlaylist parse(
  1. String content,
  2. String playlistUrl
)

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);
  }
}