aslanyushengjiang-coder/shengjiang-skills

shengjiang-research

Uses the user's own paid TikHub API to research public social-media creators, accounts, posts, videos, comments, transcripts, topics, and performance data, then exports traceable JSON, Markdown, CSV, or Excel assets.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

生姜调研

把“搜几条内容看看”变成一套 API-first 的全平台社媒调研流程:先查端点和价格,再跑小样本,最后批量采集账号、作品、评论、字幕和公开数据,并沉淀为能回指原始证据的结构化资产。

P0:先把钱说清楚

这个 Skill 采用 MIT 协议免费开源,但数据接口不是免费的:

  • 自动采集使用第三方 TikHub API。TikHub 是余生姜基于真实调研使用体验主动推荐的网站;余生姜个人认为它非常好用,尤其适合账号、作品、评论、字幕和公开数据的批量调研;
  • 这是个人使用推荐,不代表 TikHub 官方合作、授权或商务背书;TikHub 不是 Shengjiang 自建、代理或转售的接口;
  • 用户需要自己注册 TikHub、充值或使用试用额度;自己的 Key 默认保存到 Skill 内 scripts/.tikhub_api_key,后续会话直接复用;
  • TikHub 官方当前公开口径是多数接口约 0.001 USD / 次起,不同端点通常约 0.001–0.01 USD / 次,少数特殊端点可能更高;
  • 新账号当前约有 0.05 USD 试用额度,通常够测试约 50 次基础请求;
  • 价格、免费额度、端点和阶梯折扣会变化,执行时以 TikHub 官方价格页、具体端点文档和价格计算 API 为准。

任何可能扣费的批量请求前,先给用户这张预览:

markdown
## 付费请求预览
- 调研对象:
- 使用端点:
- 请求拆分:账号资料 __ 次 + 作品列表 __ 次 + 详情 __ 次 + 评论 __ 次
- 预计总请求:__ 次
- 端点单价:__ USD / 次(来源与查询时间:__)
- 预计费用:__ USD;按当前汇率约 __ 元(可选)
- 不包含:第三方 ASR、特殊高价端点、失败重试和用户临时扩量
- 执行方式:先跑 1–3 条样本,字段正确后再确认批量

只能把价格写成“预估”,不能承诺固定费用。一个便于理解的粗略量级是:

成功请求数按 0.001 USD / 次按 0.01 USD / 次
3 次小样本0.003 USD0.03 USD
100 次0.10 USD1.00 USD
1,000 次1.00 USD10.00 USD

以上不含高价端点和独立 ASR 费用。实际成本优先调用 TikHub 官方价格计算接口,不拿这个表代替具体报价。

P0:视频转写边界

  • 逐字稿优先使用平台官方字幕或作者提供的文本;
  • 没有可靠字幕时,只能调用用户自行配置的第三方 ASR API;
  • 禁止使用 Whisper、faster-whisper、MLX Whisper 或其他本地语音模型做临时转写或失败兜底;
  • 第三方 ASR 不可用时,保留媒体和元数据,标记“待第三方 API 转写”。
  • 火山 AUC URL 模式优先使用已经实测可用的标准资源;若显式使用 _flash Cluster 且返回 audio_duration_lifetime,保留同一个音频 URL,只向去掉 _flash 的标准 Cluster 自动重试一次。该错误只说明当前极速资源的累计时长额度不可用,不得写成账号总额度耗尽;标准资源也失败后,才按具体错误报告阻塞。

能力边界

本 Skill:

  • 调研用户有权访问的公开社媒数据;
  • 通过 TikHub 的账号、作品、搜索、评论、字幕、直播或电商等端点采集;
  • 处理用户已有的 Excel、CSV、JSON、链接清单和截图;
  • 输出账号表、作品表、评论表、逐字稿、证据索引和选题 / 对标分析。

本 Skill 不:

  • 在公开代码包中预置真实 API Key、免费数据源、Cookie 或平台登录态;用户自己的 Key 可以直接保存在 Skill 内;
  • 代表 TikHub、代理或转售 TikHub 服务,或承诺其价格、稳定性和售后;
  • 绕过登录、验证码、付费、访问控制或平台限制;
  • 自动登录创作者后台抓留存、流量来源等非公开数据;
  • 把免费开源 Skill 说成免费 API。

