Foundry X

Digital · March 19, 2026

Learn languages with movies: My Dutch learning partner

For proficient language learners who can perform basic reading, writing, but struggle with listening comprehension and speaking efficiency, an AI-powered Dutch learning partner that turns movies into interactive lessons—clip by clip, quiz by quiz, with real progress tracking. You can build on top to adapt to the language of your choice.

The Spark

I have been passively learning Dutch for a few years. While I can read Dutch texts, listening comprehension remained a challenge—especially with fast speech or different accents. That’s the reality of language learning: real-world listening is key to fluent speaking.

I wanted to learn from movies I enjoy, not from generic content. Unable to find an app that fit this workflow cleanly, I built my own: an AI-powered Dutch learning partner that turns any movie into an interactive lesson. Each session is 5 minutes per clip—focused, progressive, and pressure-free. Progress only saves when you complete a session, which keeps you accountable.

This is designed for intermediate learners who want to improve listening and speaking in an engaging, authentic way.


The Blueprint

How do you transform a movie into a language course?

  1. Input: A film (MKV) + its SRT subtitles
  2. Pipeline: AI splits the movie, extracts vocabulary, generates quizzes and cloze tests, tracks progress
  3. Output: Interactive Streamlit app—study vocab, watch clips, take quizzes, fill blanks, see mastery grow

Technical Architecture:

  • Data Layer: JSON files for vocab, quizzes, and progress
  • AI Layer: DeepSeek API for vocabulary extraction and quiz generation
  • Automation Layer: FFmpeg for video clipping and subtitle conversion
  • UI Layer: Streamlit orchestrates the workflow and tracks progress

The Flow:

┌─────────────┐
│   Prep      │  - Upload folder with .mkv + .srt
│             │  - Split into 5-min clips (FFmpeg)
│             │  - Generate vocab, quiz, cloze per segment (DeepSeek)
└──────┬──────┘


┌─────────────┐
│   Learn     │  1. Study: Review vocab (word, translation, example)
│             │  2. Watch: 5-min clip (subtitles OFF, toggle ON to rewatch)
│             │  3. Quiz: 10 MCQs (auto-generated, local grading)
└──────┬──────┘

       ├── Score < 8/10 → Rewatch (subtitles ON) → Retry Quiz

       ▼ Score ≥ 8/10
┌──────────────────┐
│ Semantic Mastery │  - Watch clip again
│  (Cloze Test)    │  - Fill 10 blanks from memory
│                  │  - 80% pass threshold
└──────┬───────────┘

       ├── Score < 80% → Retry Cloze

       ▼ Score ≥ 80%
┌─────────────┐
│  Next Clip  │  Progress advances
└─────────────┘

The Build

Constraint: Simple setup—just Python, FFmpeg, and an API key.

Tech Stack:

  • Streamlit — UI and workflow orchestration
  • DeepSeek API — Vocabulary extraction, quiz generation
  • FFmpeg — Video clipping
  • Python — Data handling, orchestration
  • JSON — Progress and vocab storage

Visual Strategy:

  • Native subtitle overlay (WebVTT)
  • Segment-by-segment progress tracker
  • Mastered/enhancement word lists

Lesson Creation Steps:

  1. Clip movie into 5-min segments; convert subtitles to WebVTT
  2. Extract vocab and generate quizzes via DeepSeek
  3. Study vocab → watch clip (subtitles OFF/ON) → take quiz
  4. Cloze test for semantic mastery
  5. Track mastered words and completed segments

The MVP Release

Live Demo

Dutch Learning Partner — App Walkthrough

Learning Retro

What Surprised Me

  1. Real content drives motivation — Watching actual films made learning feel authentic and fun
  2. AI handles the heavy lifting — DeepSeek extracts vocab and generates quizzes with minimal effort
  3. Progress tracking keeps you accountable — Seeing mastered words and segments motivates continued learning
  4. Simplicity wins — No complex setup, just Python, FFmpeg, and an API key

What Was Hard

  1. Subtitle conversion — Ensuring SRT → WebVTT worked reliably for native overlays
  2. Cloze data quality — Multi-word phrases sometimes didn’t appear verbatim in the transcript
  3. Large video files — GitHub can’t host clips; only code and data are synced

Key Wins

✅ Built a real, usable language app
✅ Automated lesson creation from any film
✅ Progress tracking and mastery lists
✅ Low cost: LLM calls for a 90-min movie cost 0.25 RMB (€0.03)


Next Phase

Interested in expanding to other languages? Reach out and I can share the repo so you can continue building your own language trainer.