Niko McGrathSelected work, 2021–2026
← All work

No. 05 · Personal · 2026

LiteralSubs

An AI pipeline that turns anime into Japanese study decks and keeps the literal meaning that localized subtitles smooth over. The pilot show is Oregairu.

Role
Founder
Pilot
Oregairu
Status
In progress

LiteralSubs turns an anime episode into study material: Japanese subtitles, a literal English track, and Anki decks of the words worth learning first. Official subtitles are written for watching. They swap the Japanese for natural English, which is right for enjoying a show and wrong for learning from one, because you read fluent English and never see how the Japanese said it.

The pilot is Oregairu, whose narrator thinks in exactly the dense, idiom-heavy Japanese that smooth subtitles flatten most. The quickest way to show what LiteralSubs does is to use it, so what follows is a working demo built from the pipeline’s real output for one scene.

Three words, one scene

Study three words first

The method is simple: before an episode, learn a handful of its words. These three cards are from the real starter deck for season 2, episode 8. Flip each one, and mark it Good once it sticks.

Each card’s example is a different line from the same episode, with its own audio and still. For every word, the pipeline picks a line where that word is the only one a beginner wouldn’t know, so the rest of the sentence carries you to its meaning.

Then watch the scene

This is the end of Hachiman’s confession, thirty-one seconds of it, with Japanese subtitles only. The three words you just studied are underlined as they’re spoken.

You won’t catch everything, and you don’t need to. 俺, 本物 and 欲しい are enough to follow the line the whole season turns on: 俺は… 本物がほしい.

What the official subtitle says

Now the English subtitle from the official release. It’s good English: “I know that type of thing is not within my reach!”

It’s also written to replace the Japanese, not to explain it. Nothing in it shows that Hachiman said 手, “hand”, or which sound meant “reach”. When the English is this smooth, you read it and stop listening.

The literal track

LiteralSubs’ Natural track keeps the Japanese word choices and puts them in English order: “I also understand that my hand does not reach that kind of thing.” The idiom 手が届かない stays a hand that doesn’t reach, because that’s what it says.

Under the video, the line on screen is broken down word by word, so every English word points back at a sound you just heard.

Why literal

Here’s the last line in every track. The official subtitle is the better sentence. The literal one is the better lesson: “I want the real-thing” maps word for word onto 本物がほしい, so the meaning attaches to the Japanese instead of replacing it.

The Pure track goes further and keeps the Japanese order and particles: “real-thing-ga want”. It’s there for when you want to see exactly how a sentence is built. The arrows step through the scene’s other lines.

How that line was made

Everything in this demo came out of the pipeline, and this is the record for that one line. Sudachi splits it into words and a frequency list ranks them. Claude translates it against a house style guide and the show’s character list, and a validator checks the result against the guide’s rules.

A line with two new words makes a poor flashcard, so neither card uses it. That’s why 本物 and 欲しい were taught from other lines, and why this one could land when you heard it.

Oregairu 2 · Episode 8 Starter deck 300
New word

俺

Tap to flip

俺

おれ heiban

I, me · rough or arrogant

NaturalNo — if I didn't do even that much, I…

Pureno so-de-mo do not-ba I-wa…

  • 俺I · myself

比企谷八幡11:21.26JPDB rank #4441T

0:00 / 0:31
English LiteralSubs
From your deck 俺本物欲しい
Japanese
Official
Natural
Pure

Oregairu Zoku, episode 8. © Wataru Watari, Shogakukan / Oregairu Zoku production committee. Used for commentary.

本物がほしい line 242 · 18:26.76
  1. Ingestpysubs2
    18:26.76 → 18:27.66 比企谷八幡
  2. TokenizeSudachi
    本物名詞が助詞ほしい形容詞 → 欲しい
  3. Filterrules
    本物 cardが grammarほしい card
  4. EnrichJPDB
    本物 rank #1473 · 欲しい #344
  5. Scorecounts
    In this episode: 本物 ×4 · 欲しい ×5
  6. Stratifycutoffs
    Sub-N5 assumes the top 300 words are known, so both are new: a 2T line
  7. TranslateClaude

    “I want the real-thing.”

    本物real-thingが-gaほしいwant
  8. Validatechecks
    0 issues segment shape · every token covered · idioms kept literal · honorifics kept · plurals kept · not over-inferred · names canonical
  9. Renderpysubs2
    NaturalI want the real-thing.Purereal-thing-ga wantGlosslit. 'true-thing' (本 true/origin + 物 thing); the genuine article, as opposed to an imitation. Hachiman's key thematic line in the series; 欲しい is an i-adjective meaning 'desirable'; the thing wanted takes が, so it is grammatically the subject of the desire ('the real-thing is desirable [to me]')
  10. Build decksgenanki
    A 2T line is no word's example. 本物 is taught from 「そうでなくては本物じゃない」 · 欲しい is taught from 「ほしいものがあったから」

One model call in a deterministic pipeline

LiteralSubs has ten stages, and only one of them calls a model. Ingesting, tokenizing, filtering, ranking, scoring and sorting words into tiers are fast, local and deterministic, and so are rendering and deck building. The translation is the one judgement no rule set can fake, so that’s the step that goes to Claude.

The heavy context, a literal-translation style guide plus the show’s full character list, is sent once and prompt-cached, so every line after the first reuses it. The model can be swapped between Opus, Sonnet and Haiku to trade quality against cost.

Vocabulary is split into five decks by how common each word is, from Sub-N5 to N2+, so a learner only studies what’s within reach. The lower tiers teach the word itself; the upper ones teach it inside the show’s own sentence.

The pipeline now runs behind a small local web app built with FastAPI: upload an episode’s subtitles and video, edit the show’s character list, build a season, and download the decks. A validation gate stops a build before the decks if any episode has errors.

LiteralSubs ships text and decks, never video. It owns the curation and the literal translation; Migaku and Anki already handle playback and spaced repetition.

What I cut

I’m learning Japanese the immersion way, and the same frustration kept coming back: the subtitles I was learning from were lying to me a little. Not wrong, just smoothed. I wanted to see the real shape of the language while I watched, so I built the thing I wanted.

The interesting part wasn’t the model. It was defining what “literal but readable” means precisely enough to enforce, turning that into a style guide a model could follow, and wrapping one model call in a pipeline that checks and packages its output, so the result is consistent instead of impressive once.

It also taught me where not to be clever. An earlier version kept the Japanese word order and used a hand-written heuristic to rearrange the English, and it made every line worse. Cutting it, and letting the model write English order directly while keeping the literalness in the word choice, is the version that works.