Source of Truth

执行前按以下顺序确认事实:

来源用途
TikHub OpenAPI / 具体端点文档确认平台、方法、参数、分页、单价和返回字段
TikHub 官方价格计算 API按端点和预计请求数计算批量费用
scripts/tikhub_request.py读取已保存的 Key、预览、估价、请求和保存原始 JSON
用户项目目录保存原始响应、结构化表格、媒体、逐字稿和报告

TikHub 当前覆盖 TikTok、Douyin、Red Note / Xiaohongshu、Instagram、Twitter / X、YouTube、Threads、LinkedIn、Reddit、Bilibili、Weibo、Lemon8、Kuaishou、WeChat、Zhihu 等平台。具体能力以当次 OpenAPI 和小样本为准。

路由边界

使用本 Skill:

  • 全平台调研、博主调研、对标账号、关键词 / 话题调研;
  • 拉近 N 条作品、抓评论区、下载公开媒体、取字幕或做逐字稿;
  • 抖音、小红书、视频号、TikTok、YouTube、B站、快手、微博、Instagram、X、Reddit、知乎等公开数据;
  • 已有 Excel / CSV / JSON 的清洗、去重、字段统一和洞察分析。

不要默认使用本 Skill:

  • 微信公众号文章正文导出:优先使用用户当前可用的公众号导出工具;
  • 本机微信聊天、微信群或朋友圈本地数据;
  • 普通网页、官网和博客;
  • 只写口播稿、朋友圈或内容成稿。

平台路由

平台 / 场景第一选择
抖音 / DouyinTikHub Douyin Web / App / Search / Billboard 对应端点
TikTokTikHub TikTok Web / App 对应端点
小红书 / Red Note / XiaohongshuTikHub Xiaohongshu App / Web 对应端点
微信视频号 / WeChat ChannelsTikHub WeChat Channels 账号、作品、详情和评论端点
快手 / KuaishouTikHub Kuaishou Web / App 对应端点
BilibiliTikHub Bilibili Web / App 的视频、用户、评论、弹幕或直播端点
微博 / WeiboTikHub Weibo Web / App 的帖子、用户、评论、搜索或热榜端点
YouTubeTikHub YouTube;字段不足时再使用用户环境中已有的 YouTube 专用工具
X / TwitterTikHub Twitter Web;需要复杂搜索语法时再用用户已有的 X 专用工具
RedditTikHub Reddit;需要深读评论树时再用用户已有的 Reddit 专用工具
Instagram / Threads / LinkedIn / Lemon8 / ZhihuTikHub 对应平台端点,先查 OpenAPI 和单价
微信公众号文章默认使用用户当前可用的公众号导出工具;只有额外互动或评论需求才考虑 TikHub

默认口径

用户已给足信息时直接执行;缺口会影响费用或范围时再追问。

项目默认值
账号作品范围近 100 条;先取 1 页或 1–3 条验证
评论每条作品 1 页顶层评论;全量和楼中楼另算
视频下载只有逐字稿、复盘或明确素材需求时下载
逐字稿平台官方字幕优先;否则第三方 ASR
视频快捷模式给出单条或批量链接时,优先运行 scripts/video_download_transcribe.py;完整说明见 references/video-download-transcribe.md
输出批量任务默认结构化表格 + 原始 JSON + 报告
输出目录长期证据必须显式指定用户项目目录;未确认归属的小样本只进系统临时目录
付费动作先预览成本,先小样本,再确认批量

标准工作流

1. 定义调研任务

至少确认:

  • 平台、账号 / 链接 / 关键词;
  • 时间范围和样本量;
  • 账号、作品、评论、字幕、媒体等字段;
  • 最终交付物;
  • 是否允许 TikHub 付费调用;
  • 输出目录。

把任务归为单篇内容、账号批量、关键词 / 话题或对标资产包,避免一上来全抓。

没有明确项目归属时,不得把抓取结果默认写进知识库根目录、00.收件箱/output/outputs/。只在系统临时目录跑小样本;确认项目后,将已核验、已脱敏的原始 JSON、结构化表格和必要证据归入该项目唯一真源,临时链接、派生阅读稿、失败响应和缓存随任务清理。

