{"id":15017229,"url":"https://github.com/ripose-jp/memento","last_synced_at":"2026-06-13T22:01:13.092Z","repository":{"id":41238352,"uuid":"302477133","full_name":"ripose-jp/Memento","owner":"ripose-jp","description":"An mpv-based video player for studying Japanese","archived":false,"fork":false,"pushed_at":"2026-06-08T02:37:01.000Z","size":143501,"stargazers_count":1437,"open_issues_count":24,"forks_count":60,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-06-08T04:21:09.727Z","etag":null,"topics":["anki","japanese","language-learning","mpv","video","yomichan","yomitan"],"latest_commit_sha":null,"homepage":"https://ripose-jp.github.io/Memento/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ripose-jp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2020-10-08T22:38:20.000Z","updated_at":"2026-06-08T02:37:05.000Z","dependencies_parsed_at":"2022-07-10T16:17:17.528Z","dependency_job_id":"fca632a1-0201-496e-aff5-2381b318863e","html_url":"https://github.com/ripose-jp/Memento","commit_stats":{"total_commits":1096,"total_committers":14,"mean_commits":78.28571428571429,"dds":"0.15875912408759119","last_synced_commit":"f3084f190131fa3f286345df4787496b61b69fcb"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/ripose-jp/Memento","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripose-jp%2FMemento","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripose-jp%2FMemento/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripose-jp%2FMemento/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripose-jp%2FMemento/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ripose-jp","download_url":"https://codeload.github.com/ripose-jp/Memento/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripose-jp%2FMemento/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34301732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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","japanese","language-learning","mpv","video","yomichan","yomitan"],"created_at":"2024-09-24T19:50:05.281Z","updated_at":"2026-06-13T22:01:13.084Z","avatar_url":"https://github.com/ripose-jp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memento\n\n[![AUR](https://img.shields.io/aur/version/memento)](https://aur.archlinux.org/packages/memento/)\n[![Flathub](https://img.shields.io/flathub/v/io.github.ripose_jp.Memento)](https://flathub.org/apps/details/io.github.ripose_jp.Memento)\n\nMemento is a FOSS, mpv-based video player for studying Japanese.\n\n**Memento has been drastically overhauled since v1.7.2. If you're looking**\n**for the README relevant to that version, click**\n**[here](https://github.com/ripose-jp/Memento/tree/9aa39ec4f6c4c033db68253988ccfc2a9898df78).**\n\n![Example](example.png)\n\n## Features\n\n* Grammar aware subtitle search\n* Yomichan-style Kanji cards\n* Support for Yomichan dictionaries\n* Anki card creation through [AnkiConnect](https://ankiweb.net/shared/info/2055492159)\n* Support for mpv upscalers, plugins, and configuration files\n\n## Dictionaries\n\n* [JMdict](https://github.com/yomidevs/jmdict-yomitan/) (English)\n  * [JMdict_english_with_examples.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_english_with_examples.zip)\n    * This is the version of JMdict with example sentences from the [Tatoeba Project](http://tatoeba.org/home).\n  * [JMdict_english.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_english.zip)\n    * This is the same JMdict but without example sentences.\n  * [JMdict_english_legacy.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_english_legacy.zip)\n    * This is the same JMdict with legacy formatting instead of structured content.\n  * [JMdict_english_without_proper_names.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_english_without_proper_names.zip)\n    * This is `JMdict_english` but without several thousand entries from JMnedict.\n  * [JMdict_english_legacy_without_proper_names.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_english_legacy_without_proper_names.zip)\n* [JMdict](https://github.com/yomidevs/jmdict-yomitan/) (Other Languages)\n  * [JMdict_dutch.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_dutch.zip)\n  * [JMdict_french.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_french.zip)\n  * [JMdict_german.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_german.zip)\n  * [JMdict_hungarian.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_hungarian.zip)\n  * [JMdict_russian.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_russian.zip)\n  * [JMdict_slovenian.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_slovenian.zip)\n  * [JMdict_spanish.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_spanish.zip)\n  * [JMdict_swedish.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMdict_swedish.zip)\n* [Jitendex](https://jitendex.org/) (English)\n  * [jitendex-yomitan.zip](https://github.com/stephenmk/stephenmk.github.io/releases/latest/download/jitendex-yomitan.zip)\n    * Similar to `JMdict_english_with_examples` with additional formatting.\n* [JMnedict](https://github.com/yomidevs/jmdict-yomitan/) (Japanese Names)\n  * [JMnedict.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/JMnedict.zip)\n* [JPDB](https://github.com/Kuuuube/yomitan-dictionaries) (Frequency)\n  * [JPDB v2.2 Kana](https://github.com/Kuuuube/yomitan-dictionaries/raw/main/dictionaries/JPDB_v2.2_Frequency_Kana_2024-10-13.zip) (Recommended)\n  * [JPDB v2.2 Frequency Kana Display Only](https://github.com/Kuuuube/yomitan-dictionaries/raw/main/dictionaries/JPDB_v2.2_Frequency_Kana_Display_Only_2024-10-13.zip)\n  * [JPDB v2.2](https://github.com/Kuuuube/yomitan-dictionaries/raw/main/dictionaries/JPDB_v2.2_Frequency_2024-10-13.zip)\n* [BCCWJ SUW LUW Combined](https://github.com/Kuuuube/yomitan-dictionaries) (Frequency)\n  * [BCCWJ_SUW_LUW_combined.zip](https://github.com/Kuuuube/yomitan-dictionaries/raw/main/dictionaries/BCCWJ_SUW_LUW_combined.zip)\n* Kanjium (Pitch)\n  * [kanjium_pitch_accents.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjium_pitch_accents.zip)\n* [KANJIDIC](https://github.com/yomidevs/jmdict-yomitan/) (Kanji)\n  * [KANJIDIC_english.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/KANJIDIC_english.zip)\n  * [KANJIDIC_french.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/KANJIDIC_french.zip)\n  * [KANJIDIC_portuguese.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/KANJIDIC_portuguese.zip)\n  * [KANJIDIC_spanish.zip](https://github.com/yomidevs/jmdict-yomitan/releases/latest/download/KANJIDIC_spanish.zip)\n\n## Troubleshooting\n\n### Can't Add Cards: Only the \"Show in Anki\" Button is Available\n\nThis means there is a mistake in your card template.\nWhen this happens, AnkiConnect will report that all potential cards are not addable.\nDouble check your card template to see if the front of the card is missing something.\n\n### Windows: Updating yt-dlp\n\nIf you're version of yt-dlp is out of date, you may experience degraded streaming performance or websites not working entirely.\n\nMemento's version of yt-dlp can be updated by doing the following:\n\n1. Download [yt-dlp](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe)\n1. Put `yt-dlp.exe` in Memento's install directory. For the portable version of Memento, this is located in the same folder as the executable. For the installed version, this is located at `C:\\Program Files\\Memento` by default.\n\n### macOS: Streaming video doesn't work\n\nThis means that mpv cannot find your yt-dlp installation.\n\nTo install yt-dlp, paste these commands into Terminal:\n```\ncurl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/Library/Preferences/memento/yt-dlp\nchmod a+rx ~/Library/Preferences/memento/yt-dlp\n```\n\n### macOS: Could not initialize MeCab\n\nMove the Memento application to a directory that doesn't have spaces in the path\nlike `/Applications`. Unfortunately, this is an limitation of MeCab and there is\nno workaround that can be implemented.\n\n### KDE Plasma: No native file picker\n\nFor Memento to be able to use the native file picker on KDE Plasma, you must\ncompile with with `-DMEMENTO_QAPPLICATION=ON`.\nThis pulls in a dependency on Qt Widgets, so make sure to have that installed on\nyour system.\n\n## Dependencies\n\n* Qt\n    * Base\n    * SVG\n* mpv\n* sqlite3\n* Json-C\n* libzip\n* QCoro (optional)\n    * Use `-DMEMENTO_SYSTEM_QCORO=ON`\n* yt-dlp (optional)\n* MeCab (optional)\n    * Use `-DMEMENTO_MECAB_SUPPORT=ON`\n    * With either ipadic or NAIST-jdic installed as a system dictionary on Linux and macOS. This only applies to self-compiled versions, not appimages or app bundles.\n* [libmocr](https://github.com/ripose-jp/libmocr) (Optional)\n    * Use `-DMEMENTO_OCR_SUPPORT=ON` and `-DMEMENTO_SYSTEM_MOCR=ON`\n\nFor the best experience, install [Noto Sans CJK JP](https://github.com/googlefonts/noto-cjk/raw/main/Sans/Variable/TTF/NotoSansCJKjp-VF.ttf)\nand the [Kanji Stroke Order](https://drive.google.com/uc?export=download\u0026id=1oyQoTB531tbhlYaOW7ugvutXZ7HSlJfW) fonts.\n\n\n## Building\n\n**I do not guarantee that any branch will successfully build or be bug-free.**\n**If you want to build a stable version of Memento, compile a [release](https://github.com/ripose-jp/Memento/releases) from source.**\n\n### Linux\n\nTo install Memento on Linux, type the following commands:\n\n```\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ..\ncmake --build . -j $(nproc)\nsudo cmake --build . --target install\n```\n\n### Windows\n\n1. Install [MSYS2](https://www.msys2.org/)\n1. Open **MSYS2 UCRT64**\n1. Make sure MSYS2 is up to date by running this command multiple times until it stops doing anything:\n   ```\n   pacman -Syu\n   ```\n1. Install the necessary tools and dependencies:\n   ```\n   pacman -S mingw-w64-ucrt-x86_64-git mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-ninja mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-sqlite3 mingw-w64-ucrt-x86_64-qt6 mingw-w64-ucrt-x86_64-mpv mingw-w64-ucrt-x86_64-mecab mingw-w64-ucrt-x86_64-json-c mingw-w64-ucrt-x86_64-libzip\n   ```\n1. Clone the repository:\n   ```\n   git clone https://github.com/ripose-jp/Memento.git\n   ```\n1. Build Memento:\n   ```\n   cd Memento\n   ./windows/build.sh -DCMAKE_BUILD_TYPE=Release\n   ```\n1. The resulting file will be in\n   ```\n   build/Memento_x86_64\n   ```\n\n### macOS\n\n**Important:** Clang is the only officially supported compiler for building Memento on macOS.\n\n1. Install [Homebrew](https://brew.sh/) with this command:\n   ```\n   /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n   ```\n1. Install the necessary tools and dependencies:\n   ```\n   brew install git cmake sqlite3 qt6 qcoro6 mpv mecab mecab-ipadic json-c libzip\n   ```\n1. Clone the repository:\n   ```\n   git clone https://github.com/ripose-jp/Memento.git\n   ```\n1. Build Memento:\n   ```\n   cd Memento\n   mkdir build\n   cd build\n   cmake -DCMAKE_BUILD_TYPE=Release ..\n   cmake --build . -j $(nproc)\n   ```\n1. The resulting executable will be:\n   ```\n   Memento/build/src/memento\n   ```\n\n### macOS Bundle\n\n1. Follow steps 1 - 3 of the macOS build instructions.\n1. Open the **Keychain Access** app.\n1. Go to **Keychain Access** \u003e **Certificate Assistant** \u003e\n   **Create a Certificate...** in the menubar.\n1. Put the name of your certificate in the 'Name' field, set the\n   'Certificate Type' to 'Code Signing', and click 'Create'.\n1. Return to your terminal and input:\n    ```\n    cd Memento\n    mkdir build\n    cd build\n    cmake -DMEMENTO_CODESIGN_IDENTITY=\"\u003ccertificate name\u003e\" -DMEMENTO_BUNDLE=ON -DCMAKE_BUILD_TYPE=Release -DMEMENTO_MECAB_SUPPORT=ON -DMEMENTO_SYSTEM_QCORO=ON ..\n    cmake --build . --target memento_bundle -j$(sysctl -n hw.ncpu)\n    ```\n1. The resulting app bundle will located at:\n    ```\n    Memento/build/src/Memento.app\n    ```\n\n### Adding OCR Support\n\nTo build with OCR support, make sure that Python is installed and run:\n```\npip install manga-ocr\n```\n*Any problems you may have getting `manga-ocr` installed using `pip` is beyond the scope of this project.*\n*I wish you the best of luck.*\n\nConfigure the build with:\n```\ncmake .. -DMEMENTO_OCR_SUPPORT=ON\n```\n\nIf you want to use a venv, make sure to configure the build with these additional options:\n```\n-DPython_EXECUTABLE=/path/to/.venv/bin/python\n-DPython_FIND_VIRTUALENV=ONLY\n```\n\n**Note:** If using `-DMEMENTO_SYSTEM_MOCR=ON`, make sure that the installed libmocr binary links to your preferred venv by building libmocr using the same `-DPython_` options.\n\nFollow the normal build instructions from here.\n\n## Configuration\n\nMost mpv shaders, plugins, and configuration files will work without modification.\n\nIt is important to note that mpv and Memento's configuration directories are\n**separate**. This means mpv configuration files, scripts, etc. intended to modify\nMemento's behavior should be placed in Memento's configuration directory.\n\nThe Memento configuration directory is located at:\n\n### Linux\n\n```\n~/.config/memento\n```\n\n### Windows\n\n```\n%APPDATA%\\Local\\memento\n```\n\n### macOS\n\n```\n~/Library/Preferences/memento\n```\n\nIf any mpv binds or plugins do not work, please create an issue in the issue\ntracker.\n\n## asbplayer\n\nIf you hate Memento, try [asbplayer](https://app.asbplayer.dev/).\n\n## Acknowledgements\n\n* MpvWidget code is based off of libmpv example code\n  * https://github.com/mpv-player/mpv-examples/tree/master/libmpv/qml\n* Some code based off of Baka-MPlayer\n  * https://github.com/u8sand/Baka-MPlayer\n* UI inspired by Yomichan\n  * https://github.com/FooSoft/yomichan\n* Icons sourced from Google Material Symbols and Icons\n  * https://fonts.google.com/icons\n* OCR backend written kha-white and contributors\n  * https://github.com/kha-white/manga-ocr\n* `mingw-bundledlls.py` based on this script with a slightly expanded blacklist\n  * https://github.com/mpreisler/mingw-bundledlls\n* Flatpak manifest heavily based on the mpv Flatpak\n  * https://github.com/flathub/io.mpv.Mpv\n* QCoro is builtin to the project\n  * https://github.com/qcoro/qcoro\n* Most dictionary links taken from jmdict-yomitan and yomitan-dictionaries\n  * https://github.com/yomidevs/jmdict-yomitan\n  * https://github.com/Kuuuube/yomitan-dictionaries\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripose-jp%2Fmemento","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fripose-jp%2Fmemento","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripose-jp%2Fmemento/lists"}