MCPcopy Index your code
hub / github.com/dnbn/submerge

github.com/dnbn/submerge @submerge-root-1.9.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release submerge-root-1.9.2 ↗ · + Follow
1,000 symbols 2,051 edges 106 files 181 documented · 18%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

submerge

Submerge is a tool that aims to merge two subtitles into one ASS displaying both: one at the top of the screen, the other at the bottom. It can also be used to convert SRT to ASS or ASS to SRT, or to change the encoding of a file.

The project is made up of three sub-project : * submerge-api : a library to manage SRT and ASS subtitles * submerge-web : the website available at www.submerge.ovh * submerge-cli : a command line application with the exact same features as the website, see how to use it here

Basic use of submerge-api

<dependency>
  <groupId>com.github.dnbn.submerge</groupId>
  <artifactId>submerge-api</artifactId>
  <version>1.9.1</version>
</dependency>

Parsing ASS subtitles:

File file = new File("subtitle.ass");

ASSParser parser = new ASSParser();
ASSSub subtitle = parser.parse(file);

System.out.println(subtitle.toString());

Parsing SRT subtitles:

File file = new File("subtitle.srt");
SRTParser parser = new SRTParser();

SRTSub subtitle = parser.parse(file);

System.out.println(subtitle.toString());

Using interfaces:

File file = new File("subtitle.srt");
String extension = FilenameUtils.getExtension(file.getName());

SubtitleParser parser = ParserFactory.getParser(extension);
TimedTextFile subtitle = parser.parse(file);

System.out.println(subtitle.toString());

ASS to SRT:

File file = new File("subtitle.ass");

ASSParser parser = new ASSParser();
ASSSub ass = parser.parse(file);

SubmergeAPI api= new SubmergeAPI();
SRTSub srt = convert.toSRT(ass);

System.out.println(srt.toString());

SRT (or ASS) to ASS:

File file = new File("subtitle.srt");
String extension = FilenameUtils.getExtension(file.getName());

SubtitleParser parser = ParserFactory.getParser(extension);
TimedTextFile subtitle = parser.parse(file);

SimpleSubConfig config = new SimpleSubConfig();
config.setSub(subtitle);

ASSSub ass = new SubmergeAPI().toASS(config);

System.out.println(ass.toString());

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 728
Function 172
Class 82
Enum 10
Interface 8

Languages

Java83%
TypeScript17%

Modules by API surface

submerge-web/src/main/webapp/resources/default/1_9/js/jquery/jquery-1.11.3.js86 symbols
submerge-web/src/main/webapp/resources/default/1_9/js/jquery/jquery-1.11.3.min.js75 symbols
submerge-api/src/main/java/com/github/dnbn/submerge/api/subtitle/ass/V4Style.java50 symbols
submerge-api/src/main/java/com/github/dnbn/submerge/api/subtitle/ass/ScriptInfo.java37 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/entity/MergeHisto.java28 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/UserBO.java28 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/entity/DualSubtitleConfig.java26 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/entity/User.java25 symbols
submerge-cli/src/main/java/com/github/dnbn/submerge/cli/CliParser.java25 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/DualSubtitleConfigBO.java24 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/entity/SubtitleProfile.java23 symbols
submerge-web/src/main/java/com/github/dnbn/submerge/web/model/SubtitleProfileBO.java22 symbols

For agents

$ claude mcp add submerge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page