Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-astisub

go-astisub

MITGo

A Go library and CLI for parsing, writing, syncing, merging, and converting subtitle files across multiple formats.

GitHubGitHub
695 stars125 forks0 contributors

What is go-astisub?

astisub is a Go library and command-line tool for manipulating subtitle files. It enables parsing, writing, syncing, merging, and converting between popular subtitle formats like SRT, TTML, WebVTT, and ASS. It solves the problem of handling subtitle processing programmatically within Go applications or via CLI workflows.

Target Audience

Go developers building media processing pipelines, video editing tools, or subtitle conversion utilities, as well as users needing a CLI for batch subtitle operations.

Value Proposition

It offers a pure-Go, dependency-free solution with extensive format support and a rich set of manipulation features, making it a versatile alternative to fragmented or language-specific subtitle tools.

Overview

Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.)

Use Cases

Best For

  • Converting subtitle files between formats like SRT to WebVTT
  • Syncing subtitle timing offsets in video post-production
  • Merging multiple subtitle tracks into a single file
  • Programmatically processing subtitles in Go media applications
  • Batch processing subtitle files via CLI automation
  • Correcting subtitle timing with linear adjustment algorithms

Not Ideal For

  • Real-time video players requiring graphical subtitle rendering with advanced animations
  • Teams working in non-Go ecosystems needing subtitle processing libraries
  • Projects specifically dependent on .smi subtitle format support (not yet implemented)
  • Users seeking a GUI-based subtitle editor with drag-and-drop functionality

Pros & Cons

Pros

Broad Format Compatibility

Supports parsing and writing across seven subtitle formats including SRT, TTML, VTT, and ASS, covering most industry standards as listed in the README.

Comprehensive Manipulation Features

Provides functions for syncing, merging, fragmenting, optimizing, and linear correction, enabling end-to-end subtitle processing with clear examples in the code snippets.

Standalone CLI Tool

Includes a command-line interface for direct file conversion and operations like merging without writing Go code, useful for automation and batch processing.

Go-Native and Dependency-Free

Built in pure Go with no external dependencies, ensuring easy integration into Go projects and reliable performance, backed by test badges in the README.

Cons

Missing .smi Format Support

The library does not yet support .smi subtitle files, as indicated in the roadmap with '[ ] .smi', limiting compatibility for specific use cases requiring this format.

Error Handling Overhead

Code examples in the README omit error handling for readability, requiring developers to implement proper error management, which can lead to bugs if overlooked in production.

CLI Requires Go Installation

Using the standalone CLI necessitates having Go installed via 'go install', which may be a barrier for users unfamiliar with Go or preferring binary distributions without dependencies.

Frequently Asked Questions

Quick Stats

Stars695
Forks125
Contributors0
Open Issues5
Last commit12 days ago
CreatedSince 2016

Tags

#video-subtitles#media-automation#go-library#cli-tool#stl#golang-library#golang#srt#file-conversion#go

Built With

G
Go

Included in

Go169.1k
Auto-fetched 14 hours ago

Related Projects

goavgoav

Golang bindings for FFmpeg (This repository is no longer maintained)

Stars2,137
Forks360
Last commit4 years ago
gmfgmf

Go Media Framework

Stars931
Forks171
Last commit3 years ago
gortsplibgortsplib

RTSP client and server library for the Go programming language

Stars909
Forks263
Last commit2 days ago
go-astiavgo-astiav

Golang ffmpeg and libav C bindings

Stars707
Forks70
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub