go-astisub alternatives and similar packages
Based on the "Video" category.
Alternatively, view go-astisub alternatives based on common mentions on social networks and blogs.
-
M3U8
DISCONTINUED. Parser and generator of M3U8-playlists for Apple HLS. Library for Go language. :cinema: -
go-m3u8
Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)
SaaSHub - Software Alternatives and Reviews
Do you think we are missing an alternative of go-astisub or a related project?
Popular Comparisons
README
This is a Golang library to manipulate subtitles.
It allows you to manipulate srt
, stl
, ttml
, ssa/ass
, webvtt
and teletext
files for now.
Available operations are parsing
, writing
, syncing
, fragmenting
, unfragmenting
, merging
and optimizing
.
Installation
To install the library:
go get github.com/asticode/go-astisub
To install the CLI:
go install github.com/asticode/go-astisub/astisub
Using the library in your code
WARNING: the code below doesn't handle errors for readibility purposes. However you SHOULD!
// Open subtitles
s1, _ := astisub.OpenFile("/path/to/example.ttml")
s2, _ := astisub.ReadFromSRT(bytes.NewReader([]byte("00:01:00.000 --> 00:02:00.000\nCredits")))
// Add a duration to every subtitles (syncing)
s1.Add(-2*time.Second)
// Fragment the subtitles
s1.Fragment(2*time.Second)
// Merge subtitles
s1.Merge(s2)
// Optimize subtitles
s1.Optimize()
// Unfragment the subtitles
s1.Unfragment()
// Write subtitles
s1.Write("/path/to/example.srt")
var buf = &bytes.Buffer{}
s2.WriteToTTML(buf)
Using the CLI
If astisub has been installed properly you can:
convert any type of subtitle to any other type of subtitle:
astisub convert -i example.srt -o example.ttml
fragment any type of subtitle:
astisub fragment -i example.srt -f 2s -o example.out.srt
merge any type of subtitle into any other type of subtitle:
astisub merge -i example.srt -i example.ttml -o example.out.srt
optimize any type of subtitle:
astisub optimize -i example.srt -o example.out.srt
unfragment any type of subtitle:
astisub unfragment -i example.srt -o example.out.srt
sync any type of subtitle:
astisub sync -i example.srt -s "-2s" -o example.out.srt
Features and roadmap
- [x] parsing
- [x] writing
- [x] syncing
- [x] fragmenting/unfragmenting
- [x] merging
- [x] ordering
- [x] optimizing
- [x] .srt
- [x] .ttml
- [x] .vtt
- [x] .stl
- [x] .ssa/.ass
- [x] .teletext
- [ ] .smi