Extensions2026Live
Sada
Arabic subtitles for English YouTube, translated on your device.
A Chrome extension that renders Arabic subtitles over English YouTube videos by translating the video's own captions entirely in the browser, using a bundled NLLB-200 model. No account, no cloud translation service, and caption text never leaves the machine.

Project detailsتفاصيل المشروع
- Role
- Solo
- Year
- 2026
- Status
- Live
- Built with
- JavaScript
- Manifest V3
- transformers.js
- NLLB-200
- WebGPU
- WASM
- Where to find it
- Source
What it is
Auto-translated captions on YouTube mean your viewing history goes to a translation service. Sada does the same job without that: the model and runtime download once at install, and after that the engine runs with remote models disabled.
At runtime the only network traffic is YouTube itself, meaning the video and its caption cues fetched same-origin, plus extension-local asset loads. Any request to a third-party origin would be a bug, and the privacy claim is written to be falsifiable rather than reassuring.
الترجمة التلقائية للتسميات على يوتيوب تعني ذهاب سجل مشاهدتك إلى خدمة ترجمة. يؤدي «صدى» العمل نفسه بلا ذلك: يُنزَّل النموذج وبيئة التشغيل مرة واحدة عند التثبيت، وبعدها يعمل المحرّك والنماذج البعيدة معطّلة.
أثناء التشغيل، حركة الشبكة الوحيدة هي يوتيوب نفسه، أي الفيديو وتسمياته من الأصل ذاته، إضافة إلى تحميل أصول محلية للإضافة. وأي طلب إلى أصل خارجي خلل، وصياغة ادعاء الخصوصية قابلة للتكذيب لا للطمأنة.
Challenges
A translation model in a browser tab
The problem
NLLB-200 is not a small model, and running it in the page means competing with the video for memory and compute on the same machine that is decoding 1080p.
What I did
The distilled 600M variant runs through transformers.js on WebGPU where available and falls back to WASM otherwise. Assets are fetched once at install rather than per session, so the cost is paid one time.
Subtitles have to keep up with the video
The problem
Translation takes time, and a subtitle that arrives after the line has been spoken is worse than none. The viewer reads one sentence while hearing the next.
What I did
Cues are translated ahead of the playhead rather than on demand, so the work happens during the gap before the line is needed instead of after it has passed.
Results
- 100% on-device translation with remote models disabled after install.
- Toggleable, resizable subtitle overlay on any English YouTube watch page.
- ترجمة على الجهاز بالكامل مع تعطيل النماذج البعيدة بعد التثبيت.
- طبقة ترجمة قابلة للتبديل وتغيير الحجم على أي صفحة مشاهدة إنجليزية في يوتيوب.