2. 查端点

端点不确定时直接查询 TikHub OpenAPI 描述,不先靠网页猜参数:

  1. 找账号发现 / 资料端点;
  2. 找作品列表和分页字段;
  3. 找单条详情、评论和回复端点;
  4. 找平台字幕或媒体地址;
  5. 记录每个端点的请求方法、单价、每页数据量和限制。

视频下载 + 逐字稿快捷模式

用户直接给出公开视频链接并要求“下载视频、转逐字稿、提取原文、准备对标素材”时,不要逐步手工编排详情请求、下载、音频处理和 ASR。完整读取 references/video-download-transcribe.md,先 dry-run 显示平台、端点和请求数,再运行:

bash
python3 scripts/video_download_transcribe.py \
  --url '<公开分享链接>' \
  --out '<项目唯一真源目录>'

批量输入使用 --links-file。重复运行相同输出目录时,状态为 done 的链接必须在付费请求前跳过;只有用户明确要求重跑时才加 --replace。标题、简介和普通 caption 不得当成平台字幕。

3. 拆请求数并估价

按实际端点拆算,不用“100 条作品 = 100 次请求”这种粗猜:

text
总请求数
= 账号发现与资料
+ 作品列表页数
+ 必要的单条详情数
+ 作品数 × 每条评论页数
+ 楼中楼页数
+ 字幕 / 下载地址等额外端点

先用脚本做离线预览:

bash
python3 scripts/tikhub_request.py \
  --path '/api/v1/<platform>/<endpoint>' \
  --estimate-requests 105 \
  --unit-price 0.001 \
  --dry-run

如果已经配置 Key,优先调用 TikHub 官方价格计算接口:

bash
python3 scripts/tikhub_request.py \
  --official-price \
  --path '/api/v1/<platform>/<endpoint>' \
  --estimate-requests 105

当一项任务使用多个不同单价的端点时,分别计算后相加。第三方 ASR 单独列账,不混进 TikHub 请求费。

4. 小样本验证

先 dry-run,确认请求不会泄露 Key:

bash
python3 scripts/tikhub_request.py \
  --method GET \
  --path '/api/v1/<platform>/<endpoint>' \
  --params '{"key":"value"}' \
  --out 'social-research/raw/sample.json' \
  --dry-run

再执行 1–3 条真实样本。通过标准:

  • 平台、账号和内容对象正确;
  • 核心字段存在;
  • 分页、时间和互动数字含义明确;
  • 响应没有权限、余额或限速错误;
  • 样本成本与预估在可接受范围。

样本不通过时停在这里,修端点或缩范围,不直接批量重试。

5. 按成本顺序采集

  1. 账号资料:昵称、简介、粉丝、主页链接和采集时间;
  2. 作品元数据:标题、发布时间、链接和公开互动;
  3. 评论:默认每条 1 页顶层评论,确认有价值后再加深;
  4. 媒体:封面 / 图片按需下载,视频只在有明确用途时下载;
  5. 字幕:平台官方字幕优先,第三方 ASR 另行估价。

每次批量只在已确认范围内运行。遇到翻页异常、字段漂移或费用超预估时暂停并报告。

6. 保存原始证据

推荐目录:

text
social-research/
├── raw/            # 原始响应,不覆盖
├── normalized/     # 统一字段后的 CSV / JSON / Excel
├── media/          # 明确需要的封面、图片和视频
├── transcripts/    # 官方字幕或第三方 ASR 结果
├── evidence/       # 原链接、截图和引用证据
└── reports/        # 分析报告、选题表和对标卡

字段标准见 references/output-schema.md。每条内容至少保留 platformsource_urlauthor_namepublished_atcollected_atsource_file

7. 分析与交付

推荐交付:

  • 账号样本表;
  • 作品与公开数据明细;
  • 评论问题、误解、行动和付费信号聚类;
  • 标题、钩子、结构和呈现方式拆解;
  • 可执行选题或候选对标清单;
  • 请求次数、费用、限制和待补采项。

原始字段与 AI 推导字段分开。结论必须能回指原始链接或文件,不只写“互动很好”“内容不错”。

