Memento
Memento 是一款基于 mpv 的开源视频播放器,专为学习日语而设计。
功能特点
- 语法感知字幕搜索
- Yomichan 风格的汉字卡片
- 支持 Yomichan 词典
- 通过 AnkiConnect 创建 Anki 卡片
- 支持 mpv 画质提升器、插件和配置文件
词典
- JMdict (日语词汇)
- JMnedict (日语名称)
- KireiCake (日语俚语)
- KANJIDIC (日语汉字)
- Innocent Corpus (5000多本小说中的词语和汉字频率)
- Kanjium (音调词典,详情请参阅相关项目页面)
故障排除
无法添加卡片:仅显示"在 Anki 中显示"按钮
这意味着您的卡片模板存在错误。 出现这种情况时,AnkiConnect 会报告所有潜在卡片都无法添加。 请仔细检查您的卡片模板,看看卡片正面是否缺少某些内容。
副字幕无法工作
在 mpv v0.35.0 之前的版本中,无法独立设置主字幕和副字幕的可见性。 如果您没有自行编译 Memento,而是使用 v1.0.0 或更高版本的预编译二进制文件,则此部分不适用于您。
方法 1
前往设置 → 选项 → 搜索,取消勾选"当字幕搜索可见时隐藏 mpv 字幕",并勾选"播放媒体时隐藏字幕搜索"。 如果可搜索字幕变得难以阅读,可以考虑添加背景。 这可以在界面设置中完成。 确保将透明度/不透明度通道设置为255,以避免背景变得透明。
方法2
当Memento暂停时,手动切换字幕可见性以显示次要字幕。 字幕可见性默认绑定到v键。
Windows:尝试流式播放时缺少MSVCR100.dll
此错误可以通过安装Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package (x86)来修复。
Windows:更新youtube-dl/yt-dlp
如果你的youtube-dl版本过时,可能会导致流式播放性能下降或网站完全无法工作。
可以通过以下步骤更新Memento的youtube-dl版本:
- 下载yt-dlp
- 将文件重命名为
youtube-dl.exe
- 将
youtube-dl.exe
放入Memento的安装目录。对于便携版Memento,它位于与可执行文件相同的文件夹中。对于安装版,默认位于C:\Program Files\Memento
。
macOS:流式视频无法播放
这意味着mpv无法找到你的youtube-dl安装。
要安装youtube-dl,请在终端中粘贴以下命令:
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/Library/Preferences/memento/youtube-dl
chmod a+rx ~/Library/Preferences/memento/youtube-dl
macOS:无法初始化MeCab
将Memento应用程序移动到路径中没有空格的目录,如/Applications
。不幸的是,这是MeCab的限制,无法实现其他解决方法。
Linux:音频和图像无法添加到Anki
这只适用于使用Anki Flatpak的用户。
默认情况下,Anki Flatpak无法访问/tmp
目录。
Memento在将音频和图像文件提供给Anki时,会暂时将它们存储在这里。
你可以通过安装Flatseal来给Anki访问/tmp
目录的权限。
打开Flatseal,选择Anki,然后在其他文件下添加/tmp
目录。
依赖项
- Qt
- Base
- SVG
- mpv
- sqlite3
- Json-C
- libzip
- youtube-dl或yt-dlp(可选)
- MeCab(可选)
- 在Linux和macOS上,需要安装ipadic或NAIST-jdic作为系统字典。这只适用于自编译版本,不适用于appimage或app bundles。
- Python(可选)
为获得最佳体验,请安装Noto Sans JP 和Kanji Stroke Order字体。
构建
我不保证任何分支都能成功构建或没有Bug。 如果你想构建稳定版的Memento,请从源代码编译发布版本。
Linux
要在Linux上安装Memento,请输入以下命令:
make
sudo make install
Windows
- 安装MSYS2
- 打开MSYS2 MinGW 64-bit
- 确保MSYS2是最新的,多次运行此命令直到它停止执行任何操作:
pacman -Syuu
- 安装必要的工具和依赖项:
pacman -S git make mingw-w64-x86_64-gcc mingw-w64-x86_64-ninja mingw-w64-x86_64-cmake mingw-w64-x86_64-python mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-qt6 mingw-w64-x86_64-mpv mingw-w64-x86_64-mecab mingw-w64-x86_64-json-c mingw-w64-x86_64-libzip
- 克隆仓库:
git clone https://github.com/ripose-jp/Memento.git
- 构建Memento:
cd Memento ./windows/build.sh x86_64
- 生成的文件将位于
build/Memento_x86_64
macOS
重要提示: Clang是在macOS上构建Memento唯一官方支持的编译器。
- 使用以下命令安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装必要的工具和依赖:
brew install git cmake sqlite3 qt6 mpv mecab mecab-ipadic json-c libzip
- 克隆仓库:
git clone https://github.com/ripose-jp/Memento.git
- 构建 Memento:
cd Memento make
- 生成的可执行文件将位于:
Memento/build/src/Memento
macOS 应用程序包
-
按照 macOS 构建说明的步骤 1-3 进行操作。
-
创建应用程序包时还需要
dylibbundler
,请使用以下命令安装:
brew install dylibbundler
-
打开 钥匙串访问 应用程序。
-
在菜单栏中选择 钥匙串访问 > 证书助理 > 创建证书...。
-
在"名称"字段中输入证书名称,将"证书类型"设置为"代码签名",然后点击"创建"。
-
返回终端并输入:
cd Memento make appbundle CERT_NAME='<上一步输入的名称>'
-
生成的应用程序包将位于:
Memento/build/src/Memento.app
添加 OCR 支持
要构建带有 OCR 支持的版本,确保已安装 Python,然后运行:
pip install manga-ocr
使用 pip
安装 manga-ocr
时遇到的任何问题超出了本项目的范围。祝你好运。
将 -DOCR_SUPPORT=ON
添加到 CMAKE_ARGS
环境变量中:
export CMAKE_ARGS='-DOCR_SUPPORT=ON'
然后按照你所使用平台的正常构建说明进行操作。
注意:
理论上 OCR 在 Windows 上也受支持。
假设 Memento 是基于 msys2 版本的 Python 构建的,你需要将环境变量 PYTHONHOME
设置为 C:\msys64\mingw64
。
配置
大多数 mpv 着色器、插件和配置文件无需修改即可使用。
需要注意的是,mpv 和 Memento 的配置目录是分开的。这意味着用于修改 Memento 行为的 mpv 配置文件、脚本等应该放在 Memento 的配置目录中。
Memento 配置目录位于:
Linux
~/.config/memento
Windows
0.5.1 版本及以后
%APPDATA%\Local\memento
0.5.0-1 版本及以前
[安装目录]\config
macOS
~/Library/Preferences/memento
如果有任何 mpv 绑定或插件不工作,请在问题追踪器中创建一个 issue。
贡献
在提交拉取请求之前,请阅读 CONTRIBUTING.md。
Animebook
如果你不喜欢 Memento,可以试试 Animebook。
https://github.com/animebook/animebook.github.io
致谢
- MpvWidget 代码基于 w4m 的 libmpv 示例代码
- 部分代码基于 Baka-MPlayer
- Linux 上的硬件加速使用 mpc-qt 代码实现
- UI 灵感来自 Yomichan,字典由 Yomichan 提供
- OCR 后端由 kha-white 和贡献者编写
- 全屏图标来源于
- 各种图标来源于
- 暂停、播放、跳过和寻找图标来源于此处,并根据 CC 3.0 许可 使用
mingw-bundledlls.py
基于此脚本,略微扩展了黑名单- Flatpak 清单主要基于 mpv Flatpak