微信读书阅读统计

查看阅读时长、偏好分析和阅读统计

✨ 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

你本月阅读约45小时,平均每天1.5小时,阅读天数18天

Quick Start (3 Steps)

Get up and running in minutes

1

Install

2

Config

设置 WEREAD_API_KEY 环境变量
3

First Trigger

Commands

CommandDescriptionRequired Args
本周阅读统计查看本周阅读数据None
本月阅读统计查看本月阅读数据None
年度阅读统计查看年度阅读数据None

Typical Use Cases

查看阅读统计

查看阅读时长、天数等统计

Overview

readdata — 阅读统计

查看个人阅读数据统计,包含阅读时长、天数、读书排行、偏好分析等。

⚠️ 使用前必须阅读本文件字段说明。 阅读统计字段容易因字段名产生误判,尤其是所有阅读时长字段的单位。调用 /readdata/detail 前必须先确认本文件中的参数、字段单位和统计口径;禁止凭字段名或数值大小推断单位。

接口

/readdata/detail — 阅读统计详情

请求参数:

参数类型必填说明
modestring统计维度:weekly=本周, monthly=本月, annually=本年, overall=总计。默认 monthly
baseTimeint基准时间戳(0=当前周期),此时服务端会归一化到周期起点:周一、月初、年初;overall 固定为 0。传历史时间戳可查看该时间戳所在周期的数据;annually 只返回 baseTime 所在自然年的数据,不会自动包含后续年份

回包字段说明(字段按 mode 和数据条件可选返回):

字段说明
baseTime统计周期的基准时间戳:weekly 为周一 00:00,monthly 为月初 00:00,annually 为年初 00:00,overall 为 0
readTimes分桶阅读/收听总时长(对象,key 为分桶起始时间戳,value 为秒数)。weekly/monthly 通常按天分桶,annually 按月分桶,overall 按年分桶
dailyReadTimes年度模式可能返回的每日阅读时长明细(对象,key 为日期时间戳,value 为秒数);用于日历明细展示,不应替代 totalReadTime 作为总量口径
readDays有效阅读天数。服务端按有效阅读规则计算,当前规则为单日阅读满 1 分钟
totalReadTime当前请求周期的总阅读/收听时长()。统计总时长时优先使用该字段,readTimes 仅用于明细展示或交叉校验;禁止误当成分钟或小时
dayAverageReadTime日均阅读/收听时长(秒),分母是当前周期已过去的自然日数或历史完整周期自然日数,不是 readDays
compare与上一周期的日均时长对比比例;正数表示增长,负数表示下降。该字段只在当前周期且上一周期数据足够时返回,0.2 表示约增长 20%
readLongest读得最多的书/有声内容排行数组,最多 10 条,按 readTime 降序;低于 5 分钟的条目会被过滤
readLongest[].book书籍信息对象(电子书/出版书),包含 bookIdtitleauthorcover
readLongest[].albumInfo有声内容信息对象;当排行条目是有声书/专辑时返回
readLongest[].readTime该书或有声内容在当前统计范围内的阅读/收听时长(秒)
readLongest[].recordReadingTime该书的朗读/记录类阅读时长(秒),存在时才返回
readLongest[].tags标签数组,目前常见值包括 笔记最多单日阅读最久
readStat阅读统计摘要数组
readStat[].stat统计项名称,常见为 读过读完阅读笔记
readStat[].counts统计值文案,如 12本45天120条
readStat[].scheme对应统计项的 App 跳转链接,可能为空
preferCategory偏好阅读分类数组,最多 8 个;不足时可能补充默认分类占位
preferCategory[].categoryId分类 ID
preferCategory[].categoryTitle分类名称
preferCategory[].parentCategoryId父分类 ID
preferCategory[].parentCategoryTitle父分类名称
preferCategory[].val分类偏好权重,按最高分类阅读时长归一化后的相对值,用于图表展示
preferCategory[].readingTime该分类阅读时长(秒)
preferCategory[].readingCount该分类阅读本数
preferCategory[].categoryType分类类型标记,普通分类为 0,部分特殊分类会返回 1 或 2
preferCategoryWord偏好分类文案,如 偏好阅读文学;年度报告场景可能改为固定文案 偏好阅读
preferTime24 小时阅读时段分布数组,值为秒数。注意输出顺序从 6 点开始,依次到次日 5 点,不是从 0 点开始
preferTimeWord偏好时段文案。总偏好时段数据不足 10 小时时可能不返回;常见文案如 偏好上午阅读偏好白天阅读偏好夜间阅读汲取新知,昼夜不倦
preferAuthor偏好作者数组。只有作者数据达到展示阈值时返回
preferAuthor[].authorId作者 ID
preferAuthor[].name作者名
preferAuthor[].count阅读该作者的书本数
preferAuthor[].readTime阅读该作者作品的时长,格式化字符串,如 5小时30分钟,不是秒数
preferAuthor[].user作者关联用户信息,存在时返回
authorCount符合统计条件的作者总数,不一定等于 preferAuthor 返回条数
preferPublisher偏好出版社数组。至少 3 个出版社且最高出版社阅读本数达到阈值时返回
preferPublisher[].name出版社名
preferPublisher[].count阅读该出版社书籍的本数
preferCp偏好版权方数组。满足展示阈值时返回
preferCp[].count阅读该版权方书籍的本数
preferCp[].copyrightInfo版权方信息,包括名称、用户 VID、头像、角色等
readRate文字阅读占比百分比,计算口径约为 wrReadTime / (wrReadTime + wrListenTime) * 100。当总时长不足 1 小时或文字阅读占比过高时不返回
wrReadTime文字阅读时长(秒),通常为 totalReadTime - wrListenTime;仅在 readRate 可展示时返回
wrListenTime听书/TTS/有声内容时长(秒);仅在 readRate 可展示时返回
rank本周好友阅读排行信息;仅当前周且未隐藏排行时返回
rank.text排行文案,如 朋友中排第3名
rank.scheme排行跳转链接
registTime用户注册时间戳
medals勋章数组;可展示勋章不少于 3 个时返回
preferBooks偏好阅读书籍卡片数组,包含书籍、推荐理由和偏好类型等信息
yearReport年度报告入口数组。overall 可能返回多年的入口,annually 可能返回当前年份入口;times 为该年 12 个月阅读/收听时长数组
recordReadingTime总朗读/记录类阅读时长(秒),目前主要在 overall 模式下汇总返回
readRecordsWord书籍分布模块标题文案,当前固定为 书籍分布
readDistributionWord点评分布模块标题文案,当前固定为 点评分布
readTimeGears阅读时长档位数组,当前为 [60, 1800, 3600, 10800, 18000],用于前端展示分段
styleType样式类型,常见为 normal;年度报告场景可能返回特殊样式

