Crates.io | subtytle |
lib.rs | subtytle |
version | 0.1.1 |
source | src |
created_at | 2024-11-25 06:08:23.491614 |
updated_at | 2024-11-25 06:10:27.166826 |
description | A library to work with the .ASS format |
homepage | |
repository | https://git.4o1x5.dev/4o1x5/subtytle |
max_upload_size | |
id | 1459931 |
size | 58,096 |
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).
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(())
}
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(())
}
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
Since the code is hosted on a private git instance (as of right now) any bugs shall be discussed in 4o1x5's project room.
Licensed under the MIT license.
Currently this library does not accept any contributors, as it's hosted on a private git server.