#ass #subtitle #srt

subtytle

A library to work with the .ASS format

2 releases

new 0.1.1 Nov 25, 2024
0.1.0 Nov 25, 2024

#536 in Math

Download history 198/week @ 2024-11-20

198 downloads per month

MIT license

54KB
900 lines

Subtytle

A Subtitle library for rust. For right now only ASS (SubStation Alpha) is implemented, but hopefully there will be more time in the future to make room for SRT,VTT and SUB(microdvd).

Features

  • Parsing ASS from str
use std::fs::File;
use std::io::{self, Read};
use subtytle::ass::AssSubtitle;

fn main() {
    let path = "subtitles.ass";
    let mut file = File::open(path).expect("Failed to read in file");
    let mut contents = String::new();
    file.read_to_string(&mut contents).expect("Failed to read string");
    let ass_decoded = AssSubtitle::from_str(contents).unwrap();

    Ok(())
}
  • Parsing of SRT events into ass events
use std::fs::File;
use std::io::{self, Read};
use subtytle::ass::Event;

fn main() {
    let path = "subtitles.srt";
    let mut file = File::open(path).expect("Failed to read in file");
    let mut contents = String::new();
    file.read_to_string(&mut contents).expect("Failed to read string");
    let list_of_events = Event::from_srt(contents).unwrap();

    Ok(())
}

Limitations

I have yet to find the original specifications of the Sub Station Alpha script format, therefore I've used this one. I have no idea which fields are actually optional and which are not. Also there is many left out like:

ScaledBorderAndShadow: yes
Last Style Storage: Default
Video File: ?dummy:23.976000:40000:640:480:47:163:254:
Video Aspect Ratio: 0
Video Zoom: 8
Video Position: 0

Bugs department

Since the code is hosted on a private git instance (as of right now) any bugs shall be discussed in 4o1x5's project room.

License

Licensed under the MIT license.

Contribution

Currently this library does not accept any contributors, as it's hosted on a private git server.

Dependencies

~4.5–7MB
~121K SLoC