Back to skills directory
dongwei6688/weread-notes-export-skill

dongwei6688/weread-notes-export-skill

@dongwei6688 0 0 35

按章节树同步微信读书笔记到结构化本地文件,支持增量更新。

微信读书笔记导出MarkdownJSON增量同步Pythonautomation

Install

$ npx skills add dongwei6688/weread-notes-export-skill

README

# GitHub Repository: dongwei6688/weread-notes-export-skill

**URL:** https://github.com/dongwei6688/weread-notes-export-skill
**Author:** dongwei6688
**Description:** 微信读书笔记导出 — 跨 Agent 平台通用 Skill。按章节树导出划线/评论,支持增量同步、同名合并、安全文件名。已上架 skills.sh
**Homepage:** https://github.com/dongwei6688/weread-notes-export-skill/wiki
**Language:** Python

## Stats
- Stars: 0
- Forks: 0
- Open Issues: 0
- Commits: 35
- Created: 2026-07-28T02:31:26Z
- Updated: 2026-08-15T03:58:54Z
- Pushed: 2026-08-15T03:58:49Z

## README
# 📚 WeRead Notes Export — 微信读书笔记导出 Skill

[![skills.sh](https://skills.sh/b/dongwei6688/weread-notes-export-skill)](https://skills.sh/dongwei6688/weread-notes-export-skill)
[![GitHub release](https://img.shields.io/github/v/release/dongwei6688/weread-notes-export-skill)](https://github.com/dongwei6688/weread-notes-export-skill/releases)

**最新版本:v1.4.4**(2026-08-15)

把微信读书的**划线(书签)**和**想法(评论/批注)**按**章节树**导出为本地结构化 Markdown 文件。支持增量同步、安全文件名、多行内容健壮处理。

## ✨ 亮点

### 按章节树组织,不是简单平铺
从 API 获取书籍的完整章节结构,每条划线自动归入所属章节。一本书的笔记就是一个**有层次的 Markdown 文件**。

### 同名书按书名保存
笔记文件按书名保存(`书名.md`),全平台安全文件名处理。同名不同版本的书(如不同译者)共享同一文件。

### 多行内容健壮处理
多行划线(含署名行)压平为单行、评论内空行自动整理、Unicode 行分隔符(U+2028/U+2029)统一处理——导出文件干净、可被下游解析器逐行正确解析。

### 结构化 JSON 导出(数据分析友好)
加 `--json` 参数,同一次导出同时产出 `.md`(人读)+ `.json`(结构化,保留划线 range、评论原始多行内容、独立想法 abstract、**微信 CDN 封面 URL、网页版阅读器链接**(`web/reader/{urlId}`)等全字段)。**JSON 文件名 = 真实 bookId**(`{bookId}.json`),同名书不再互相覆盖。数据分析直接用 JSON,无需解析 Markdown。

### 安全文件名处理
书名中的特殊字符自动替换为兼容字符,**Windows / Linux / macOS 全平台通用**。

### 条目间自动加分隔线
每条划线之间自动插入 `---` 分隔线,带评论的划线+评论作为一个整体。

### Markdown 格式化
format_notes.py 对导出结果做行间距优化和格式统一

### 增量同步,适合每日 cron
跑一次 `--all` 全量导出后设个 cron 每天增量同步,只导出最近 48 小时内有更新的书。

### 零外部依赖
纯 Python 3 标准库(`urllib` + `json`),无需 `pip install` 任何包。有 Python 就行。

### 跨平台安装(已上架 skills.sh)
```bash
npx skills add https://github.com/dongwei6688/weread-notes-export-skill --skill weread-notes-export
```

---

## 快速开始

### 1. 获取 API Key

打开 https://weread.qq.com/r/weread-skills → 点击**获取 API Key** → 微信扫码登录 → 复制 Key。

或在微信读书 App → **设置** → 底部获取 API Key(扫码或复制 `wrk-xxx`)。

```bash
export WEREAD_API_KEY=wrk-xxxxxxxx
```

### 2. 安装 Skill

确保系统已安装 Node.js(`node --version` 确认,没有去 [nodejs.org](https://nodejs.org) 下载)。

```bash
npx skills add https://github.com/dongwei6688/weread-notes-export-skill --skill weread-notes-export
```

装完后继续下一步导出笔记即可。

### 3. 导出笔记

```bash
# 查看统计
python3 scripts/export_weread_notes.py --stats

# 导出一本书
python3 scripts/export_weread_notes.py --book "原则"

# 导出全部
python3 scripts/export_weread_notes.py --all

# 查看最近更新的书
python3 scripts/export_weread_notes.py --recent

# 同时导出结构化 JSON(数据分析用)
python3 scripts/export_weread_notes.py --book "原则" --json
python3 scripts/export_weread_notes.py --all --json
```

---

## 输出示例

```markdown
# 《原则》读书笔记
作者:瑞·达利欧

## 导言

> 不管我一生中取得了多大的成功,其主要原因都不是我知道多少事情,
> 而是我知道在无知的情况下自己应该怎么做。

---

> 独立思考并决定:(1)你想要什么;(2)事实是什么;
> (3)面对事实,你如何实现自己的愿望……

## 第一部分 我的历程

> 你要问自己要什么,将那些得到了你想要的东西的人作为范例……

---

## 第二部分 生活原则

> 世界上最重要的事情是理解现实如何运行,以及如何应对现实。

💬 这个观点很实用,梦想+现实+决心=成功的生活

---
```

### 输出目录

默认输出到 `~/.weread-notes/`,可通过 `WEREAD_NOTES_DIR` 环境变量自定义。

---

## 命令参考

| 命令 | 说明 |
|------|------|
| `--stats` | 统计:有笔记的书总数、划线数、笔记数、想法数 |
| `--list` | 列出所有有笔记的书及其划线/笔记/想法数量 |
| `--recent` | 查看最近 7 天更新过的书 |
| `--book <书名/ID>` | 按书名或 bookId 导出单本 |
| `--all` | 全量导出所有有笔记的书 |
| `--json` | 与 `--book`/`--all` 组合:同时输出结构化 `.json`(数据分析用) |
| `--json-only` | 仅输出 `.json` 不写 `.md`(每日增量只产 JSON 时用) |

---

## 每日自动同步

```bash
# 添加到 crontab(每天早上 7 点)
# npx skills add 安装:
0 7 * * * cd ~/.agents/skills/weread-notes-export/scripts && python3 daily_sync_weread.py
# 手动安装(替换为实际路径):
# 0 7 * * * cd /path/to/skill/scripts && python3 daily_sync_weread.py
```

或者直接使用环境变量方式:

```bash
# 每天 7:00 自动增量同步(需要保持 WEREAD_API_KEY 环境变量)
crontab -e
# 添加:
0 7 * * * export WEREAD_API_KEY=wrk-xxx && cd /path/to/weread-notes-export-skill && python3 scripts/daily_sync_weread.py
```

同步脚本筛选最近 48 小时内有更新的书自动导出,已有的书不会重复处理。

---

## 同名书说明

笔记文件按书名保存(`书名.md`)。书架上同名不同版本的书(如不同译者的《1%法则》)导出时共享同一文件,后导出的会覆盖先导出的内容。如需保留多个版本,请将已有文件改名后重新导出。

---

## 配置

| 环境变量 | 必需 | 说明 |
|----------|------|------|
| `WEREAD_API_KEY` | ✅ | 微信读书 API Key(格式 `wrk-xxx`) |
| `WEREAD_NOTES_DIR` | ❌ | 笔记输出目录(默认 `~/.weread-notes/`) |

---

## 常见问题

| 问题 | 原因 | 解决 |
|------|------|------|
| `API_KEY 未设置` | 未配置环境变量 | `export WEREAD_API_KEY=wrk-xxx` |
| `请求太频繁` | API 限流 | 等待 10 秒后重试 |
| `书名未找到` | 书名不精确 | 用 --list 先查看准确书名 |
| 文件写入失败 | 权限/磁盘满 | `df -h` 检查磁盘 |

---

## 跨平台兼容

本 Skill 已上架 [skills.sh](https://www.skills.sh) 生态。通过环境变量配置,不硬编码平台路径,支持:

| 平台 | 说明 |
|------|------|
| 🤖 Hermes Agent | 完整支持 |
| 🦎 OpenClaw | 完整支持 |
| 💼 Workbuddy | 支持 SKILL.md 格式 |
| 🟢 Claude Code | 支持 SKILL.md 格式 |
| 🔵 Codex / Cursor | 支持 SKILL.md 格式 |

---

## 独立性边界(铁律)

本 Skill 是**完全独立**的开源组件,与任何具体应用(如「回音笔记」读书笔记站等)**零耦合**:

- ✅ **不 import** 任何应用项目模块(不依赖 weread_server.py / book_builder.py 等)
- ✅ **不读写** 任何应用数据目录(不触碰应用的用户目录、公共图书库缓存)
- ✅ **不调用** 任何应用构建流程(不触发 build.py / 发布脚本)
- ✅ **不硬编码** 平台路径(输出目录通过 `WEREAD_NOTES_DIR` 配置,默认 `~/.weread-notes/`)
- ✅ **纯标准库**:仅 `urllib` / `json` / `re` / `os` / `sys` / `time`,无第三方依赖

> 本 Skill 只做一件事:**输入 API Key + 输出读书笔记文件**(md / json)。下游消费方(数据分析、网页展示、多用户同步)自行读取产物,Skill 不感知它们的存在。
>
> 如果某个应用需要"按用户导出 / 公共书库缓存 / 服务端集成",请在**应用自身**实现(复用或移植本 Skill 的算法思路),不要反过来让 Skill 依赖应用。

---

## 项目结构

```
weread-notes-export-skill/
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── SKILL.md
├── scripts/
│   ├── export_weread_notes.py        # 🎯 核心导出引擎
│   ├── daily_sync_weread.py          # 每日增量同步
│   └── format_notes.py               # 批量格式整理
└── templates/
    └── weread.env.template           # 环境变量模板
```

---

## 许可证

MIT

Information

Language
Python
Created
2026/9/5
Updated
2026/9/5