An ASS library written in rust https://crates.io/crates/subtytle
Find a file
2024-11-25 07:09:32 +01:00
src readme 2024-11-25 07:06:53 +01:00
Cargo.toml cargo.toml: changed license... i forgot, and added source 2024-11-25 07:09:32 +01:00
flake.lock added parsing for scriptinfo 2024-11-25 06:54:24 +01:00
flake.nix flake.nix: added 2024-11-09 12:16:42 +01:00
LICENSE changed license 2024-11-25 07:07:57 +01:00
README.md cargo.toml: changed license... i forgot, and added source 2024-11-25 07:09:32 +01:00

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.