Douyin Content Assistant
This local MCP server supports Douyin creator checks, report/transcript retrieval, host-AI review, login, and fallback creator resolution.
Start a creator check by name, public ID, or profile URL and receive a
check_idimmediately; poll for progress.Retrieve live status, newest verified link, sampled engagement counts, and raw/reviewed file paths.
Read ordered original ASR transcript segments with indices and source hashes, paginated until complete.
Submit a host-AI semantic review with edits, pending uncertain items, and an overview while keeping originals immutable.
Start and poll a dedicated Douyin QR login session without exposing browser credentials.
Fall back to resolving a creator from 1–5 observed official video URLs, with live author verification.
No scheduler is created; only a complete reviewed report advances delivery history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Douyin Content Assistant Check Douyin creator 56586772416 and send me their latest video, counts, and transcript."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Douyin Content Assistant
Local MCP + Skill for Douyin creator research. Internal Python package: Creator Notes.
Give the host AI a creator name, public ID, or profile URL. A latest-post check returns its verified link, like/comment/favorite/share counts, timestamped machine transcript, separate reviewed edition, change log, and overview. An explicitly requested history archive inventories all accessible public works and processes each captured video or image post with explicit coverage and quality limits.
v0.2.0 preview. One isolated real public-history run has been exercised. A fresh Windows installation, target WorkBuddy loading, and scheduled execution have not been revalidated in this release. This is not a verified one-click release, and completed exports do not guarantee word-perfect transcription.
The project maintains its own MCP service, browser collection, tasks, media checkpoints, transcription orchestration, and exports. It uses public libraries including Playwright and faster-whisper, together with Whisper models. It does not require the shared-video-transcriber application. The host AI reviews content without another paid model API. See third-party notices and architecture.
Choose the result you need
Request | Result | Completion boundary |
Check the latest post | One verified latest work and its available content | Raw transcription and host-AI review are separate stages |
Archive all public works / all content | Inventory, per-work processing, original videos, browsable local folder | Use |
Include original videos | Primary local export folder with available verified MP4 files | Use |
Share the companion ZIP | Text, images, sampled-frame overviews, CSV, manifest | The ZIP always excludes original MP4 files |
Image posts retain actual published images and a page capture, with no invented speech transcript. A video returning no_speech can have a sampled-frame visual overview and verified original media. This means no deliverable speech was recognized, not that audio was proven silent. Unresolved language, sparse speech, and uncertain wording stay visible.
Requests such as "archive all accessible public works" or "all content" include original video delivery in the primary local folder. The Skill uses include_media=true for those requests. A request expressly limited to inventory or text/images keeps that narrower scope. The companion ZIP excludes MP4 files in every case.
Related MCP server: douyin-mcp-server
Quick start on Windows
For deployment by an AI assistant, follow AGENTS.md. Use the maintained installer rather than creating a development environment as an installation step.
Download and extract the source ZIP, then double-click
scripts/install-workbuddy.cmd. Setup prepares a private Python runtime, dependencies, and Chromium. No existing Python installation is required. Internet is needed for uncached components; speech-model download is deferred by default.Import the generated
workbuddy-mcp.jsonthrough WorkBuddy's custom connector interface, uploadcreator-notes-skill.zipthrough its Skill interface, and enable both. Default setup generates these files without editing client configuration.Ask for a latest check or history archive. Example: "Archive all accessible public works for example-creator. Include engagement counts, reviewed timestamped transcripts where speech is recognized, actual image posts, visual overviews where needed, and original videos in the local export folder."
example-creatoris a fictional placeholder; replace it with your chosen account.
Use your own Douyin mobile account for the dedicated QR login. Douyin may also require a human slider in the same window. No separate collection or speech API key is required. Review uses the host account and model allowance. First transcription still downloads a selected speech model if no suitable complete cache exists, and local CPU inference takes time.
Installation defaults to %LOCALAPPDATA%\CreatorNotes, with separate source, session, model, work-media, and report locations. The installer supports -InstallRoot and optional -PrepareModel. -RegisterWorkBuddy backs up and merges only owned connector/Skill entries and stops on conflicts; that target-client route still needs fresh acceptance. Healthy completed setup stages are reused. Stage timings and status stay in the local integration/last-install.json receipt.
If setup fails, run scripts/diagnose.cmd and retain failed-stage diagnostics. Do not copy another user's login state, replace unrelated client configuration, or silently switch download sources. See release acceptance.
Login, recovery, and review
The application checks its model cache before opening Douyin and reports requested and selected models. A complete suitable cache can be reused; empty or incomplete files are not ready models.
The login helper retains a dedicated browser context through QR scan, phone confirmation, human verification, and finalization. After login, the Skill continues the saved check with resume_check(check_id). A later CAPTCHA stops again rather than entering an automatic retry loop. The application does not solve sliders or promise they can be avoided.
After a recoverable transcription failure, a valid checkpoint preserves the same check ID, sampled metrics, and downloaded media. Resume verifies task identity, file bounds, byte count, and SHA-256; it does not recollect metrics or redownload healthy saved media. Invalid ASR timelines can trigger one bounded retry over the complete input with shorter chunks. Failed attempts remain auditable, and persistent failures remain explicit.
Machine originals are immutable. The host reads every transcript page, makes supported corrections in a separate edition, and retains uncertain wording for review. Titles support spelling, not proof of speech. Caption observations and visual chapters remain separate from spoken words. An exported reviewed file does not prove every word, language, claim, or visual action was verified.
For history requests, read the archive workflow. Listing coverage, per-work sampling times, retained failures, original media, review readiness, and export scope are reported separately.
Other clients and development
The service uses local stdio MCP; no public server is required. Setup also generates a codex-mcp.toml fragment. Merge only its owned entry into existing client configuration, reconnect MCP, and install skills/creator-notes in the host. Use paths generated for the current user.
For development only:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install .
.\.venv\Scripts\python.exe -m playwright install chromium
.\.venv\Scripts\python.exe -m creator_notes.cli doctor
.\.venv\Scripts\python.exe -m creator_notes.serverRun appropriate tests and build source packages:
$env:PYTHONPATH = 'src'
python -m unittest discover -s tests
python scripts/build_release.pySource releases use an allowlist and hash manifest. They exclude collected metadata, transcripts, media, reports, models, browsers, databases, QR artifacts, credentials, runtime logs, and personal client configuration. User-generated content archives are separate local outputs, not part of the open-source release.
For periodic checks, configure a local scheduled task in the host with connector and Skill enabled. The computer, client, login, and model allowance must remain available. The project creates no separate scheduler or system service; cloud tasks cannot directly access this local runtime.
Validation and scope
The anonymized isolated run inventoried 126 accessible public works: 124 videos and two image posts. It produced 105 machine transcripts, 19 visual overviews for videos with no deliverable recognized speech, and three explicitly unresolved speech-quality cases. These are results from one public creator, not a general accuracy benchmark. See validation and unexecuted acceptance checks.
Scope is accessible public works returned by the verified official profile. Private, deleted, restricted, or unavailable works remain outside that claim. A scroll stall, time limit, missing page, or advertised-count mismatch leaves coverage partial. Engagement values are per-work snapshots, not live counters; unavailable metrics remain unknown rather than zero.
Repository: huanglvbo/douyin-content-assistant. Licensed under MIT.
Available Tools
7 toolscheck_creatorA
Start a local creator-name/ID/profile check and return check_id immediately. Poll get_report. No scheduler is created; only a complete reviewed report advances delivery history.
Inputs: creator (required), profile, refresh_identity.
get_reportB
Get live status, newest link, sampled like/comment/collect/share counts and raw/reviewed file paths. done+complete means raw readiness; delivery_complete additionally requires host-AI review.
Inputs: check_id (required).
get_transcriptB
Read ordered original ASR segments with indices and source_sha256. Follow next_offset until null before reviewing. Never summarize the title as speech.
Inputs: check_id (required), limit, offset.
login_statusA
Return QR path and dedicated-session status only. Saved state can expire; never return browser credentials.
Inputs: no named parameters.
resolve_creator_from_videosA
Fallback: host web search supplies 1-5 observed official Douyin video URLs; verify live author matches exact requested identity. Search index is discovery only, never proof of newest work or counts. Stops on captcha/ambiguity.
Inputs: creator (required), candidate_video_urls (required).
start_loginA
Prepare a dedicated local Douyin login QR. User scans normally. Poll login_status for image path; no other browser profiles or cookie contents are read.
Inputs: no named parameters.
submit_reviewA
Save a semantic review supplied by the current host AI, never call another LLM. Requires source_sha256, edits[{index,before,after,reason,evidence,evidence_level,confidence}], pending_review[{index,issue}], overview{summary,sections[{start,end,title,summary}],limitations}. Leaves originals immutable; uncertain text remains pending.
Inputs: review (required), check_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Most tools have clearly distinct roles in a staged workflow: login, creator check, report polling, transcript reading, review submission, and fallback creator resolution. The main possible confusion is between check_creator and resolve_creator_from_videos, since both concern creator identity, but the descriptions frame the latter as a fallback and the former as the primary path.
The set mostly follows a predictable snake_case verb_noun pattern (check_creator, get_report, get_transcript, submit_review, start_login, resolve_creator_from_videos). The exception is login_status, which is a noun/status phrase rather than a clear verb_noun action, but overall the naming remains readable and consistent.
Seven tools is well-scoped for a focused Douyin content assistant pipeline. Each tool covers a distinct step in the workflow without obvious bloat or missing obvious counterparts.
The tool surface covers the core lifecycle: authentication, creator checking, report retrieval, transcript access, review submission, and a fallback creator resolution path. Minor gaps exist, such as no explicit tool for accessing delivery history or past reports despite those states being referenced, but the main workflows are represented.
Maintenance
Related MCP Connectors
TikTok research for AI agents. Ask ChatGPT, Claude, Cursor, Codex or any MCP client what people search, watch, say and buy on TikTok, and get real numbers back. 34 tools: weekly TikTok search volume and 7-day trends, content gaps, videos, creators, comments and caption transcripts, hashtags and sounds, TikTok Shop sales estimates for products, shops, creators, videos and LIVE streams, TikTok’s Top Ads library with CTR and retention, places, and a fair comment-giveaway picker. 17 markets. Built for marketers, agencies, TikTok Shop sellers and creators. Sign in with OAuth or an API key; 50 free credits, no card.
YouTube transcripts, Instagram profiles and posts, and TikTok data as MCP tools.
Transcribe, read and download public Reels, TikToks and YouTube videos, plus sourced creator data
YouTube and TikTok transcripts, YouTube search and comments as tools. Runs on Apify.
Related MCP Servers
FlicenseAqualityBmaintenanceProvides 40 MCP tools for searching and retrieving content from six major platforms (Douyin, Xiaohongshu, WeChat, Bilibili, Toutiao, TikTok) along with AI search and image/video generation via RedFoxHub's API.402-- AlicenseAqualityDmaintenanceMCP server for parsing Douyin links to fetch video info/download links, transcribing audio locally, and organizing transcripts into polished spoken copy.51Apache 2.0
- AlicenseAqualityCmaintenanceLets an AI agent read public TikTok data with no API keys or developer account: search videos and hashtags, fetch profiles, recent videos and comments, discover creators posting about a topic, and transcribe videos through your own OpenAI-compatible speech-to-text endpoint. All popular MCP clients can launch it via uvx, and every tool returns structured output as a read-only operation.62MIT
- AlicenseBqualityBmaintenanceEnables users to extract transcripts from Douyin videos, parse video metadata, retrieve download links, and transcribe audio files, using HTTP parsing with Chrome/Edge fallback and SiliconFlow cloud ASR by default.4Apache 2.0