Learnarr

Learn a language from the shows on your server

Learnarr is a free, self-hosted companion for Plex and Jellyfin. Pick an episode, and it shows how much of the dialogue you already understand, suggests the words worth learning, and turns them into flashcards built around the real lines you'll hear.

Open source, GPL-3.0. One Docker container. No account with us.

How it works

  1. 1

    Pick an episode

    Browse your Plex or Jellyfin library. Learnarr reads the episode's subtitle and tells you how much of it you already know.

  2. 2

    Choose your words

    Your AI provider suggests the words worth learning at your level. Keep the ones you want, mark the ones you know.

  3. 3

    Study, then watch

    Review the cards on your phone with spaced repetition. When the episode comes on, you'll hear them.

Features

Your library, your subtitles

Uses the subtitle tracks already on your media server. When there are none, it downloads one from OpenSubtitles.com with each person's own free account.

"% you know" per episode

Every word is matched to its dictionary form and checked against what you know, so you can find shows at your level.

Words worth learning

Suggestions for your level, not every word in the script. Learn them, mark them known, or tap any word in the transcript.

Study anywhere

Spaced-repetition flashcards made for a phone, with the real line from the episode on every card. Or push them to Anki.

Bring your own AI

OpenAI, Claude, Gemini, OpenRouter, Groq, Mistral, or a local model through Ollama or LM Studio. Run it locally and nothing leaves your network.

For the household

One server, an account for everyone, each with their own languages, level and cards. The admin sets things up once.

Install

One container, one /config folder. Start it, open http://<your-server>:7979, and the setup wizard connects your media server and AI provider.

services:
  learnarr:
    image: ghcr.io/jakubsz123/learnarr:latest
    container_name: learnarr
    ports:
      - "7979:7979"
    volumes:
      - ./config:/config
    environment:
      - PUID=1000
      - PGID=1000
    restart: unless-stopped

Save it as docker-compose.yml and run docker compose up -d. Images for amd64 and arm64. Configuration, updates and backups are in the wiki.

Questions

Is it free?

Yes. Learnarr is open source under GPL-3.0. The only cost is your AI provider, if you use a paid one.

Which languages does it support?

Any language your subtitles are in. "% you know" works for 52 of them, from Afrikaans to Vietnamese. See the list.

Does my data leave my server?

Only the subtitle text of an episode you pick words for, sent to the AI provider you chose. With a local model, nothing leaves your network.

Do I need Plex?

Plex or Jellyfin. Learnarr works from the library you already have.

Why does it work?

You learn most from what you can mostly follow, and you remember what you study at growing intervals. Learnarr measures the first and schedules the second. The method, with the research behind it.