Movie Subtitles
Custom subtitles for any video streaming platform, built for language learners.
This Chrome extension was the project that helped me land my first developer job. It solves a real problem I faced as a language learner: the lack of good subtitle options and smart controls on major streaming platforms.
Many streaming services only offer subtitles in a limited number of languages. This extension fills that gap by letting users upload their own subtitle files and display them over any video on platforms like Netflix, YouTube, Amazon Prime, and Twitch.
At the time, AI tools like Copilot or Cursor didn't exist—I had to figure out everything on my own, from the UI to the encoding logic. Through this process, I was able to demonstrate real programming skills and ship a working, helpful product.
Custom Subtitles in 40+ Languages
Upload external subtitles in your preferred language with tools to adjust timing for perfect sync.
Replay by Sentence, Not Time
Rewind to the beginning of the current subtitle line instead of jumping back 10 seconds.
Hover-to-Pause
Video automatically pauses when you hover over subtitles, giving you time to read and translate.
Clickable Subtitle Text
Select and copy subtitle text for quick translation with tools like Google Translate.
Skip Silent Sections
Shows pauses between dialogues so you can skip silence and focus on learning from speech.
Universal Platform Support
Works on Netflix, YouTube, Amazon Prime, Twitch, and virtually all video platforms.
As an avid language learner myself, I built this extension to solve my own frustrations. I often rewatch movies in my target languages and wanted to skip long silences, focus on dialogue, and replay specific lines without jumping back arbitrary time intervals.
The biggest frustration was on streaming platforms — if I missed a word, the only option was to jump back 10 seconds, which was often too much. I'd end up watching the same scene repeatedly just to catch a single sentence. This extension fixes that by letting you rewind to the exact beginning of the current subtitle line.
Early in development, I struggled with loading subtitle files in various languages due to encoding issues. I couldn't find any npm package that reliably detected both language and encoding, and I wasn't yet familiar with AWS or GCP.
So I created my own package: detect-file-encoding-and-language. It supports 40+ languages and encodings, and I built it specifically to power this extension. Ironically, this "side project" now gets 180,000 monthly downloads compared to the extension's 8,000 active users!
React + TypeScript
Started in React.js, then transitioned to TypeScript as part of my learning journey to write more robust and maintainable code.
Chrome Extension APIs
Used to interact with video players, control playback, overlay subtitles, and handle user input across different streaming platforms.
Custom Encoding Detection
Built my own language and encoding detection system when existing solutions didn't meet my needs.
Try It Today
Join 8,000+ users who are already learning languages more effectively with custom subtitles.