🎬 Inspiration
This project was inspired by a real-world bottleneck in the dubbing industry. Every week, we receive subtitle files—usually in SRT format—that need to be transformed into dubbing scripts. That means assigning characters, adjusting lines for lip-sync, rewording literal translations, and exporting the result in specific formats. It’s a tedious, manual, and error-prone process. We wanted a tool that could streamline all of this and save teams hours of repetitive work.
🧠 What We Learned
Working on this tool taught us a lot—not only about building transcript-based interfaces, but also about the deep structure of dubbing scripts. We had to think about things like emotional tone, actor timing, and formatting constraints. We also learned how to design an intuitive UI for people who are not necessarily technical but need precise control over the content.
🛠️ How We Built It
We started by building a simple uploader for SRT files and videos. Then, we added a transcript editor where users can:
- Assign characters to each line using hotkeys
- Watch the scene while editing to maintain lip-sync accuracy
- Adapt literal translations into natural-sounding dialogue
- Split or merge subtitles as needed
- Apply strict client constraints (like 3 lines of max 13 characters)
- Export the final script in
.docx,.xlsx, or cleaned.srtformat
The entire tool runs locally, with no AI dependency, making it lightweight and privacy-friendly.
⚠️ Challenges We Faced
One of the main challenges was balancing flexibility and simplicity. We didn’t want a cluttered interface, but we needed to support advanced use cases—like handling multilingual projects or complex formatting rules. Another major challenge was ensuring timing accuracy and proper segmentation, especially when source subtitles were poorly translated or out of sync. We also had to handle edge cases, like missing timecodes or overlapping lines.
Despite those challenges, the tool now works smoothly and is already saving us hours of manual work per project.
Log in or sign up for Devpost to join the conversation.