在浏览网页时,我常用欧路词典的“欧路翻译”浏览器插件划词翻译,它能够自动记录查阅过的单词,添加到生词本。 然而,在单词记忆方面,我更习惯使用“墨墨背单词”。
因此,我在寻找一种方法,将欧路词典的生词本同步到墨墨背单词的词库。这样,我就可以用自己习惯的软件来记忆日常阅读中遇到的生词了。


后来我了解到,这两个软件其实都提供开放API。于是,我开发了 eudic-maimemo-sync 工具,实现欧路词典生词本到墨墨背单词云词库的自动同步。并且,我将其部署在树莓派上,每天自动运行,实现了生词本的无缝同步。

接下来,我将介绍如何配置和使用这个程序,并分享开发过程中遇到的一些问题和经验。也欢迎大家贡献代码或提出建议。
目录
eudic-maimemo-sync 使用教程
1. 下载代码安装依赖
前置条件:已安装 Python 3 环境
下载代码:
git clone https://github.com/eMUQI/eudic-maimemo-sync.git
安装依赖:
cd eudic-maimemo-sync
pip install -r requirements.txt
2. 欧路词典相关配置
2.1 获取欧路词典 API 密钥
访问此页面,登录后,获取你的API密钥。复制 .env.example
为 .env
,并将获取到的 API 密钥填入.env
文件中的EUDIC_API_KEY
字段。

2.2 获取生词本 ID
运行get_wordbook_id.py
,查看生词本信息,记下你需要同步的生词本 ID。
python get_wordbook_id.py

将所要同步的生词本 ID 填入.env
中的EUDIC_CATEGORY_ID
。
3. 墨墨背单词相关配置
3.1 获取墨墨背单词 API 密钥
打开墨墨背单词手机APP,进入“我的”-“更多设置”-“实验功能”-“开放API”,生成并复制 API 密钥,然后将其填入.env
中的MOMO_API_KEY
字段。。
3.2 获取云词库 ID
运行get_notepad_id.py
,查看云词库信息,记住你需要同步的云词库 ID。
python get_notepad_id.py

将所要同步的词库 ID 填入.env
中的MOMO_NOTEPAD_ID
。
4. 手动同步
运行sync.py
,即可手动触发一次同步。
python sync.py
5. 自动同步(部署到树莓派上或者其他 Linux 设备)
确保部署前已经成功手动运行过 python sync.py
,验证配置无误。
使用Docker
我个人比较喜欢用Docker, 隔离性好,依赖管理简单,不会弄乱系统的环境。在我的树莓派 5 上运行良好,额外的性能开销在可接受范围内。
创建一个docker-compose.yml
配置文件:
services:
eudic-maimemo-sync:
image: ghcr.io/emuqi/eudic-maimemo-sync:latest
container_name: eudic-maimemo-sync
restart: unless-stopped
env_file:
- .env
# volumes:
# - ./words_data.txt:/app/words_data.txt # 如果想查看单词记录,取消此行注释
environment:
- TZ=Asia/Shanghai
- CRON_SCHEDULE=0 18 * * * # 示例:自定义定时任务为每天 18:00 运行
# Ensure all necessary variables (EUDIC_API_KEY etc.) are in .env or here
healthcheck:
test: ["CMD-SHELL", "pgrep cron || exit 1"]
interval: 2m
timeout: 5s
retries: 3
start_period: 10s
在相同目录下创建一个words_data.txt
文件,用于记录同步的单词列表,方便调试或查看。如果不需要,可以跳过此步。
touch words_data.txt
运行程序
docker compose up -d
其他方式
你还可以使用 cron
或者 systemctl
的方式来定时运行这个同步程序。如果你熟悉这些工具配置,欢迎分享你的方法或提交 Pull Request。
开发中遇到的问题
- 欧路词典 API 不接受默认的 Python
User-Agent
,请求时需要显式指定一个有效的User-Agent
。在本项目中,我使用的是Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
。 - 墨背单词 API 文档中关于添加单词到云词库所需的数据格式说明不够清晰。文档中只说明数据类型时
string
。经过我的测试验证,格式应该为,以井号#
开始作为分类标记,每个单词占一行。如#20250415\napple\nboy#20250416\ncat
。

最后,欢迎提交 Pull Requests 或 Issues 到 eudic-maimemo-sync。有任何想法,也欢迎在下方留言。