douyin-bulk-transcript-exporter

douyin-bulk-transcript-exporter is a skill for Codex from ttttstc/ni-skill. It costs 98 tokens per session (3,272 once invoked), scanned A, original, MIT.

A browser-based workflow for collecting the videos from a Douyin creator's profile and saving each video's full available transcript as a Markdown file. Douyin is a Chinese short-video platform, and the workflow can also accept a list of individual video links.

In plain words
What is it for?
Use it to load a creator's profile, collect all or the latest requested video links, fetch their subtitles, correct obvious same-sound character errors, and save files named with the video title and creator.
Why use it?
It handles profile pages that load more videos only as the page is scrolled and uses the page's returned subtitles instead of inventing missing text. It keeps one transcript per video for local searching and archiving.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it to load a creator's profile, collect all or the latest requested video links, fetch their subtitles, correct obvious same-sound character errors, and save files named with the video title and creator.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter
Install

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.

Any agent
npx skills add ttttstc/ni-skill --skill douyin-bulk-transcript-exporter
Clone the repo
git clone --depth 1 https://github.com/ttttstc/ni-skill

Made for: Codex.

Wrote 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.

agentmods badge for douyin-bulk-transcript-exporter

README.md
[![agentmods](https://agentmods.dev/badge/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter/github.svg)](https://agentmods.dev/skills/ttttstc/ni-skill/douyin-bulk-transcript-exporter)
Your own site
<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.

agentmods 80×15 button for douyin-bulk-transcript-exporter

Your own site · 80×15
<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>
Per session 98 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,272 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 7d ago against content hash a5061b9a2d96, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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 直接请求抖音接口;必须走真实浏览器。视频较多时滚动上限要相应加大,别漏。
skills/douyin-bulk-transcript-exporter/SKILL.md · 144 lines

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,先问齐再开跑)

开工前必须确认,缺失就问,不要假设:

  1. 博主主页 URL(必填):用户没给就问"请提供博主主页链接"。
  2. 输出目录(必填):默认 ./douyin_transcripts/{博主名}/,用户指定则用指定目录。
  3. 视频数量:默认全量;说"最新 N 条"只取前 N。
  4. 短视频处理:默认跳过口播极短的片段(页面时长 < 约 20 秒)。用户要求全部导出则不跳过。
  5. 是否校订错字:默认校订(见 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 一致。

  1. 打开主页:
    bu.navigate("https://www.douyin.com/user/xxx")
    bu.wait_for_load(timeout=25)
    
  2. 登录检测:作品列表显示"服务异常,重新刷新拉取数据"、出现登录弹窗、或页面顶部有"登录"按钮且列表为空 → 调用 interaction.request_action(type="browserControl", display_message="抖音需要登录才能查看完整作品列表,请接管浏览器登录后交回。"),用户交回后重新 bu.snapshot() 确认列表已加载。
  3. 滚动加载到底:
    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
    
  4. 提取视频链接(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 条就截断。
  5. (可选)从 bu.get_page_text() 里顺带记录每条的标题、点赞数,写入结果清单便于核对。

Read the full file on GitHub · 144 lines

Files

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.

Changes

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.

  1. 7d ago First seen · 144 lines · 98 tokens per session scan A a5061b9a2d96

Subscribe to this mod's changes

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.

Related

douyin-bulk-transcript-exporter compared with skills from other repositories

douyin-bulk-transcript-exporter next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
douyin-bulk-transcript-exporterttttstc/ni-skillSkill106d agoMITA98Codex
interactive-loginyc-software/qmSkill16kyesterdayMITA46Claude Code, Codex
pinchtab-mcppinchtab/pinchtabSkill11k10d agoMITA52Claude Code, Codex
azure-messaging-webpubsub-javamicrosoft/skillsSkill3.2kyesterdayMITA43Claude Code
cua-driverdavidondrej/skillsSkill4.3k3d agoMITA68Claude Code, Codex
open-design-browsercompozy/compozySkill2.8kyesterdayMITA56Claude Code, Codex
southwestborski/travel-hacking-toolkitSkill895yesterdayMITA40Claude Code