微信读书笔记划线

查看和管理微信读书笔记和划线

✨ The solution you've been looking for

查看微信读书个人笔记和划线内容,包括划线、想法/点评、书签数量。支持导出单本书的划线内容和想法。

微信读书 笔记 划线 阅读笔记

See It In Action

Interactive preview & real-world examples

Live Demo
Skill Demo Animation

AI Conversation Simulator

See how users interact with this skill

User Prompt

看看我在《三体》里的笔记

Skill Processing

查询中...

Agent Response

你在《三体》中共有23条笔记:15条划线、5条想法、3个书签

Quick Start (3 Steps)

Get up and running in minutes

1

Install

2

Config

设置 WEREAD_API_KEY 环境变量
3

First Trigger

Commands

CommandDescriptionRequired Args
查看笔记本概览查看所有有笔记的书籍None
查看单本书笔记查看单本书的划线和想法书籍ID
查看热门划线查看书籍的热门划线书籍ID

Typical Use Cases

查看笔记概览

查看所有有笔记的书籍列表

查看单本书笔记

查看某本书的具体笔记内容

Overview

notes — 笔记/划线

本文档区分两种口径:

  • 统计口径:笔记数 = 书签数 + 划线数 + 想法/点评数。这里的"想法/点评"对应后端 reviewCount,包含划线想法、书评想法/个人点评、书摘、非书籍想法等个人内容。
  • 内容导出口径:当前可导出的单本书笔记内容 = 划线内容 + 想法/点评内容。书签只在统计数量中体现,当前 /book/bookmarklist 已过滤书签,不能导出书签内容。

公开的他人点评不属于个人笔记,见 review.md

接口

/user/notebooks — 笔记本概览(所有有笔记的书)

请求参数:

参数类型必填说明
countint每页数量,默认 20
lastSortint翻页游标(上一页最后一条的 sort 值)

回包:

字段说明
totalBookCount有笔记的书籍总数
totalNoteCount笔记总条数,统计口径为 reviewCount + noteCount + bookmarkCount 的汇总
hasMore是否有更多(1=有)
books[].bookId书籍 ID
books[].book书籍信息(title, author, cover 等)
books[].reviewCount想法/点评数:包含划线想法、书评想法/个人点评、书摘、非书籍想法等个人内容
books[].noteCount划线数(高亮标注的原文条数)
books[].bookmarkCount书签数(标记阅读位置的条数;只作为数量统计,当前不导出书签内容)
books[].readingProgress阅读进度
books[].markedStatus标记状态(1=读完, 0=在读)
books[].sort排序值(最近笔记时间,用于翻页)

概念解释

  • 用户问"有多少笔记"时,使用统计口径:reviewCount + noteCount + bookmarkCount
  • noteCount 字段名容易误读:它不是单本书总笔记数,而是划线/高亮原文条数;单本书总笔记数必须自行计算。
  • /user/notebooks 不返回 highlightCount 字段;如果用户或上游说"高亮数/划线数",对应字段是 noteCount
  • reviewCount 已包含个人点评/书评想法,因此计算总笔记数时不要再额外加"点评数",否则会重复计算。
  • /user/notebooks 概览无法把 reviewCount 拆成"划线想法"和"个人点评"的独立数量;如需内容明细,需继续查询 /review/list/mine

分页规则

  • /user/notebooks 使用基于时间排序值的游标分页,不支持 offset/limit 分页。
  • 第一次请求只传 count;如果 hasMore 为 1,取本页 books 最后一项的 sort,下一次作为 lastSort 传入。
  • 所有业务参数必须平铺在 JSON body 顶层,和 api_nameskill_version 同级;不要包在 params 对象里。
  • 不要传 offsetlimitstartsize;这些参数不会被后端分页逻辑读取,可能导致重复第一页或结果不符合预期。
  • 拉取完整列表时循环请求直到 hasMore 为 0,再按 reviewCount + noteCount + bookmarkCount 计算并降序排序。

/book/bookmarklist — 单本书的划线内容列表(不含书签内容)

自动过滤书签(type=0),只返回划线(type=1)。

请求参数:

参数类型必填说明
bookIdstring书籍 ID

回包:

字段说明
updated划线数组
updated[].bookmarkId划线唯一 ID
updated[].bookId书籍 ID
updated[].chapterUid所在章节 UID
updated[].markText划线原文
updated[].createTime创建时间(Unix 时间戳)
updated[].type类型
updated[].range位置范围
updated[].colorStyle划线颜色样式
chapters章节信息数组(用于定位划线所属章节)
chapters[].chapterUid章节 UID
chapters[].chapterIdx章节序号
chapters[].title章节标题
book书籍信息

/review/list/mine — 单本书的个人想法与点评

返回当前用户在该书上的所有个人内容,包括划线想法、章节点评和整本书评。

请求参数:

参数类型必填说明
bookidstring书籍 ID
synckeyint翻页游标,默认 0
countint每页数量,默认 20

回包:

字段说明
reviews想法/点评数组
reviews[].review.reviewId唯一 ID
reviews[].review.content内容文本
reviews[].review.createTime创建时间
reviews[].review.star评分(0-5,-1=无评分)
reviews[].review.chapterName所在章节名(章节点评时有值,书评为空)
reviews[].review.isFinish是否读完(书评时有值)
totalCount总条数
hasMore是否有更多(1=有)
synckey翻页游标(下次请求传入)

/book/underlines — 章节划线热度统计

获取某章节每条划线的热度统计(人数/得分/类型),不含划线文本,主要用于阅读器内显示"X人划线"热度标签。

请求参数:

参数类型必填说明
bookIdstring书籍 ID
chapterUidint章节 UID(从 /book/chapterinfo 获取)
synckeyint增量同步 key,默认 0