年度报告相关字段(如 annualList2023preferBooks2023、2025 年报模块字段等)会随活动配置变化,不作为通用阅读统计字段依赖。

周期特点与区间组合

/readdata/detail 只支持按固定自然周期查询,不支持直接传任意起止日期。遇到"某天至今"、“某月中旬到现在”、“跨年区间"这类请求时,应通过多个固定周期结果组合计算。

mode周期粒度baseTime 行为适合用途
weekly自然周归一到该周周一 00:00本周、某历史周
monthly自然月归一到该月 1 日 00:00本月、某历史月、区间边界扣减
annually自然年归一到该年 1 月 1 日 00:00某年全年、今年至今、跨年区间拼接
overall全部历史固定为 0总计,不适合拆任意日期区间

组合原则:

  1. 优先用较大周期减少调用次数:整年用 annually,整月用 monthly
  2. 跨年区间按自然年拆分:历史整年 + 当前年至今。
  3. 起点落在年/月中间时,可用"大周期 - 起点之前的完整小周期"近似组合;如果接口返回 dailyReadTimes,可对边界日期做日级精确扣减。
  4. 完整周期使用该周期回包的 totalReadTime不完整边界周期优先使用 dailyReadTimes 精确扣除起点前/终点后的日期。若没有日级明细,只能使用月级/年级近似,并在回答中说明口径。
  5. 不要把截断展示的 readTimes 当作主结果;readTimes 仅用于明细展示或交叉校验。

Environment Matrix

Dependencies

WEREAD_API_KEY 环境变量

作者
weread
1.0.3
2026-05-17
reading