Repository navigation
feat: support .ass subtitle files - #70
Merged
Merged
Conversation
Discover .ass subtitles alongside .srt and sync them with engines that support the format. Outputs keep the input extension (e.g. movie.en.ffsubsync.ass) and generated .ass outputs are never reprocessed. ffsubsync and alass handle .ass natively; autosubsync only reads SRT, so it is skipped for .ass files with a clear log message instead of failing. Closes #24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #24
Summary
Adds support for Advanced SubStation Alpha (
.ass) subtitles alongside.srt..assfiles next to videos are now picked up (findAllSrtFiles), including language filtering (movie.en.ass) and video matching.movie.en.ass→movie.en.ffsubsync.ass/movie.en.alass.ass..assoutputs (*.ffsubsync.ass, etc.) are never treated as inputs, and an.assfile counts as already synced once every enabled engine that supports.asshas produced output.src/subtitleFormats.ts):.srt+.ass.srt+.ass(alass-cli lists.srt,.ass/.ssa,.idx,.sub).srtonly (it parses via its own SRT reader), so it is skipped for.asswith a log line like⊘ autosubsync skipped: Skipping autosubsync for movie.en.ass - autosubsync does not support .ass subtitles. Skips don't count toward the failure tracker.INCLUDE_ENGINES=autosubsync), the file is ignored during the scan with a summary log line..assin its filename cleanup, so no UI changes were needed..asssupport and the per-engine support table (prettier, run by the pre-commit hook, also reformatted the README tables).Note: extension matching is case-insensitive, and outputs use a lowercase extension.
Testing
npm run lint: passesnpm test: 9 suites / 24 tests pass (6 new suites:subtitleFormats,helpers(buildOutputPath),findAllSrtFiles,findMatchingVideoFile,generateAutosubsyncSubtitles(skip for.ass),generateFfsubsyncSubtitles(.ass→.asscommand))npm run build: passes