回包:

字段说明
bookId书籍 ID
chapterUid章节 UID
underlines划线热度统计数组
underlines[].range划线位置范围(如 “393-401”)
underlines[].count划线人数
underlines[].score热度分数
underlines[].type划线类型
synckey同步 key

/book/bestbookmarks — 书籍热门划线

获取全书的 Popular Highlights,包含划线原文和划线人数,按热度排序。服务端固定返回前 20 条(count=20, maxIdx=0),不支持分页。

请求参数:

参数类型必填说明
bookIdstring书籍 ID
chapterUidint章节 UID(0=全部章节,从 /book/chapterinfo 获取),默认 0
synckeyint增量同步 key,默认 0

回包:

字段说明
synckey同步 key(数据版本号)
totalCount热门划线总数
items热门划线数组
items[].bookId书籍 ID
items[].userVid代表用户 VID
items[].bookmarkId划线唯一 ID
items[].chapterUid所在章节 UID
items[].range划线位置范围(如 “393-401”)
items[].markText划线原文文本
items[].totalCount划线人数
items[].simplifiedRange简体书籍的 range(繁简体书专属)
items[].traditionalRange繁体书籍的 range(繁简体书专属)
chapters章节信息数组(用于定位划线所属章节)
chapters[].bookId书籍 ID
chapters[].chapterUid章节 UID
chapters[].chapterIdx章节序号
chapters[].title章节标题

/book/readreviews — 划线下的想法/评论

请求参数:

参数类型必填说明
bookIdstring书籍 ID
chapterUidint章节 UID
reviewsarray要查询的划线范围数组
reviews[].rangestring划线位置范围(从 /book/bestbookmarks 获取)
reviews[].maxIdxint翻页偏移,默认 0
reviews[].countint每页数量,服务端上限 20,超过自动截断
reviews[].synckeyint翻页游标,默认 0

回包:

字段说明
bookId书籍 ID
chapterUid章节 UID
reviews每个 range 的想法列表
reviews[].range划线范围
reviews[].totalCount该范围下想法总数
reviews[].hasMore是否有更多(1=有)
reviews[].maxIdx翻页偏移
reviews[].synckey翻页游标
reviews[].pageReviews想法数组
reviews[].pageReviews[].reviewId想法 ID
reviews[].pageReviews[].review想法详情对象
reviews[].pageReviews[].review.abstract划线原文(想法对应的划线内容)
reviews[].pageReviews[].review.content想法内容
reviews[].pageReviews[].review.range划线位置范围
reviews[].pageReviews[].review.createTime创建时间
reviews[].pageReviews[].review.author作者信息

/review/single — 单条想法详情

请求参数:

参数类型必填说明
reviewIdstring想法/评论 ID
commentsCountint拉取评论数量,默认 10
commentsDirectionint评论排序方向:0=倒序, 1=正序
likesCountint拉取点赞数量,默认 10
likesDirectionint点赞排序方向:0=倒序
synckeyint增量同步 key,默认 0

回包:

字段说明
reviewId想法 ID
review想法详情对象(content, bookId, chapterUid, createTime, author 等)
htmlContent富文本内容
synckey同步 key

工作流

  1. 无参数/问笔记数量排行:调 /user/notebooks 展示笔记本概览;如需完整排行,必须按 count + lastSort 遍历到 hasMore=0,且所有分页参数平铺在 body 顶层;每本书笔记数按 reviewCount + noteCount + bookmarkCount 计算并排序。
  2. 有 bookId 或书名,问单本书笔记内容:同时调 /book/bookmarklist(划线内容)和 /review/list/mine(想法/点评内容),合并展示当前可导出的笔记内容。
  3. 明确要求书签内容:说明当前接口只在 /user/notebooks 提供书签数量,不能导出书签内容;不要把划线误当书签。
  4. 用户从概览中选择某本书后,同样调上述两个接口。
  5. 通过 chapters 中的 chapterUid/title 将划线按章节分组。
  6. 翻页(notebooks):只使用顶层平铺的 count + lastSort 游标分页;hasMore 为 1 时,用最后一条的 sort 值作为下一页 lastSort;禁止使用 params 嵌套或 offset/limit
  7. 查看书籍热门划线及想法
    • /book/bestbookmarks 获取热门划线列表(含划线原文和人数)
    • /book/underlines 获取章节内划线热度统计(人数/得分,无文本,用于展示"X人划线"标签)
    • /book/bestbookmarks 返回的 range 值调 /book/readreviews 获取每条划线下的想法
    • 如需查看单条想法完整详情(含评论/点赞),调 /review/single

输出格式

  • 笔记本概览:编号列表,每本书显示书名、作者、总笔记数、想法/点评数、划线数、书签数、阅读进度
  • 单本笔记内容:按章节分组展示当前可导出的内容
    • 划线:用引用格式 > 标注原文
    • 想法/点评:区分划线想法、章节点评、整本书评;能关联划线时放在对应划线下方,不能关联时单独列出
    • 书签:只展示数量(来自 /user/notebooksbookmarkCount),不展示内容

概念理清

  • 统计笔记数 = reviewCount + noteCount + bookmarkCount;不要把 noteCount 单独当作总笔记数。
  • 内容导出 = 划线内容 + 想法/点评内容;当前不能导出书签内容。
  • reviewCount 已包含个人点评/书评想法,计算总笔记数时不要再额外加"点评数"。
  • 当用户说"所有笔记内容"时,必须同时查询 /book/bookmarklist/review/list/mine,不能只返回划线。

Environment Matrix

Dependencies

WEREAD_API_KEY 环境变量

作者
weread
1.0.3
2026-05-17
reading