Inspiration
Millions of students learn in a language that isn't their own. They follow lectures on YouTube or record their classes, but half of the content slips away because it's delivered in English or French while they think in Wolof, Arabic, Spanish, or Hindi. Taking notes while fighting the language is nearly impossible — and rewatching a 45-minute lecture three times doesn't scale. I wanted to give every student the same superpower: understand any lecture, in their own language, in minutes.
What it does
VidNotes turns any lecture video into a complete, exam-ready study pack. You paste a YouTube link (or upload a video), pick the language you actually think in, and about two minutes later you get back three things:
- Subtitled video — clean, readable subtitles burned into the video, translated into your language.
- Full transcript — timestamped and searchable.
- Study notes (PDF) — an ultra-detailed, sectioned summary with key concepts, key takeaways, and a self-quiz — entirely in your chosen language.
It supports 60 languages, including 38 African languages (Wolof, Yoruba, Swahili, Fon…) that almost no other tool covers.
How I built it
- Speech-to-text: Whisper
large-v3-turbovia Groq (a 15-min lecture transcribes in seconds), with a localfaster-whisperfallback so it never goes down. - Translation & study notes: Google Gemini, using a two-phase prompting strategy — first build a glossary of the lecture's key terms, then translate and summarize in chunks for consistency — with every heading localized into the target language.
- Subtitles: FFmpeg + ASS styling with Noto fonts, covering Arabic (right-to-left), Ethiopic, and special characters like Fon's ɛ ɔ ɖ; long lines are auto-split so nothing is ever cut.
- Notes → PDF: Markdown → HTML → headless-Chrome PDF, with RTL support.
- Backend: Python + Flask + gunicorn on a Linux VPS behind Cloudflare, with a per-IP rate-limiter, concurrency caps, and a disk safety net.
Challenges I faced
- Speed: local transcription took minutes; moving speech-to-text to Groq cut a 15-minute lecture to seconds.
- African languages & scripts: getting Arabic RTL, Ethiopic, and Fon's special characters to render correctly in burned subtitles took careful font work (Noto) and subtitle-splitting logic.
- Consistency of translation: a glossary-first, chunked prompting approach keeps terminology stable across a long lecture.
- Abuse & cost control: rate limits, concurrency caps, and a 15-minute processing cap keep the free tier stable for everyone.
What I learned
How to orchestrate several AI models (speech, translation, summarization) into one reliable pipeline, how much prompt design matters for consistent multilingual output, and how to harden a real service (timeouts, fallbacks, rate limits) so it survives real users.
What's next
Live lecture mode (real-time transcription), audio dubbing so students can listen in their language, a shared class library of study packs, and pushing coverage toward Africa's 2,000+ languages.
Log in or sign up for Devpost to join the conversation.