Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ttttstc/ni-skill --skill douyin-bulk-transcript-exportergit clone --depth 1 https://github.com/ttttstc/ni-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter)<a href="https://agentmods.dev/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter"><img src="https://agentmods.dev/badge/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter"><img src="https://agentmods.dev/badge/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.03272 |
| Opus 5.5 | $0.00039 | $0.01309 |
| Sonnet 5.5 | $0.00020 | $0.00654 |
| Haiku 4.5 | $0.00010 | $0.00327 |
Grade A, and why
douyin-bulk-transcript-exporter scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
> 注意:禁止用 curl/requests 直接请求抖音接口;必须走真实浏览器。视频较多时滚动上限要相应加大,别漏。 How it starts
The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.
抖音博主主页全量逐字稿导出
适用与边界
- 输入:抖音博主主页
https://www.douyin.com/user/xxx;也支持直接给一批单条视频 URL。 - 输出:本地 Markdown 文件,每个视频一个,文件名
{视频标题}-{博主名}.md。 - 本 Skill 只做本地文件归档,不写飞书表格。
- 逐字稿以抖音页面 web.fetch 返回的字幕为准;禁止伪造逐字稿、禁止写占位符。
输入确认(Step 0,先问齐再开跑)
开工前必须确认,缺失就问,不要假设:
- 博主主页 URL(必填):用户没给就问"请提供博主主页链接"。
- 输出目录(必填):默认
./douyin_transcripts/{博主名}/,用户指定则用指定目录。 - 视频数量:默认全量;说"最新 N 条"只取前 N。
- 短视频处理:默认跳过口播极短的片段(页面时长 < 约 20 秒)。用户要求全部导出则不跳过。
- 是否校订错字:默认校订(见 Step 3)。
Step 1:从博主主页提取全部视频链接(内置浏览器)
这是"全量"的关键环节:主页默认只加载前几条,必须滚动懒加载到底,再从 DOM 提取所有视频链接。
⚠️ 已有视频清单时,整步可跳过(最快路径):如果用户已提供或手头已有视频链接清单(整理好的 md / csv / json,或一批单条 URL),直接跳到 Step 2 逐条取稿,不要再爬主页。实测几百上千条就是这么跑的,零滚动、零反爬。
⚠️ 别再折腾"更优雅"的程序化取法(已实测不可用,别重复试):
- yt-dlp 只有单条
Douyin提取器,没有"列博主全部作品"的 user 列表能力,单条还会报"需要新鲜 cookie"。- 抖音作品列表 JSON 接口
/aweme/v1/web/aweme/post/虽存在,但依赖a_bogus反爬混淆签名参数;在浏览器里用 fetch / XHR / http_get 调它都返回空,不重写抖音那套签名就调不通。- 结论:绕不开登录态浏览器,没有"一行命令拉全量"的捷径。
Windows 用 computer_use_tool(plane="bu"),代码里 import seed_browser_use as bu;Mac 用 mac_computer_use_tool(同为 plane="bu")。API 一致。
- 打开主页:
bu.navigate("https://www.douyin.com/user/xxx") bu.wait_for_load(timeout=25) - 登录检测:作品列表显示"服务异常,重新刷新拉取数据"、出现登录弹窗、或页面顶部有"登录"按钮且列表为空 → 调用
interaction.request_action(type="browserControl", display_message="抖音需要登录才能查看完整作品列表,请接管浏览器登录后交回。"),用户交回后重新bu.snapshot()确认列表已加载。 - 滚动加载到底:
import time for _ in range(30): # 视频多就加大上限 bu.scroll(500, 500, "down", amount=3) time.sleep(1.5) txt = bu.get_page_text() if "暂时没有更多了" in txt: break - 提取视频链接(DOM 去重):
rows = bu.read_all("a[href*='/video/']", fields=["href"], limit=1000) seen, videos = set(), [] for r in rows: href = r.get("href","") vid = href.rstrip("/").split("/")[-1].split("?")[0] if vid.isdigit() and vid not in seen: seen.add(vid) videos.append({"video_id": vid, "url": f"https://www.douyin.com/video/{vid}"})- 同一视频可能在"作品/推荐/置顶"多处出现,按 video_id 去重。
- 保持页面顺序(新→旧)。用户只要最新 N 条就截断。
- (可选)从
bu.get_page_text()里顺带记录每条的标题、点赞数,写入结果清单便于核对。
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 144 lines · 98 tokens per session scan A a5061b9a2d96
douyin-bulk-transcript-exporter is a skill published in the GitHub repository ttttstc/ni-skill (10 stars, last pushed 6d ago), licensed MIT. It adds 98 tokens to every session and 3,272 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-30.
douyin-bulk-transcript-exporter compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| douyin-bulk-transcript-exporterttttstc/ni-skill | Skill | 10 | 6d ago | MIT | A | 98 | Codex |
| interactive-loginyc-software/qm | Skill | 16k | yesterday | MIT | A | 46 | Claude Code, Codex |
| pinchtab-mcppinchtab/pinchtab | Skill | 11k | 10d ago | MIT | A | 52 | Claude Code, Codex |
| azure-messaging-webpubsub-javamicrosoft/skills | Skill | 3.2k | yesterday | MIT | A | 43 | Claude Code |
| cua-driverdavidondrej/skills | Skill | 4.3k | 3d ago | MIT | A | 68 | Claude Code, Codex |
| open-design-browsercompozy/compozy | Skill | 2.8k | yesterday | MIT | A | 56 | Claude Code, Codex |
| southwestborski/travel-hacking-toolkit | Skill | 895 | yesterday | MIT | A | 40 | Claude Code |