再点火 (Saitenka) — learn Japanese from the video you're already watching
Saitenka turns mpv into an immersion workstation: Japanese subtitles get FSRS-aware word coloring, hovering a word opens a Yomitan-style multi-dictionary tooltip, and one key mines the sentence — audio, screenshot, reading, pitch, frequency — straight into Anki. Everything is drawn into mpv's own video surface, so there's no second window and none of the Windows overlay/fullscreen breakage that plagues external overlays.
- 再点火 = "re-ignition" — built to make picking study back up frictionless after a long break.
- Local-first and grounded: readings and pitch always come from dictionaries, never a language model.
What it does
- FSRS-aware subtitle coloring — an optional copy of Anki's database distinguishes learning, young, mature-known, and forgotten words (so "known" means actually remembered right now), and N+1 sentences — exactly one unknown word, the ideal thing to mine — are highlighted.
- Multi-dictionary tooltip on hover — ordered definitions, ruby, frequency pills, pitch-accent, clickable cross-references, in-tooltip word scanning, wildcard search. Imports your Yomitan dictionaries.
- One-key + bulk Anki mining via AnkiConnect — sentence audio, clean screenshot, reading, glossary, frequency, with dedup and FSRS-aware tagging.
- No second window — the tooltip, colored subs, and mining UI composite into mpv's OSD over JSON-IPC: one surface, airspace-safe, fullscreen-safe, cross-platform (Linux · macOS · Windows).
Install
The recommended install is the self-bootstrapping release bundle (it also sets up mpv + ffmpeg and the auto-start mpv plugin) — see the Quick start.
For a pip/uv-native install of just the Python package:
uv tool install saitenka # or: pipx install saitenka
saitenka setup # installs mpv/ffmpeg + the auto-start plugin, writes config
saitenka run video.mkv # hover a word → tooltip; Ctrl+m → mine
The optional inflection-chain display is a GPL-3.0 add-on (derived from Yomitan); the core is
Apache-2.0. A [full] install is therefore GPL-3.0 — see
LICENSING.md.
Full documentation
Everything — how it works, how it compares, where it fits in a media-server setup, requirements, and the feature tour — lives in the documentation site.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file saitenka-2.0.0.tar.gz.
File metadata
- Download URL: saitenka-2.0.0.tar.gz
- Upload date:
- Size: 13.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa6fe4788ec69d844336f8bad769af4d4b40ec0ae847ff4bece057a56389a703
|
|
| MD5 |
cec3aa37abc757c39786b10c28d12086
|
|
| BLAKE2b-256 |
57368e801703c578c89e3e6da50dc4ed6f1520f4ec5bad5487c8f02a85b18a99
|
Provenance
The following attestation bundles were made for saitenka-2.0.0.tar.gz:
Publisher:
release.yml on serjflint/saitenka
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
saitenka-2.0.0.tar.gz -
Subject digest:
fa6fe4788ec69d844336f8bad769af4d4b40ec0ae847ff4bece057a56389a703 - Sigstore transparency entry: 2384360696
- Sigstore integration time:
-
Permalink:
serjflint/saitenka@a94675c095fa6bd558bdd85bc7fa5f2bf8c8aa4a -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/serjflint
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a94675c095fa6bd558bdd85bc7fa5f2bf8c8aa4a -
Trigger Event:
push
-
Statement type:
File details
Details for the file saitenka-2.0.0-py3-none-any.whl.
File metadata
- Download URL: saitenka-2.0.0-py3-none-any.whl
- Upload date:
- Size: 8.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2455aa4fe2eb1d484a6c677c525f8df2b9e086f90ed46ba4276b9d1324f299eb
|
|
| MD5 |
08f525ca9dd96b91ee9d1bdae81f0e59
|
|
| BLAKE2b-256 |
adf8668c05a70d74216fa31faed008599a38eb086b17c4b05d8ac0dfab3f9f83
|
Provenance
The following attestation bundles were made for saitenka-2.0.0-py3-none-any.whl:
Publisher:
release.yml on serjflint/saitenka
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
saitenka-2.0.0-py3-none-any.whl -
Subject digest:
2455aa4fe2eb1d484a6c677c525f8df2b9e086f90ed46ba4276b9d1324f299eb - Sigstore transparency entry: 2384361399
- Sigstore integration time:
-
Permalink:
serjflint/saitenka@a94675c095fa6bd558bdd85bc7fa5f2bf8c8aa4a -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/serjflint
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a94675c095fa6bd558bdd85bc7fa5f2bf8c8aa4a -
Trigger Event:
push
-
Statement type: