parseSRT static method

List<SubtitleCue> parseSRT(
  1. String content
)

Parse SRT subtitle format

Implementation

static List<SubtitleCue> parseSRT(String content) {
  final cues = <SubtitleCue>[];
  final blocks = content.split('\n\n');

  for (final block in blocks) {
    final lines = block.trim().split('\n');
    if (lines.length < 3) continue;

    // Skip sequence number (first line)
    final timeLine = lines[1];
    if (!timeLine.contains('-->')) continue;

    final parts = timeLine.split('-->');
    if (parts.length != 2) continue;

    final startTime = _parseSRTTime(parts[0].trim());
    final endTime = _parseSRTTime(parts[1].trim());
    final text = lines.sublist(2).join('\n').trim();

    if (startTime != null && endTime != null && text.isNotEmpty) {
      cues.add(SubtitleCue(start: startTime, end: endTime, text: text));
    }
  }

  return cues;
}