{"id":47159667,"url":"https://github.com/brenoaqua/yomipv","last_synced_at":"2026-04-09T05:01:53.112Z","repository":{"id":338727454,"uuid":"1154925232","full_name":"BrenoAqua/Yomipv","owner":"BrenoAqua","description":"Yomipv integrates Yomitan with MPV, letting you look up Japanese terms and create Anki cards directly from media without leaving the player.","archived":false,"fork":false,"pushed_at":"2026-04-06T20:48:55.000Z","size":15595,"stargazers_count":27,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-06T22:23:29.464Z","etag":null,"topics":["anki","ankiconnect","flashcards","japanese","japanese-learning","language-learning","mpv","mpv-script","sentence-mining","yomichan","yomitan"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrenoAqua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-10T23:33:19.000Z","updated_at":"2026-04-06T20:49:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/BrenoAqua/Yomipv","commit_stats":null,"previous_names":["brenoaqua/yomipv"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/BrenoAqua/Yomipv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenoAqua%2FYomipv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenoAqua%2FYomipv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenoAqua%2FYomipv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenoAqua%2FYomipv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrenoAqua","download_url":"https://codeload.github.com/BrenoAqua/Yomipv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenoAqua%2FYomipv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31586410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anki","ankiconnect","flashcards","japanese","japanese-learning","language-learning","mpv","mpv-script","sentence-mining","yomichan","yomitan"],"created_at":"2026-03-13T02:38:31.381Z","updated_at":"2026-04-09T05:01:53.105Z","avatar_url":"https://github.com/BrenoAqua.png","language":"Lua","readme":"# Yomipv\n\nYomipv is a script that combines Yomitan with MPV to lookup words and create Anki cards from Japanese media without leaving the player and breaking immersion.\nThere's no need to alt-tab between MPV and Yomitan while mining or doing word lookups.\nIt was designed and pre-configured to be used with [Senren Note Type](https://github.com/BrenoAqua/Senren), but it should work with any note type.\n\nhttps://github.com/user-attachments/assets/8ff6f71a-c961-4da1-bf9f-b1b2c00143f8\n\n## Requirements\n\n- **[MPV](https://mpv.io/)** (0.33.0 or higher)\n- **[FFmpeg](https://ffmpeg.org/)** (Required for media extraction, falls back to MPV's internal encoder if not found)\n- **[Anki](https://apps.ankiweb.net/)** with **[AnkiConnect](https://ankiweb.net/shared/info/2055492159)**\n- **[Yomitan](https://yomitan.wiki/)** and **[Yomitan Api](https://github.com/yomidevs/yomitan-api)**\n- **curl** (Pre-installed on most systems, used for API requests)\n- **[Node.js](https://nodejs.org/)** (Only required if installing from source or contributing)\n\n## Installation\n\n### Recommended\n1. Download the [Windows Zip](https://github.com/BrenoAqua/Yomipv/releases/download/v0.4.1/win-yomipv-v0.4.1.zip), [Linux Zip](https://github.com/BrenoAqua/Yomipv/releases/download/v0.4.1/linux-yomipv-v0.4.1.zip), or [macOS Zip](https://github.com/BrenoAqua/Yomipv/releases/download/v0.4.1/mac-yomipv-v0.4.1.zip)\n2. Extract the contents directly into your MPV directory:\n    - Windows: `%APPDATA%/mpv/`\n    - Linux/macOS: `~/.config/mpv/`\n\n### Alternative (Requires Node.js)\n1. **Clone the repository** to your MPV directory and install dependencies **(make sure you have Node.js installed)**:\n   - Windows: `%APPDATA%/mpv/`\n     ```\n     git clone https://github.com/BrenoAqua/Yomipv \u0026\u0026 xcopy /e /i /y Yomipv . \u0026\u0026 rd /s /q Yomipv \u0026\u0026 cd scripts\\yomipv\\lookup-app \u0026\u0026 npm install\n     ```\n   \n   - Linux/macOS: `~/.config/mpv/`\n     ```\n     git clone https://github.com/BrenoAqua/Yomipv \u0026\u0026 cp -rn Yomipv/* . \u0026\u0026 rm -rf Yomipv \u0026\u0026 cd scripts/yomipv/lookup-app \u0026\u0026 npm install\n     ```\n\n## Usage\n\n**Configure Settings**:\n   - Open `script-opts/yomipv.conf` and update your Anki deck/note type names and field mappings\n\n**External Services**:\n   - Ensure Anki is running with AnkiConnect enabled\n   - Ensure Yomitan Api is running and the browser where the Yomitan extension is installed is open, and you have dictionaries installed\n\n### Basic Workflow\n\n1. Open a video with Japanese subtitles in MPV\n2. Press **`c`** or **move your mouse after an idle period** (if `selector_trigger_on_mouse_move` is enabled) to activate the word selector\n3. Navigate with **mouse hover** or **arrow keys** to select a word\n   - **`Shift+LEFT`** / **`Shift+RIGHT`**: Expand the current selection to include the previous/next subtitle line\n4. Press **`Enter`**, **`c`**, or **left-click** to create an Anki card\n\n### Advanced Features\n\n- **Append Mode**: Select multiple subtitle lines before exporting\n  - Press **`Shift+C`** to enter append mode, **`c`** to start the word selector, or **`Shift+C`** again to cancel\n\n- **Subtitle Substitution \u0026 Colorization based on anki card states**:\n  - Press **`Shift+S`** to toggle between native MPV subtitles and Yomipv's colorized tokens\n  - Enable `substitute_mpv_subtitles` in `yomipv.conf` to start with it enabled\n  - Words are colorized based on their Anki card metadata:\n    - **Status**: New, Learning, Review, Suspended\n    - **Intervals**: Reflects how well a word is known (affects color shades)\n    - **Requirement**: Press **`Shift+B`** to build/sync the local Anki database first before these statuses can be displayed for your existing collection\n  - **Instant Feedback**: When you create a card, the word is immediately added to the local database and highlighted (red) in the current subtitle\n  - See [docs/colorizer.md](docs/colorizer.md) for full details\n\n- **Primary Subtitle Selection**:\n  - Automatically select and load primary subtitles based on preferred languages\n  - Scans the video directory for matching external subtitle files (`.ass`, `.srt`)\n  - Configure `primary_sub_lang` in `yomipv.conf` (defaults to `ja,jpn`)\n\n- **Secondary Subtitle**:\n  - Automatically select and cycle through secondary subtitles based on preferred languages\n  - **`Ctrl+j`** / **`Ctrl+Shift+J`**: Cycle through available secondary subtitle tracks\n  - Configure `secondary_sub_lang` in `yomipv.conf` (defaults to `en,eng`)\n  - Secondary subtitles are shown only on hover. Set `secondary_on_hover=no` to keep them always visible\n\n- **Lookup App**: Opens a popup window powered by your Yomitan dictionaries, showing definitions, pitch accents, and frequencies\n  - Press **`Ctrl+c`**: after selecting a word to open the lookup app manually. It opens automatically on hover by default\n  - **Right-click** on the word in the selector to lock the lookup\n  - **Click any mora** in the header to narrow the lookup to a sub-word\n  - **Right-click the header** to go back to the previous word\n  - **Pitch Accents**: Toggle `lookup_show_pitch_accents` in `yomipv.conf`\n  - **Frequencies**: Toggle `lookup_show_frequencies` in `yomipv.conf`\n  - See [docs/lookup-app.md](docs/lookup-app.md) for full details\n\n- **Mora-level Navigation**:\n  - When `selector_mora_hover` is enabled, hovering over a word narrows the lookup to start from mora under your cursor instead of the full word\n  - **`s`**: Toggle mora-level keyboard navigation (left/right moves by mora instead of word)\n\n- **Persistent Mode**:\n  - Toggle persistent mode to export multiple words from a single subtitle selection without closing the selector\n  - Press **`v`** to toggle; the selection color changes to indicate it's active\n  - Confirming a selection exports the card but keeps the selector open for the next pick\n\n- **Auto-Trigger Selector**:\n  - Automatically open the selector by moving the mouse after it has been idle\n  - **`z`**: Toggle this behavior on/off\n  - Enable `selector_trigger_on_mouse_move` and customize `selector_trigger_mouse_idle_time` in `yomipv.conf`\n\n- **Manual Timing \u0026 Media**:\n  - **`q`** / **`w`**: Set a custom start/end time for audio and picture extraction\n  - Unset start or end times default to the subtitle boundaries when opening the selector\n  - **`e`**: Clear manual timings\n  - **`g`**: Toggle between static and animated picture capture for Anki cards\n\n- **History Panel**:\n  - Press **`a`**: to toggle the history panel\n  - Seek to a specific subtitle's timestamp by clicking on it (when selector is closed)\n  - Click on previous/next lines to expand the subtitle lines (when selector is open)\n  - **`Alt+LEFT`** / **`Alt+RIGHT`**: Seek to the previous/next subtitle\n\n- **Subtitle Filtering**:\n  - Automatically filters non-dialogue text (signs, drawings, and formatting tags) from the OSD display\n  - Can be toggled with `subtitle_filter_enabled` in `yomipv.conf`\n\n- **AniList Tracking**: Integrates AniList with Yomipv, enabling automatic episode progress updates\n  - **`Ctrl+a`**: Trigger the authentication and setup flow (opens a terminal to capture your token)\n  - See [docs/anilist_tracking.md](docs/anilist_tracking.md) for full details\n\n- **Auto-Updater**: Keeps Yomipv updated to the latest version\n  - Press **`shift+U`** in MPV to trigger the update, or:\n    - On Windows: Run **`yomipv-updater.bat`** directly\n    - On Linux / macOS: Run **`yomipv-updater.sh`** directly\n  - Choose between latest official releases or latest source (main branch)\n  - Automatically preserves user configuration in `script-opts/yomipv.conf`\n  - Downloads platform-specific binaries for the Lookup App\n  - (Source mode only) Updates dependencies for the Lookup App (requires Node.js)\n  - Requires administrator privileges to run the PowerShell script on Windows\n\n## Troubleshooting\n\n### Windows\n- Ensure PowerShell execution policy allows scripts\n- Check that curl is available at `C:\\Windows\\System32\\curl.exe`\n\n### Linux\n- Ensure `curl`, `unzip`, `grep`, and `sed` are installed\n- Ensure the updater script has execute permissions: `chmod +x yomipv-updater.sh`\n- For the lookup app, ensure the binary in `scripts/yomipv/` has execution permissions\n\n### macOS\n- Ensure `curl`, `unzip`, `grep`, and `sed` are installed\n- Ensure the updater script has execute permissions: `chmod +x yomipv-updater.sh`\n- If macOS blocks the Lookup App with a Gatekeeper warning, run: `xattr -cr scripts/yomipv/YomipvLookup.app`\n- MPV config directory: `~/.config/mpv/` (create it if it does not exist)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenoaqua%2Fyomipv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrenoaqua%2Fyomipv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenoaqua%2Fyomipv/lists"}