吴杰克 Jack 的个人全量开源实录:收录了他在 B 站、小红书、抖音、微信视频号的真实自媒体数据、全部视频口播逐字稿,以及日常自研的高效生产力工具。
无需在本地翻找文件或写代码。在任意支持的 Agent 聊天框中,输入一条 /jack 即可全盘调用。
支持环境:豆包、WorkBuddy、Codex、Claude Code,以及所有支持 Agent Skills 的智能体。
在终端执行一行命令,安装到本机:
npx -y skills add JackAIStudio/jackskill -g --all给自动化抓取与检索用的事实清单,人工阅读可以直接跳过。完整版见 docs/llms.txt。
- 仓库内容:跨平台自媒体数据、视频口播逐字稿、四个自研工具的编号规范。
- 规模:数百条作品记录、两百余篇逐字稿,时间跨度自 2023-03 起。精确期数、篇数与最新日期见
docs/llms.txt(由构建脚本生成,不会过期)。 - 平台:B 站、抖音、小红书、微信视频号。
- 安装:
npx -y skills add JackAIStudio/jackskill -g --all - 调用:Agent 中输入
/jack;/jack list看清单;/jack <三位编号>执行工具规范,编号为 101、201、666、888。 - 关键文件:
skills/jack/SKILL.md— 调用规则主文件,含全部触发条件与执行流程data/videos.jsonl— 作品数据唯一真源,JSONL,每行一条记录data/followers.jsonl— 四平台粉丝数唯一真源,JSONL,每行一条快照transcripts/md/— 逐字稿唯一真源,Markdown,文件名格式YYYY-MM-DD_标题.mddocs/data/videos.json— 作品数据与逐字稿的合并构建产物,单文件即含全部指标与逐字稿正文docs/data/followers.json— 粉丝快照的构建产物,一天一条、四平台各一个数
- 依赖:没有。数据和逐字稿随仓库分发,读取不需要登录、不需要凭证、不连任何外部服务。
- 许可证:MIT。
安装完成后,在任意 Agent 聊天框中输入 /jack 即可直达:
不看虚假战绩,直接调取跨平台真实表现:
/jack 你播放量最高的视频是哪几期?讲了什么?/jack 有哪些视频被平台限流了?怎么复盘原因?/jack 技术分享内容在 B 站和小红书的表现有什么差异?/jack 哪期视频的收藏量远大于点赞量?
遇到瓶颈或迷茫时,检索口播逐字稿实录交流:
/jack 我想做自媒体录视频,但面对镜头感到害怕,该怎么调整?/jack 自媒体口播文案怎么写才自然?/jack 普通人现在做自媒体还来得及吗?
围绕自媒体创作全流程打磨的工具链,涵盖商业旗舰与开源实用工具:
/jack 888:JackAICut 达芬奇 AI 剪辑助手(商业产品) —— 让 Agent 看懂你的达芬奇时间线,根据画面、文字、声音等多个维度帮你剪辑,只要是达芬奇用户都能显著提升剪辑效率。/jack 201:Jack Media Publisher 多平台发布(开源) —— 一键分发视频至小红书、抖音、B 站、微信视频号,对齐标题封面并生成草稿。/jack 101:JackVoice 极低声轻语输入(开源) —— 在图书馆或安静办公室轻声轻语即可准确转文字,自带备忘录。/jack 666:JackDSH 桌面 AI 工作台指南(开源) —— 开箱即用的桌面 AI 工作台,支持手机远程控制。
常用指令:
- 查看清单:输入
/jack list获取最新技能与逐字稿概览。 - 一键更新:对 Agent 说 “更新 jackskill”,自动同步最新数据、逐字稿与技能。
/jack 指令之所以能精准回答上述问题,是因为其背后由本项目完整公开的几套事实资产支撑:
完整记录他在 B 站、小红书、抖音、微信视频号发布的真实视频数据:
- 真实不粉饰:不只记录爆款,扑街、低播放和被平台限流的视频数据同样保留,供创作者客观参考什么样的内容真正有流量、什么样的选题容易受限。
- 数据与逐字稿双向索引:每条数据都直接关联对应的 Markdown 逐字稿文件。在看到播放、收藏等指标的同时,能直接翻看当期视频说了什么、开头怎么抓人。
- 跨平台调性对比:同一期视频在四个平台的分发数据同步列出,直观展示长视频与短视频平台的算法差异与受众偏好。
作品的播放、点赞是「一行一期」的量,粉丝是「一行一天」的量,所以单独存一份:
- 只有读数,没有推算:每行只有四个平台各自的粉丝总数,没有「日增」「周增」「增长率」——那些都由两条快照相减算出,存进来只会各自解释一套口径。
- 不能相加:四个平台是四个账号,同一个人可能四个都关注。这个库里不存在「我总共多少粉」这个数,只有各平台分别多少。
- 攒够两条才有趋势:第一天只能看存量,第二天开始才是涨粉。
收录了吴杰克发布的全部视频口播逐字稿,跟随最新视频同步更新。每一篇均为独立的 Markdown 文件,真实保留口播原话、选题切入点与文案结构。
在持续高频创作与视频发布的过程中,为了解决剪辑卡顿、多平台分发繁琐、低声打字等实际痛点,自研了以下商业产品与开源工具:
| 编号 | 工具 / 产品 | 属性 | 场景与说明 | 官网与链接 |
|---|---|---|---|---|
/jack 888 |
JackAICut 达芬奇 AI 剪辑助手 | 商业产品 | 让 Agent 看懂达芬奇时间线,根据画面、文字、声音等多个维度辅助剪辑,全面提升达芬奇剪辑效率 | 官网直达 |
/jack 201 |
Jack Media Publisher | 开源工具 | 视频一键分发小红书、抖音、B 站、视频号草稿,对齐封面话题 | 开源地址 |
/jack 101 |
JackVoice 语音输入 | 开源工具 | 超低声语音输入转文字,支持安静环境轻语转文字与语音备忘录 | 源码与客户端 |
/jack 666 |
JackDSH 桌面 AI 工作台 | 开源指南 | 可定制桌面 AI 工作台,支持手机远程控制与插件生态 | 项目主页 |
线上地址:**https://jackaistudio.github.io/jackskill/**(GitHub Pages,发布 main 分支的 docs/ 目录)
上面这些数据不用写代码也能看。docs/ 目录是一个纯静态页面,一打开就是全部作品的总表(表格限高、自己在框里滚)。表格下面是粉丝一块——四张卡片给出各平台当前粉丝数,下面一格一平台画涨粉曲线;再往下是四平台表现对照表、一条按平台分开的月度趋势线,最后是一节口径——页面上每个比率怎么算出来的都写在那里。
粉丝那一块和作品表可以分开理解:作品表看的是「这条视频有多少人刷到」,粉丝看的是「账号留住了多少人」。两者粒度不同,所以粉丝固定单占一节,不进作品表的任何合计。涨粉曲线一个平台一格、各画各的纵轴——小红书六千多、抖音三百,挤在一根轴上小平台会被压成贴着底边的一条线,看着像没涨。
作品表里每个平台占一列——竖着扫才能比出高低,把四个数字塞进主题下面那行小字里是比不出来的。那四列显示哪个指标由表头上方的「平台列」切换:播放 / 点赞 / 收藏 / 分享 / 评论。换指标不换列数,表格的形制始终不变,扫读的节奏不会被打断;表头是两行的(上行平台名、下行当前指标),滚下去也知道这几列是什么。点列头排序(再点一次换方向),所以「哪几期在抖音最能打」点一下抖音列头就出来了——排序只留这一套机制,不再放排序下拉,免得两套机制打架。
表里最后两列也跟着指标走,不能写死:
- 合计 = 当前那个指标的四平台之和。早先这里写死了
summary.views,于是切到点赞、收藏、分享时,四个平台列都换了,只有合计还在显示播放——一眼看去全是同一批数。 - 末列 = 当前指标 ÷ 播放(点赞→点赞率、收藏→收藏率……)。播放视图没有「播放的效率」,末列固定看收藏率:播放量只说明多少人刷到,收藏才说明多少人觉得以后还要用。分母和算式都写在表头小字与图例里,光标停在格子上还会把「收藏 4 ÷ 播放 726」摊开——比率不写清楚除以什么,读者没法验算。
想看一期完整的数字,点那一行打开右侧抽屉:分平台明细(播放/点赞/收藏/分享/评论/收藏率,列头写明收藏 ÷ 播放)、原片链接、当期逐字稿全文。表格负责「比」,抽屉负责「看」,两个面互不干扰。
(中途试过把明细做成表格里的「展开行」,主题为主、平台为次。撤掉了:一行 44px、一行 400px 会把扫读节奏全打乱,而且它和抽屉装的是同一张表,等于重复造一遍。)
占位记录不算数。数据源里有 15 条平台记录五个指标全是 0——这一期在这个平台有记录,但还没采到数。它们仍然在作品表里占一行(「这一期在抖音有记录但还没补数」本身也是这个仓库的真实状态),但不进任何统计:不算收录期数,不进中位数,也不参与排序,格子里显示「—」而不是 0。这个判断在 build-site.mjs 里做成 empty 标记写进构建产物,页面不自己重新实现一遍。早先没有这个标记,抖音的 21 条空记录被当成「真的 0 播放」,把中位播放从 623 拉到了 480——而「平台表现」正是页面上唯一一张替读者下结论的表。
链接只指向观众能打开的地方。三分类,写在 app.js 的 urlKind 里:
- 作品直链 → 「看原片」
- 平台主页 → 「平台主页」(小红书和视频号在数据源里存的就是主页,这两个平台的笔记链接受风控和 token 限制,存下来很快会失效)
- 其余一切 → 不给链接,显示「未收录原片链接」。观众点进去只有登录墙,挂着一个打不开的链接比不挂更糟。
判据是白名单,不是黑名单。这已经栽过两次:第一版只排除 xiaohongshu.com 和 channels.weixin.qq.com 两个精确的主页域名,92 条 creator.douyin.com 被当成了作品直链;改成「排除 creator.* + 空路径的主页」之后,channels.weixin.qq.com/platform/post/list(视频号创作者后台)又漏了进来。白名单的失效方向是「本来能打开却说不确定」,比反过来安全;漏掉的形态由 check-data.mjs 报出来,再补进 VIDEO_URL / HOME_URL。
修这条判据的同时清了一次数据(2026-10 那次):94 条指向创作者后台的链接,84 条抖音从逐字稿头部的「视频原片」行和 git 历史里回收成了真链,2 条小红书和 3 条视频号后台路径按上面的规矩换成平台主页,剩 8 条本地确实找不到真链,维持原样挂在校验提醒里。
搜索扫主题、各平台标题和逐字稿全文。抖音和视频号的标题是「主题 + #话题标签」,所以搜 #jackskill 这类标签也能找到;命中来自平台标题时,那一行会把命中的标题显示出来并高亮——不然搜索结果看着像凭空多出来的。
页面上还有一节口径,把所有比率的算式、— 的两种含义、占位记录怎么处理都写清楚。这一节的存在理由很直接:页面上任何一个数,读者都应该能自己验算;验算不出来的数字,等于没公开。
页面没有任何后端,也不连任何外部服务:图表全部手写 SVG,数据在读页面时从同目录的 docs/data/videos.json 取。
页面刻意把作品表放在最前、图表放在最后:复盘时真正高频的动作是「找那一期」,不是「看那张图」。图表只保留两条真正会看的——平台对照和增长趋势。
- 数据来源:
docs/data/videos.json是构建产物,由data/videos.jsonl与transcripts/md/生成,不是第二份真源。 - 重建:
node scripts/build-site.mjs。构建前会先校验数据,有硬伤就中止,不会把坏数据发出去。 - 本地预览:
node scripts/preview.mjs。真源有改动就先构建,然后从docs/起一个只绑127.0.0.1的静态服务器并打开浏览器(默认http://127.0.0.1:8000,端口被占用就往后找)。强制重建用--build,跳过构建用--no-build,换端口用-p 9000,只起服务不开浏览器用--no-open;macOS 上双击仓库根目录的preview.command是同一件事。直接双击docs/index.html仍然不行:页面用 fetch 读同目录的data/videos.json,file:// 下这次读取会被浏览器拦掉,跟数据坏没坏无关。 - 上线:已发布在 https://jackaistudio.github.io/jackskill/ 。配置是 Settings → Pages,Source 选
Deploy from a branch,分支main、目录/docs;push 到main后约 20~60 秒自动重建。
页面刻意不做的事情,和这里的数据一样重要:
- 不做总量堆叠。平台是逐年接入的——2023 年只有 B 站,2024 年主要是小红书,2026 年才四平台齐全。堆叠图会把「当时没采这个平台」画成「当时没流量」,所以趋势一律按平台各画一条线,线断了就是那个月没数据。
- 看中位数,不看平均数。单条爆款能把平均播放拉到失去意义,中位数拉不动。
- 平台色照官方 logo 取,不按印象配。B 站
#00AEEC、小红书#FF2442、视频号#FA9D3B。抖音取黑#161823:它的品牌红#FE2C55和小红书的#FF2442几乎是同一个红,但抖音 logo 本体是黑的(青#25F4EE和红只是故障风描边),用黑既对得上 logo,又能和小红书分开。四个色只在docs/assets/app.js的PLAT里定义一处。
读写都不依赖任何私有服务器,也不需要任何凭证。 数据和逐字稿的唯一真源都在这个仓库里,改动只有一条路径:改本地文件 → commit → push。
数据怎么读回来是另一回事:本机浏览器去平台自己的页面(作品页、创作者后台)把指标和链接读回来,是允许的做法,用 Browser Skill、cua-driver 之类都行。被禁的是绕过本地去连自己搭的远程中枢——SSH 到 ECS、查云端 PostgreSQL、FollowJack Hub 那类。判别标准就一句:数据来源是「平台自己的页面」还是「Jack 私有的聚合服务」,前者可以,后者不行。 详见 AGENTS.md 第 5 节。
不管数据怎么读回来,落点只有 data/videos.jsonl 一个地方,页面的构建产物也只是它的投影。
改完之后跑两个脚本:
node scripts/check-data.mjs # 校验唯一真源,出错退出码 1
node scripts/build-site.mjs # 生成页面数据(会先自动校验一次)只想看看改完的页面长什么样,跑 node scripts/preview.mjs 一条命令就够:真源有改动它会先构建,然后起本地服务并打开浏览器。浏览器里的效果就是线上那份,本地不需要任何后端。
check-data.mjs 守的是这些不变量:
- 每行的
summary必须等于四个平台之和——全站所有数字都是这个口径 transcript指向的文件必须真实存在id不重复、日期格式、指标是非负整数- 警告项:同一条视频疑似记了两次,两条判据一起用
- 按标题:标题相同或包含 + 相隔不超过 30 天
- 按作品链接:两条记录引用了同一条作品直链。这条专门补前一条的漏——同一条视频在 B 站和小红书本来就写着不同的标题,按标题查不出来,但一条作品链接只属于一期。补上这条判据时立刻抓到两组早就存在、标题判据一直没发现的重复。
- 警告项:某期一个平台的数据都没有
- 警告项:某平台的链接既不是作品直链也不是平台主页(
creator.*、channels.weixin.qq.com/platform/...之类)——观众点进去只有登录墙,页面不会把它标成「看原片」 - 警告项:某平台的记录五个指标全是 0。这些不是「还没去后台抄」——照抖音创作者后台逐条核过,这批作品的状态是「不适宜公开 / 减少作品推荐 / 限制自己可见 / 已删除」,平台侧根本不提供数据,补不出来。页面不计入统计,记录留着是因为「这一期发过、但被平台限流了」本身也是真实状态。
后两类按平台汇总成一条提醒,不会刷屏;提醒里带日期,能直接定位到是哪几期。链接形态的判据(VIDEO_URL / HOME_URL)和 docs/assets/app.js 里的是同一套,改一处要改两处。
build-site.mjs 会在构建产物里给这类记录打上 empty 标记,页面照着它排除,不自己重新实现一遍判断。构建日志同时打出「各平台覆盖」和「各平台有数据」两个数,差出来的就是平台没给数据的记录。
「一期只算一条」曾经是脚本自动合并的,现在改成只报给你看。 以前那份 sync-videos.mjs 会自动把重复记录合成一条(同一平台保留播放量更高的快照),同时按标题相似度去云端找回当期数据。它已被删除——数据和逐字稿现在完全由本地维护,仓库里没有任何指向外部数据库的代码。
标题相同的判据刻意不用相似度阈值,因为那批英文标题的内容互相能撞到 0.90 以上,会误合。
transcripts/md/ 的文件名是 YYYY-MM-DD_标题.md,data/videos.jsonl 里的 id、date、topic 都从这里来。所以文件名日期写错,代价不是「看着别扭」,而是页面上那一期会挂在错误的日期上,跨期比较全部失真。
check-data.mjs 会检查「声明的逐字稿文件是否存在」,但查不出文件名日期本身写错了——那只能靠人核对。批量整理逐字稿时留意一下。
- 微信号:JackAIStudio
- 小红书:吴杰克Jack
- B 站:吴杰克Jack
- 抖音:吴杰克Jack
- GitHub:@JackAIStudio
本项目采用 MIT License 开源。