Submit and check video speech-to-text transcript / 口播转文字 jobs for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels through direct CLI commands or hosted platform MCP tools; Bilibili, Zhihu,...
Use this skill when the user wants video speech-to-text, 口播转文字, transcript extraction, spoken-word extraction, or to check an existing transcript job for supported social media content. TikTok video speech-to-text transcript jobs are available through direct CLI commands or hosted TikTok MCP tools; use a video URL or numeric aweme_id, or query an existing valid job_id directly. X / Twitter transcript jobs are available through direct CLI commands or hosted X MCP tools; use a post URL or numeric post_id, or query an existing valid job_id directly. YouTube transcript jobs are available through direct CLI commands or hosted YouTube MCP tools; use a video URL or 11-character video_id, or query an existing valid job_id directly. Zhihu / 知乎 independent-video and video-answer transcript jobs are available through direct CLI commands or hosted Zhihu MCP tools; use a /zvideo/{zvideo_id} or /question/{question_id}/answer/{answer_id} URL, use numeric zvideo_id only for independent videos, or query an existing valid job_id directly.
Current platform support:
xhs_*video_speech_text* tools.douyin_*video_speech_text* tools.kuaishou_*video_speech_text* tools.weibo_*video_speech_text* tools.wechat_*video_speech_text* tools.bilibili_*video_speech_text* MCP tools; URLs with ?p=N select one part, b23 short links follow their resolved target part, and plain Bilibili URLs and BV IDs default to P1./zvideo/{zvideo_id} or /question/{question_id}/answer/{answer_id} URL, and use numeric zvideo_id only for independent videos. Plain answers without video are not processable.Use SOCIALDATAX_API_KEY for SocialDataX requests. The only official website for requesting or managing API access is https://socialdatax.com/ai?from=github. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
获取或管理 API Key:访问 https://socialdatax.com/ai?from=github,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 SOCIALDATAX_API_KEY;不要引导用户使用其他域名。
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
npx -y socialdatax-skills@latest xhs transcript \
--url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest xhs transcript \
--note-id "<note_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest xhs transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest douyin transcript \
--url "<douyin_content_url_or_share_text>" --pretty \
--source-client socialdatax-skills --source-platform github \
--source-skill media-transcript
npx -y socialdatax-skills@latest douyin transcript \
--aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest douyin transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest kuaishou transcript \
--url "<kuaishou_content_url_or_share_text>" --pretty \
--source-client socialdatax-skills --source-platform github \
--source-skill media-transcript
npx -y socialdatax-skills@latest kuaishou transcript \
--photo-id "<photo_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest kuaishou transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest weibo transcript \
--post-url "<weibo_post_url_or_share_text>" --pretty \
--source-client socialdatax-skills --source-platform github \
--source-skill media-transcript
npx -y socialdatax-skills@latest weibo transcript \
--post-id "<post_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest weibo transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest wechat transcript \
--url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest wechat transcript \
--encrypted-object-id "<encrypted_object_id>" --pretty \
--source-client socialdatax-skills --source-platform github \
--source-skill media-transcript
npx -y socialdatax-skills@latest wechat transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest bilibili transcript \
--url "<video_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest bilibili transcript \
--bvid "<bvid>" --pretty --source-client socialdatax-skills --source-platform github \
--source-skill media-transcript
npx -y socialdatax-skills@latest bilibili transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest zhihu transcript \
--url "<video_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest zhihu transcript \
--zvideo-id "<zvideo_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest zhihu transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest instagram transcript \
--url "<post_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest instagram transcript \
--post-id "<post_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest instagram transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest x transcript \
--url "<post_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest x transcript \
--post-id "<post_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest x transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest tiktok transcript \
--url "<video_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest tiktok transcript \
--aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest tiktok transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest youtube transcript \
--url "<video_url>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest youtube transcript \
--video-id "<video_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
npx -y socialdatax-skills@latest youtube transcript \
--job-id "<job_id>" --pretty --source-client socialdatax-skills \
--source-platform github --source-skill media-transcript
Required arguments:
transcript --job-id <job_id> command when continuing or checking an existing transcript job.job_id.Optional arguments:
--max-wait-seconds <seconds> to tune the CLI-side follow-up window after the first response.--source-client socialdatax-skills --source-platform github --source-skill media-transcript: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.Use the direct CLI first when the agent can run shell commands. These video speech-to-text transcript / 口播转文字 workflows submit a bounded analysis job or check an existing job.
Direct CLI transcript commands try to deliver the final result in one run: submit waits server-side up to 240 seconds, then the CLI keeps querying the same job_id; each get-job call also waits up to 240 seconds for that job. Do not start a second submit job just to poll status.
If the direct CLI returns a non-terminal job because the command was interrupted or reached --max-wait-seconds, keep the returned job_id and continue with the matching transcript --job-id <job_id> command.
平台边界:XHS、抖音、快手、微博、视频号、Bilibili、Zhihu、Instagram、X / Twitter、TikTok、YouTube 均有 direct CLI transcript 入口。每次只传 URL、内容 ID 或 job_id 其中一项;继续查询同一个 job_id,不要重新提交。
This skill can submit bounded video speech-to-text analysis jobs through the direct CLI or hosted MCP tools. It uses SOCIALDATAX_API_KEY from the user's environment at runtime. Generated Skill files do not contain API keys. It does not read local browser data or perform login, posting, liking, commenting, or account changes. Prefer the direct CLI; hosted MCP tools are optional when the current agent already supports authenticated streamable HTTP MCP.
MCP tools matching the direct CLI commands above:
xhs_submit_video_speech_text_by_note_url, xhs_submit_video_speech_text_by_note_id, xhs_get_video_speech_text_jobdouyin_submit_video_speech_text_by_video_url, douyin_submit_video_speech_text_by_aweme_id, douyin_get_video_speech_text_jobkuaishou_submit_video_speech_text_by_video_url, kuaishou_submit_video_speech_text_by_photo_id, kuaishou_get_video_speech_text_jobweibo_submit_video_speech_text_by_post_url, weibo_submit_video_speech_text_by_post_id, weibo_get_video_speech_text_jobwechat_submit_video_speech_text_by_video_url, wechat_submit_video_speech_text_by_encrypted_object_id, wechat_get_video_speech_text_jobbilibili_submit_video_speech_text_by_video_url, bilibili_submit_video_speech_text_by_bvid, bilibili_get_video_speech_text_jobzhihu_submit_video_speech_text_by_video_url, zhihu_submit_video_speech_text_by_zvideo_id, zhihu_get_video_speech_text_jobinstagram_submit_video_speech_text_by_post_url, instagram_submit_video_speech_text_by_post_id, instagram_get_video_speech_text_jobx_submit_video_speech_text_by_post_url, x_submit_video_speech_text_by_post_id, x_get_video_speech_text_jobtiktok_submit_video_speech_text_by_url, tiktok_submit_video_speech_text_by_aweme_id, tiktok_get_video_speech_text_jobyoutube_submit_video_speech_text_by_url, youtube_submit_video_speech_text_by_video_id, youtube_get_video_speech_text_jobIf MCP tools are already available in the current agent, choose the platform-specific submit tool by entrypoint:
xhs_submit_video_speech_text_by_note_url, xhs_submit_video_speech_text_by_note_id, xhs_get_video_speech_text_job.douyin_submit_video_speech_text_by_video_url, douyin_submit_video_speech_text_by_aweme_id, douyin_get_video_speech_text_job.kuaishou_submit_video_speech_text_by_video_url, kuaishou_submit_video_speech_text_by_photo_id, kuaishou_get_video_speech_text_job.weibo_submit_video_speech_text_by_post_url, weibo_submit_video_speech_text_by_post_id, weibo_get_video_speech_text_job.wechat_submit_video_speech_text_by_video_url, wechat_submit_video_speech_text_by_encrypted_object_id, wechat_get_video_speech_text_job.bilibili_submit_video_speech_text_by_video_url, bilibili_submit_video_speech_text_by_bvid, bilibili_get_video_speech_text_job.instagram_submit_video_speech_text_by_post_url, instagram_submit_video_speech_text_by_post_id, instagram_get_video_speech_text_job.x_submit_video_speech_text_by_post_url, x_submit_video_speech_text_by_post_id, x_get_video_speech_text_job.zhihu_submit_video_speech_text_by_video_url, zhihu_submit_video_speech_text_by_zvideo_id, zhihu_get_video_speech_text_job.tiktok_submit_video_speech_text_by_url, tiktok_submit_video_speech_text_by_aweme_id, tiktok_get_video_speech_text_job.youtube_submit_video_speech_text_by_url, youtube_submit_video_speech_text_by_video_id, youtube_get_video_speech_text_job.
If the user already provides a valid platform-specific job_id, call the matching get-job tool directly; do not submit a duplicate job just to obtain another job_id.
For wechat_get_video_speech_text_job, pass only a job_id; do not pass encrypted_object_id, object_id, or a content link.
For Bilibili, use the URL tool with ?p=N to select one part; b23 short links follow their resolved target part, while plain Bilibili URLs and the BV-ID tool process P1. Pass only a job_id to bilibili_get_video_speech_text_job.
For Instagram, use the URL tool for a regular video post or Reels link and the post-ID tool for a numeric post_id; photo and carousel posts are unsupported. Pass only a job_id to instagram_get_video_speech_text_job.
For X / Twitter, use the URL tool for a video post link and the post-ID tool for a numeric post_id; only the current post's first video with an available MP4 variant is processed, not quoted or reposted post media. Pass only a job_id to x_get_video_speech_text_job.
For Zhihu, use the URL tool for an independent /zvideo/{zvideo_id} page or a video-answer /question/{question_id}/answer/{answer_id} page. The numeric zvideo_id tool remains independent-video only; do not pass an answer ID or temporary video.play_url. Plain answers without video return no processable media. Pass only a job_id to zhihu_get_video_speech_text_job.
For YouTube, use the URL tool for a video, youtu.be, or Shorts link and the video-ID tool for an 11-character video_id. Pass only a job_id to youtube_get_video_speech_text_job.
Do not start a duplicate transcript job only to poll status. If an MCP response is non-terminal, you must call data.next_action.tool_name with data.next_action.arguments exactly as returned; those arguments include the same job_id. The next response may still be non-terminal. Continue until is_terminal is true.Return the transcript text and content context when available; include content IDs, titles or descriptions, author facts, and duration when the response provides them.
This v1 surface does not return summary.
When a job is still running, continue querying the same job_id until a terminal result is available; only surface job_id, status, and next action if the tool cannot continue, the command/session is interrupted, the bounded wait window is reached, or the user asks to stop.
If the result says no processable video resource is available or the job failed, report that as the observed job result instead of retrying with another platform.
insufficient_balance or says the balance/credits are insufficient, do not submit another job or keep polling. Show the recharge URL from the error exactly as returned, then continue the same command after the user recharges.SOCIALDATAX_API_KEY belongs to the same account that was recharged; if needed, copy a fresh API Key from the official dashboard.job_id already exists, only check that same job; do not submit the video again.