subtitle_toolkit 0.0.2 copy "subtitle_toolkit: ^0.0.2" to clipboard
subtitle_toolkit: ^0.0.2 copied to clipboard

A Flutter package for parsing, manipulating, and managing subtitle files. Supports SRT format with features like timing adjustments, speed modifications, and subtitle merging.

example/subtitle_toolkit_example.dart

import 'package:subtitle_toolkit/subtitle_toolkit.dart';

void main() async {
  // Parse subtitles from file
  final result = await SubtitleParser.parseFile('example/sample.srt');

  result.fold((error) => print('Error: $error'), (subtitles) {
    print('Original subtitles:');
    print(SubtitleParser.entriesToString(subtitles));

    // Demonstrate various transformations

    // 1. Shift all subtitles forward by 2 seconds
    final shiftedSubtitles = SubtitleParser.shiftTimings(
      subtitles,
      const Duration(seconds: 2),
    );
    print('\nShifted subtitles (+2 seconds):');
    print(SubtitleParser.entriesToString(shiftedSubtitles));

    // 2. Speed up subtitles by 50%
    final speedAdjustedSubtitles = SubtitleParser.adjustSpeed(subtitles, 1.5);
    print('\nSpeed adjusted subtitles (1.5x):');
    print(SubtitleParser.entriesToString(speedAdjustedSubtitles));

    // 3. Enforce minimum duration of 2 seconds
    final minDurationSubtitles = SubtitleParser.enforceMinimumDuration(
      subtitles,
      const Duration(seconds: 2),
    );
    print('\nSubtitles with minimum 2-second duration:');
    print(SubtitleParser.entriesToString(minDurationSubtitles));

    // 4. Merge overlapping subtitles
    final mergedSubtitles = SubtitleParser.mergeOverlapping(subtitles);
    print('\nMerged overlapping subtitles:');
    print(SubtitleParser.entriesToString(mergedSubtitles));

    // Save modified subtitles to a new file
    SubtitleParser.writeToFile(shiftedSubtitles, 'example/shifted_output.srt');
  });

  // Example of parsing from string
  const srtString = '''1
00:00:01,000 --> 00:00:04,000
Test subtitle''';

  final stringResult = SubtitleParser.parseString(srtString);
  stringResult.fold(
    (error) => print('Error parsing string: $error'),
    (subtitles) => print('\nParsed from string: ${subtitles.first.text}'),
  );
}
2
likes
150
points
34
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for parsing, manipulating, and managing subtitle files. Supports SRT format with features like timing adjustments, speed modifications, and subtitle merging.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

dartz, equatable, flutter, http

More

Packages that depend on subtitle_toolkit