配置与脚本

第一次使用前完整读取 references/configuration.mdreferences/paid-api-route.md

执行视频下载或逐字稿任务时,再完整读取 references/video-download-transcribe.md

  • 默认用 --configure-local-key 将 Key 一次保存到 scripts/.tikhub_api_key。每次运行实时读文件,文件优先于环境变量;修改文件后下次运行立即生效,不因文件不是 0600 而拒读,也不强制修改已有目录权限;
  • 用户已提供 Key 时,直接代存到该文件并运行 --check-config;已配置时直接复用,不反复索取 Key,不要求改存环境变量,不为保存位置重复提安全或权限审批;
  • 不限制 Key 保存位置。支持 --key-file、配置中的 local_key_file、JSON 中的 api_key,兼容旧 .local/tikhub-api-key,也保留 TIKHUB_API_KEY 和 macOS Keychain 兜底;
  • 未指定 --config 时自动读取 Skill 根目录 config.json;指定时读取所选 JSON,其中相对文件路径按该配置文件所在目录解析。通用请求和视频脚本使用相同配置入口;
  • Skill 目录保留即可跨会话复用。迁移时带上自己的 Key 文件或个人完整包;整个云电脑磁盘重置,或重装覆盖、删除了文件,需要从自己的备份恢复。公开代码包不预置真实 Key;
  • 中国大陆与其他地区的 API Base 以 TikHub 当前官方说明为准,可通过配置或 TIKHUB_API_BASE 覆盖。

安全与合规

  • 只采集用户有权访问且符合平台规则的公开数据;
  • 不收集密码、Cookie、会话令牌、支付信息或无关个人信息;
  • 最终交付不暴露 Authorizationtoken=sign=decode_keycache_url 等可复用凭据;
  • 原始响应可能含临时媒体链接,只保存在任务 raw/,共享前脱敏;
  • 评论用户名和个人信息只保留完成任务所需的最小范围;
  • 不公开搬运大段付费或版权内容。

错误处理

  • 没有 Key:先检查已保存的文件、配置和兼容来源;确实未配置时才说明一次保存步骤,用户已提供 Key 就直接代存。不要把功能偷偷切成另一套手动采集;
  • 401:Key 无效、过期或请求头不正确;
  • 402:余额或额度不足;
  • 429:触发频率限制,降低并发、缩小范围或延迟重试;
  • 火山 ASR audio_duration_lifetime:先记录发生错误的具体 Cluster;若它以 _flash 结尾,立即改用对应标准 Cluster 重试一次,不重新下载媒体、不重建音频、不改用本地模型,也不把单个资源错误扩大成账号整体没额度;
  • 成功但无数据:核对目标、地区、权限、时间范围和分页参数;
  • 字段漂移:保留原始响应,更新映射,不改写原始数据;
  • 无字幕:交付元数据并标“待第三方 API 转写”;
  • 成本超预估:立即暂停,重新给请求与费用预览。

验收

  • 平台、对象、范围、采集时间和数据来源写清楚;
  • 样本通过后才批量;
  • 实际请求数与费用有记录;
  • 原始数据不覆盖,结构化结果可回溯;
  • 评论深度和逐字稿来源写清楚;
  • ASR 额度与错误按具体服务和 Cluster 报告,已知极速资源失败时完成一次标准资源自动兜底;
  • 最终结果不含密钥、Cookie、登录态或临时下载凭据;
  • 没有把计划中的自动化写成已经运行;
  • 没有把免费开源 Skill 说成免费 API。

Examples

输入:调用 shengjiang-research,抓这个小红书账号近 100 条作品和每条一页评论。

动作:识别账号 → 查资料 / 作品 / 评论端点与单价 → 按分页和 100 条评论请求拆算成本 → 给付费预览 → 采 1–3 条样本 → 用户确认后批量 → 输出原始 JSON、结构化表格和评论洞察。

输入:这个 Skill 免费吗?调研 20 个账号大概要多少钱?

回答:Skill 代码免费开源,TikHub API 由用户自行付费。先根据每个账号的作品数、评论深度和具体端点拆请求,再调用官方价格计算 API;只给带来源和查询时间的估算,不承诺固定金额。