socialdatax-skills 0.2.18 → 0.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -8
- package/cli.mjs +220 -13
- package/package.json +1 -1
- package/skills/media-transcript/SKILL.md +43 -16
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ Common search phrases for this skill package:
|
|
|
71
71
|
- Sensitive Check MCP server name: `sensitive-check`
|
|
72
72
|
- Sensitive Check future MCP registry name: `com.socialdatax/sensitive-check`
|
|
73
73
|
- Unified MCP registry name: none; this package installs skills and calls explicit platform services.
|
|
74
|
-
- Current public capability version: `0.2.
|
|
74
|
+
- Current public capability version: `0.2.20`
|
|
75
75
|
|
|
76
76
|
## Direct CLI
|
|
77
77
|
|
|
@@ -90,6 +90,9 @@ npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --commen
|
|
|
90
90
|
npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty
|
|
91
91
|
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
|
|
92
92
|
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --since-days 30 --pretty
|
|
93
|
+
npx -y socialdatax-skills@latest xhs transcript --url "<note_url_or_share_text>" --pretty
|
|
94
|
+
npx -y socialdatax-skills@latest xhs transcript --note-id "<note_id>" --pretty
|
|
95
|
+
npx -y socialdatax-skills@latest xhs transcript --job-id "<job_id>" --pretty
|
|
93
96
|
npx -y socialdatax-skills@latest douyin hot-search --pretty
|
|
94
97
|
npx -y socialdatax-skills@latest douyin search --keyword "露营" --pretty
|
|
95
98
|
npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty
|
|
@@ -102,6 +105,9 @@ npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>"
|
|
|
102
105
|
npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
103
106
|
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
|
|
104
107
|
npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty
|
|
108
|
+
npx -y socialdatax-skills@latest douyin transcript --url "<douyin_content_url_or_share_text>" --pretty
|
|
109
|
+
npx -y socialdatax-skills@latest douyin transcript --aweme-id "<aweme_id>" --pretty
|
|
110
|
+
npx -y socialdatax-skills@latest douyin transcript --job-id "<job_id>" --pretty
|
|
105
111
|
npx -y socialdatax-skills@latest kuaishou search --keyword "露营" --pretty
|
|
106
112
|
npx -y socialdatax-skills@latest kuaishou user-search --keyword "露营" --pretty
|
|
107
113
|
npx -y socialdatax-skills@latest kuaishou detail --photo-id "<photo_id>" --pretty
|
|
@@ -114,6 +120,9 @@ npx -y socialdatax-skills@latest kuaishou user-info --user-id "<user_id>" --pret
|
|
|
114
120
|
npx -y socialdatax-skills@latest kuaishou user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
115
121
|
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --pretty
|
|
116
122
|
npx -y socialdatax-skills@latest kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
123
|
+
npx -y socialdatax-skills@latest kuaishou transcript --url "<kuaishou_content_url_or_share_text>" --pretty
|
|
124
|
+
npx -y socialdatax-skills@latest kuaishou transcript --photo-id "<photo_id>" --pretty
|
|
125
|
+
npx -y socialdatax-skills@latest kuaishou transcript --job-id "<job_id>" --pretty
|
|
117
126
|
npx -y socialdatax-skills@latest weibo hot-search --pretty
|
|
118
127
|
npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
|
|
119
128
|
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty
|
|
@@ -128,6 +137,9 @@ npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty
|
|
|
128
137
|
npx -y socialdatax-skills@latest weibo user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
129
138
|
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty
|
|
130
139
|
npx -y socialdatax-skills@latest weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
140
|
+
npx -y socialdatax-skills@latest weibo transcript --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
141
|
+
npx -y socialdatax-skills@latest weibo transcript --post-id "<post_id>" --pretty
|
|
142
|
+
npx -y socialdatax-skills@latest weibo transcript --job-id "<job_id>" --pretty
|
|
131
143
|
npx -y socialdatax-skills@latest wechat hot-search --pretty
|
|
132
144
|
npx -y socialdatax-skills@latest wechat search --keyword "露营" --pretty
|
|
133
145
|
npx -y socialdatax-skills@latest wechat detail --encrypted-object-id "<encrypted_object_id>" --pretty
|
|
@@ -140,6 +152,9 @@ npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --obje
|
|
|
140
152
|
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty
|
|
141
153
|
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty
|
|
142
154
|
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty
|
|
155
|
+
npx -y socialdatax-skills@latest wechat transcript --url "<wechat_video_url_or_share_text>" --pretty
|
|
156
|
+
npx -y socialdatax-skills@latest wechat transcript --encrypted-object-id "<encrypted_object_id>" --pretty
|
|
157
|
+
npx -y socialdatax-skills@latest wechat transcript --job-id "<job_id>" --pretty
|
|
143
158
|
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
144
159
|
```
|
|
145
160
|
|
|
@@ -159,6 +174,8 @@ For commands that accept `--page-token`, continue only with the complete returne
|
|
|
159
174
|
|
|
160
175
|
Search pagination uses `--page-token` when continuing with a returned `next_page_token`. Omit `--page-token` on the first search request and pass the complete returned `next_page_token` only when continuing the same search chain.
|
|
161
176
|
|
|
177
|
+
Transcript commands submit a bounded video speech-to-text job or check an existing job. Pass exactly one entrypoint for each call: URL/share text, platform content ID, or `--job-id`.
|
|
178
|
+
|
|
162
179
|
Generated Agent Skill examples include `--source-client socialdatax-skills --source-platform <marketplace> --source-skill <skill-slug>` so SocialDataX can attribute direct CLI usage to the current marketplace Skill. Keep those values unchanged when running commands from a Skill; omit them for ad hoc CLI use. The direct CLI also accepts `SOCIALDATAX_SOURCE_CLIENT`, `SOCIALDATAX_SOURCE_PLATFORM`, and `SOCIALDATAX_SOURCE_SKILL` as environment-variable fallbacks.
|
|
163
180
|
|
|
164
181
|
XHS, Douyin, Kuaishou, Weibo, and WeChat Channels search use `--keyword` and optional `--page-token`.
|
|
@@ -258,15 +275,20 @@ npx -y socialdatax-skills@latest install media-search --target claude-code
|
|
|
258
275
|
npx -y socialdatax-skills@latest install media-search --target claude-code --scope workspace
|
|
259
276
|
npx -y socialdatax-skills@latest xhs search --keyword "露营" --pretty
|
|
260
277
|
npx -y socialdatax-skills@latest xhs hot-search --pretty
|
|
278
|
+
npx -y socialdatax-skills@latest xhs transcript --url "<note_url_or_share_text>" --pretty
|
|
261
279
|
npx -y socialdatax-skills@latest douyin hot-search --pretty
|
|
262
280
|
npx -y socialdatax-skills@latest douyin search --keyword "露营" --pretty
|
|
263
281
|
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
|
|
282
|
+
npx -y socialdatax-skills@latest douyin transcript --aweme-id "<aweme_id>" --pretty
|
|
264
283
|
npx -y socialdatax-skills@latest kuaishou search --keyword "露营" --pretty
|
|
284
|
+
npx -y socialdatax-skills@latest kuaishou transcript --photo-id "<photo_id>" --pretty
|
|
265
285
|
npx -y socialdatax-skills@latest weibo hot-search --pretty
|
|
266
286
|
npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
|
|
287
|
+
npx -y socialdatax-skills@latest weibo transcript --post-id "<post_id>" --pretty
|
|
267
288
|
npx -y socialdatax-skills@latest wechat hot-search --pretty
|
|
268
289
|
npx -y socialdatax-skills@latest wechat search --keyword "露营" --pretty
|
|
269
290
|
npx -y socialdatax-skills@latest wechat article --url "<mp_article_url_or_share_text>" --pretty
|
|
291
|
+
npx -y socialdatax-skills@latest wechat transcript --encrypted-object-id "<encrypted_object_id>" --pretty
|
|
270
292
|
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
271
293
|
```
|
|
272
294
|
|
|
@@ -276,7 +298,7 @@ Available skills:
|
|
|
276
298
|
- `media-search`: search social media content by keyword; supports XHS notes, Douyin works, Kuaishou works, Weibo posts, and WeChat Channels videos.
|
|
277
299
|
- `media-detail`: read structured content details and metrics; supports XHS notes, Douyin works, Kuaishou works, Weibo posts, WeChat Channels videos, and WeChat Official Account articles.
|
|
278
300
|
- `media-comments`: fetch and analyze XHS comments/replies, Douyin comments/replies, Kuaishou comments/replies, Weibo comments/replies, and WeChat Channels comments/replies.
|
|
279
|
-
- `media-transcript`: submit and check video 口播转文字 / speech-to-text transcript jobs through hosted MCP tools; supports XHS, Douyin, Kuaishou, Weibo, and WeChat Channels.
|
|
301
|
+
- `media-transcript`: submit and check video 口播转文字 / speech-to-text transcript jobs through direct CLI commands or hosted MCP tools; supports XHS, Douyin, Kuaishou, Weibo, and WeChat Channels.
|
|
280
302
|
- `media-user-info`: retrieve creator profile information; supports XHS, Douyin, Kuaishou, Weibo, and WeChat Channels creators.
|
|
281
303
|
- `media-user-posts`: retrieve creator content lists; supports XHS notes, Douyin works, Kuaishou works, Weibo posts, WeChat Channels videos, and Douyin creator short-drama series.
|
|
282
304
|
- `sensitive-check`: run 敏感检测 text checks; supports `generic`, `xhs`, `douyin`, and `kuaishou` platform contexts.
|
|
@@ -297,7 +319,7 @@ If no skill name is provided, all skills are installed. If a destination already
|
|
|
297
319
|
|
|
298
320
|
## Workflow Scope
|
|
299
321
|
|
|
300
|
-
The current platform MCP services are designed for social media content intelligence workflows. Some
|
|
322
|
+
The current direct CLI and platform MCP services are designed for social media content intelligence workflows. Some commands read public content directly; some submit bounded analysis jobs such as video speech-to-text transcript. They do not provide account login, posting, editing, liking, commenting, or other account actions.
|
|
301
323
|
|
|
302
324
|
Current XHS workflows include:
|
|
303
325
|
|
|
@@ -309,7 +331,7 @@ Current XHS workflows include:
|
|
|
309
331
|
- Fetch paginated replies under a first-level comment.
|
|
310
332
|
- Read creator profile data from a profile link, short link, share text, or user ID.
|
|
311
333
|
- Fetch paginated creator note lists from a user ID, profile link, short link, or share text for content style and account research.
|
|
312
|
-
- Submit and check video note 口播转文字 / speech-to-text transcript jobs; submit tools
|
|
334
|
+
- Submit and check video note 口播转文字 / speech-to-text transcript jobs; submit tools 提交后最多等待 15 秒.
|
|
313
335
|
|
|
314
336
|
Current Kuaishou workflows include:
|
|
315
337
|
|
|
@@ -321,7 +343,7 @@ Current Kuaishou workflows include:
|
|
|
321
343
|
- Continue Kuaishou list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
322
344
|
- Read creator profile data from a non-empty user_id, profile link, short link, or share text. Live/fw-user profile shares are supported for profile data; successful results return a reusable non-empty user_id.
|
|
323
345
|
- Fetch paginated creator work lists from a non-empty user_id, or from a profile link, short link, or share text that resolves directly to a non-empty user_id. For live/fw-user profile shares, call creator profile first and use the returned non-empty user_id.
|
|
324
|
-
- Submit and check video work 口播转文字 / speech-to-text transcript jobs; submit tools
|
|
346
|
+
- Submit and check video work 口播转文字 / speech-to-text transcript jobs; submit tools 提交后最多等待 15 秒.
|
|
325
347
|
|
|
326
348
|
Current Douyin workflows include:
|
|
327
349
|
|
|
@@ -334,7 +356,7 @@ Current Douyin workflows include:
|
|
|
334
356
|
- Read creator profile data from a profile link, short link, share text, or sec_user_id.
|
|
335
357
|
- Fetch paginated creator work lists from a sec_user_id, profile link, short link, or share text.
|
|
336
358
|
- Fetch paginated creator short-drama series lists from a sec_user_id, profile link, short link, or share text.
|
|
337
|
-
- Submit and check video work 口播转文字 / speech-to-text transcript jobs; submit tools
|
|
359
|
+
- Submit and check video work 口播转文字 / speech-to-text transcript jobs; submit tools 提交后最多等待 15 秒.
|
|
338
360
|
|
|
339
361
|
Current Weibo workflows include:
|
|
340
362
|
|
|
@@ -346,7 +368,7 @@ Current Weibo workflows include:
|
|
|
346
368
|
- Continue Weibo list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
347
369
|
- Read creator profile data from a profile link, short link, share text, or user_id.
|
|
348
370
|
- Fetch paginated creator post lists from a user_id, profile link, short link, or share text.
|
|
349
|
-
- Submit and check Weibo video 口播转文字 / speech-to-text transcript jobs; submit tools
|
|
371
|
+
- Submit and check Weibo video 口播转文字 / speech-to-text transcript jobs; submit tools 提交后最多等待 15 秒.
|
|
350
372
|
|
|
351
373
|
Current WeChat / 微信 workflows include:
|
|
352
374
|
|
|
@@ -359,7 +381,7 @@ Current WeChat / 微信 workflows include:
|
|
|
359
381
|
- Continue WeChat Channels list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
360
382
|
- Read creator profile data from a finder user_id.
|
|
361
383
|
- Fetch paginated creator video lists from a finder user_id or a video link/share text.
|
|
362
|
-
- Submit and check WeChat Channels / 视频号 video 口播转文字 / speech-to-text transcript jobs; submit tools
|
|
384
|
+
- Submit and check WeChat Channels / 视频号 video 口播转文字 / speech-to-text transcript jobs; submit tools 提交后最多等待 15 秒.
|
|
363
385
|
|
|
364
386
|
Current Sensitive Check workflows include:
|
|
365
387
|
|
package/cli.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { dirname, join, resolve } from "node:path";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
|
|
9
9
|
const PACKAGE_NAME = "socialdatax-skills";
|
|
10
|
-
const PACKAGE_VERSION = "0.2.
|
|
10
|
+
const PACKAGE_VERSION = "0.2.20";
|
|
11
11
|
const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
|
|
12
12
|
const LOG_PREFIX = `[${PACKAGE_NAME}]`;
|
|
13
13
|
const MIN_NODE_VERSION = "20.18.1";
|
|
@@ -53,7 +53,7 @@ const AVAILABLE_SKILLS = [
|
|
|
53
53
|
{
|
|
54
54
|
name: "media-transcript",
|
|
55
55
|
summary:
|
|
56
|
-
"Submit and check video speech-to-text transcript jobs for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels
|
|
56
|
+
"Submit and check video speech-to-text transcript jobs for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels.",
|
|
57
57
|
emoji: "🎙️",
|
|
58
58
|
},
|
|
59
59
|
{
|
|
@@ -134,6 +134,7 @@ const XHS_DIRECT_ACTION_OPTIONS = {
|
|
|
134
134
|
"sinceDays",
|
|
135
135
|
"pretty",
|
|
136
136
|
],
|
|
137
|
+
transcript: ["url", "noteId", "jobId", "pretty"],
|
|
137
138
|
};
|
|
138
139
|
const XHS_DIRECT_ACTION_NAMES = Object.keys(XHS_DIRECT_ACTION_OPTIONS).join(", ");
|
|
139
140
|
const XHS_OPTION_DISPLAY_NAMES = {
|
|
@@ -152,6 +153,7 @@ const XHS_OPTION_DISPLAY_NAMES = {
|
|
|
152
153
|
includeReplies: "--include-replies",
|
|
153
154
|
profileUrl: "--profile-url",
|
|
154
155
|
userId: "--user-id",
|
|
156
|
+
jobId: "--job-id",
|
|
155
157
|
};
|
|
156
158
|
const XHS_SEARCH_SORT_TYPES = [
|
|
157
159
|
"general",
|
|
@@ -213,6 +215,7 @@ const DOUYIN_DIRECT_ACTION_OPTIONS = {
|
|
|
213
215
|
"pretty",
|
|
214
216
|
],
|
|
215
217
|
"user-series": ["secUserId", "profileUrl", "pageToken", "pages", "all", "maxItems", "pretty"],
|
|
218
|
+
transcript: ["url", "awemeId", "jobId", "pretty"],
|
|
216
219
|
};
|
|
217
220
|
const DOUYIN_DIRECT_ACTION_NAMES = Object.keys(DOUYIN_DIRECT_ACTION_OPTIONS).join(", ");
|
|
218
221
|
const DOUYIN_SEARCH_SORT_TYPES = ["general", "time_descending", "like_count_descending"];
|
|
@@ -241,6 +244,7 @@ const DOUYIN_OPTION_DISPLAY_NAMES = {
|
|
|
241
244
|
awemeId: "--aweme-id",
|
|
242
245
|
commentId: "--comment-id",
|
|
243
246
|
secUserId: "--sec-user-id",
|
|
247
|
+
jobId: "--job-id",
|
|
244
248
|
};
|
|
245
249
|
const KUAISHOU_DIRECT_ACTION_OPTIONS = {
|
|
246
250
|
search: ["keyword", "pageToken", "pages", "all", "maxItems", "sinceDays", "pretty"],
|
|
@@ -277,6 +281,7 @@ const KUAISHOU_DIRECT_ACTION_OPTIONS = {
|
|
|
277
281
|
"sinceDays",
|
|
278
282
|
"pretty",
|
|
279
283
|
],
|
|
284
|
+
transcript: ["url", "photoId", "jobId", "pretty"],
|
|
280
285
|
};
|
|
281
286
|
const KUAISHOU_DIRECT_ACTION_NAMES = Object.keys(KUAISHOU_DIRECT_ACTION_OPTIONS).join(", ");
|
|
282
287
|
const KUAISHOU_OPTION_DISPLAY_NAMES = {
|
|
@@ -292,6 +297,7 @@ const KUAISHOU_OPTION_DISPLAY_NAMES = {
|
|
|
292
297
|
photoId: "--photo-id",
|
|
293
298
|
commentId: "--comment-id",
|
|
294
299
|
userId: "--user-id",
|
|
300
|
+
jobId: "--job-id",
|
|
295
301
|
};
|
|
296
302
|
const WEIBO_DIRECT_ACTION_OPTIONS = {
|
|
297
303
|
"hot-search": ["pretty"],
|
|
@@ -330,6 +336,7 @@ const WEIBO_DIRECT_ACTION_OPTIONS = {
|
|
|
330
336
|
"sinceDays",
|
|
331
337
|
"pretty",
|
|
332
338
|
],
|
|
339
|
+
transcript: ["postUrl", "postId", "jobId", "pretty"],
|
|
333
340
|
};
|
|
334
341
|
const WEIBO_DIRECT_ACTION_NAMES = Object.keys(WEIBO_DIRECT_ACTION_OPTIONS).join(", ");
|
|
335
342
|
const WEIBO_OPTION_DISPLAY_NAMES = {
|
|
@@ -345,6 +352,7 @@ const WEIBO_OPTION_DISPLAY_NAMES = {
|
|
|
345
352
|
commentId: "--comment-id",
|
|
346
353
|
profileUrl: "--profile-url",
|
|
347
354
|
userId: "--user-id",
|
|
355
|
+
jobId: "--job-id",
|
|
348
356
|
};
|
|
349
357
|
const WECHAT_DIRECT_ACTION_OPTIONS = {
|
|
350
358
|
"hot-search": ["pretty"],
|
|
@@ -394,6 +402,7 @@ const WECHAT_DIRECT_ACTION_OPTIONS = {
|
|
|
394
402
|
"sinceDays",
|
|
395
403
|
"pretty",
|
|
396
404
|
],
|
|
405
|
+
transcript: ["url", "encryptedObjectId", "jobId", "pretty"],
|
|
397
406
|
};
|
|
398
407
|
const WECHAT_DIRECT_ACTION_NAMES = Object.keys(WECHAT_DIRECT_ACTION_OPTIONS).join(", ");
|
|
399
408
|
const WECHAT_SEARCH_SORT_TYPES = [
|
|
@@ -423,6 +432,7 @@ const WECHAT_OPTION_DISPLAY_NAMES = {
|
|
|
423
432
|
objectNonceId: "--object-nonce-id",
|
|
424
433
|
commentId: "--comment-id",
|
|
425
434
|
userId: "--user-id",
|
|
435
|
+
jobId: "--job-id",
|
|
426
436
|
};
|
|
427
437
|
const SENSITIVE_CHECK_DIRECT_ACTION_OPTIONS = {
|
|
428
438
|
text: ["text", "platform", "pretty"],
|
|
@@ -504,12 +514,12 @@ const PLATFORMS = {
|
|
|
504
514
|
{
|
|
505
515
|
name: "xhs_submit_video_speech_text_by_note_url",
|
|
506
516
|
description:
|
|
507
|
-
"Submit a video note speech-to-text transcript task from a note link, short link, or share text;
|
|
517
|
+
"Submit a video note speech-to-text transcript task from a note link, short link, or share text; 提交后最多等待 15 秒.",
|
|
508
518
|
},
|
|
509
519
|
{
|
|
510
520
|
name: "xhs_submit_video_speech_text_by_note_id",
|
|
511
521
|
description:
|
|
512
|
-
"Submit a video note speech-to-text transcript task from a note_id;
|
|
522
|
+
"Submit a video note speech-to-text transcript task from a note_id; 提交后最多等待 15 秒.",
|
|
513
523
|
},
|
|
514
524
|
{
|
|
515
525
|
name: "xhs_get_video_speech_text_job",
|
|
@@ -588,12 +598,12 @@ const PLATFORMS = {
|
|
|
588
598
|
{
|
|
589
599
|
name: "douyin_submit_video_speech_text_by_video_url",
|
|
590
600
|
description:
|
|
591
|
-
"Submit a Douyin work video speech-to-text transcript task from a work page link, short link, or share text;
|
|
601
|
+
"Submit a Douyin work video speech-to-text transcript task from a work page link, short link, or share text; 提交后最多等待 15 秒.",
|
|
592
602
|
},
|
|
593
603
|
{
|
|
594
604
|
name: "douyin_submit_video_speech_text_by_aweme_id",
|
|
595
605
|
description:
|
|
596
|
-
"Submit a Douyin work video speech-to-text transcript task from an aweme_id;
|
|
606
|
+
"Submit a Douyin work video speech-to-text transcript task from an aweme_id; 提交后最多等待 15 秒.",
|
|
597
607
|
},
|
|
598
608
|
{
|
|
599
609
|
name: "douyin_get_video_speech_text_job",
|
|
@@ -668,12 +678,12 @@ const PLATFORMS = {
|
|
|
668
678
|
{
|
|
669
679
|
name: "kuaishou_submit_video_speech_text_by_video_url",
|
|
670
680
|
description:
|
|
671
|
-
"Submit a Kuaishou work video speech-to-text transcript task from a work page link, short link, or share text;
|
|
681
|
+
"Submit a Kuaishou work video speech-to-text transcript task from a work page link, short link, or share text; 提交后最多等待 15 秒.",
|
|
672
682
|
},
|
|
673
683
|
{
|
|
674
684
|
name: "kuaishou_submit_video_speech_text_by_photo_id",
|
|
675
685
|
description:
|
|
676
|
-
"Submit a Kuaishou work video speech-to-text transcript task from a photo_id;
|
|
686
|
+
"Submit a Kuaishou work video speech-to-text transcript task from a photo_id; 提交后最多等待 15 秒.",
|
|
677
687
|
},
|
|
678
688
|
{
|
|
679
689
|
name: "kuaishou_get_video_speech_text_job",
|
|
@@ -752,12 +762,12 @@ const PLATFORMS = {
|
|
|
752
762
|
{
|
|
753
763
|
name: "weibo_submit_video_speech_text_by_post_url",
|
|
754
764
|
description:
|
|
755
|
-
"Submit a Weibo video speech-to-text transcript task from a post URL, short link, or share text;
|
|
765
|
+
"Submit a Weibo video speech-to-text transcript task from a post URL, short link, or share text; 提交后最多等待 15 秒.",
|
|
756
766
|
},
|
|
757
767
|
{
|
|
758
768
|
name: "weibo_submit_video_speech_text_by_post_id",
|
|
759
769
|
description:
|
|
760
|
-
"Submit a Weibo video speech-to-text transcript task from a post_id;
|
|
770
|
+
"Submit a Weibo video speech-to-text transcript task from a post_id; 提交后最多等待 15 秒.",
|
|
761
771
|
},
|
|
762
772
|
{
|
|
763
773
|
name: "weibo_get_video_speech_text_job",
|
|
@@ -829,12 +839,12 @@ const PLATFORMS = {
|
|
|
829
839
|
{
|
|
830
840
|
name: "wechat_submit_video_speech_text_by_video_url",
|
|
831
841
|
description:
|
|
832
|
-
"Submit a WeChat Channels / 视频号 video speech-to-text transcript task from a video link or share text;
|
|
842
|
+
"Submit a WeChat Channels / 视频号 video speech-to-text transcript task from a video link or share text; 提交后最多等待 15 秒.",
|
|
833
843
|
},
|
|
834
844
|
{
|
|
835
845
|
name: "wechat_submit_video_speech_text_by_encrypted_object_id",
|
|
836
846
|
description:
|
|
837
|
-
"Submit a WeChat Channels / 视频号 video speech-to-text transcript task from an encrypted_object_id;
|
|
847
|
+
"Submit a WeChat Channels / 视频号 video speech-to-text transcript task from an encrypted_object_id; 提交后最多等待 15 秒.",
|
|
838
848
|
},
|
|
839
849
|
{
|
|
840
850
|
name: "wechat_get_video_speech_text_job",
|
|
@@ -978,6 +988,15 @@ function validateKnownOptions(options, allowedOptions) {
|
|
|
978
988
|
}
|
|
979
989
|
}
|
|
980
990
|
|
|
991
|
+
function shouldPrintDirectHelp(options, positional) {
|
|
992
|
+
return (
|
|
993
|
+
options.help !== undefined ||
|
|
994
|
+
options.h !== undefined ||
|
|
995
|
+
positional.includes("help") ||
|
|
996
|
+
positional.includes("-h")
|
|
997
|
+
);
|
|
998
|
+
}
|
|
999
|
+
|
|
981
1000
|
function allowedDirectOptions(allowedOptions) {
|
|
982
1001
|
return [...allowedOptions, ...DIRECT_META_OPTIONS];
|
|
983
1002
|
}
|
|
@@ -1613,7 +1632,8 @@ function buildDoctorReport() {
|
|
|
1613
1632
|
},
|
|
1614
1633
|
security: {
|
|
1615
1634
|
readOnly: false,
|
|
1616
|
-
directCliReadOnly:
|
|
1635
|
+
directCliReadOnly: false,
|
|
1636
|
+
directCliMaySubmitAnalysisJobs: true,
|
|
1617
1637
|
platformMcpMaySubmitAnalysisJobs: true,
|
|
1618
1638
|
accountActions: false,
|
|
1619
1639
|
readsLocalBrowserData: false,
|
|
@@ -1656,6 +1676,7 @@ function printDoctor(args) {
|
|
|
1656
1676
|
console.log("");
|
|
1657
1677
|
console.log("Runtime data calls:");
|
|
1658
1678
|
console.log("- social media content intelligence workflows.");
|
|
1679
|
+
console.log("- some commands submit bounded analysis jobs such as video speech-to-text transcript.");
|
|
1659
1680
|
console.log("- no login, posting, editing, liking, commenting, or other account actions.");
|
|
1660
1681
|
console.log("- no local browser data access.");
|
|
1661
1682
|
console.log(`- requires ${PRIMARY_API_KEY_ENV} only when making authenticated data calls.`);
|
|
@@ -1712,6 +1733,9 @@ function printHelp() {
|
|
|
1712
1733
|
console.log(` npx -y ${PACKAGE_SPEC} xhs user-posts --user-id "<user_id>" --since-days 30 --pretty`);
|
|
1713
1734
|
console.log(" Fetch recent creator posts until the publish-time boundary is reached.");
|
|
1714
1735
|
console.log("");
|
|
1736
|
+
console.log(` npx -y ${PACKAGE_SPEC} xhs transcript --url "<xhs_note_url_or_share_text>" --pretty`);
|
|
1737
|
+
console.log(" Submit or check an XHS video note speech-to-text transcript job.");
|
|
1738
|
+
console.log("");
|
|
1715
1739
|
console.log(` npx -y ${PACKAGE_SPEC} douyin hot-search --pretty`);
|
|
1716
1740
|
console.log(" Call the Douyin main hot search list tool directly and print JSON.");
|
|
1717
1741
|
console.log("");
|
|
@@ -1750,6 +1774,9 @@ function printHelp() {
|
|
|
1750
1774
|
console.log(` npx -y ${PACKAGE_SPEC} douyin user-series --profile-url "<profile_url_or_share_text>" --pretty`);
|
|
1751
1775
|
console.log(" Call the Douyin creator short-drama series tool from a profile link or share text.");
|
|
1752
1776
|
console.log("");
|
|
1777
|
+
console.log(` npx -y ${PACKAGE_SPEC} douyin transcript --aweme-id "<aweme_id>" --pretty`);
|
|
1778
|
+
console.log(" Submit or check a Douyin video speech-to-text transcript job.");
|
|
1779
|
+
console.log("");
|
|
1753
1780
|
console.log(` npx -y ${PACKAGE_SPEC} kuaishou search --keyword "露营" --pretty`);
|
|
1754
1781
|
console.log(" Call the Kuaishou work search tool directly and print JSON.");
|
|
1755
1782
|
console.log("");
|
|
@@ -1790,6 +1817,9 @@ function printHelp() {
|
|
|
1790
1817
|
" Call the Kuaishou creator works tool from a profile link or share text that resolves directly to a non-empty user_id."
|
|
1791
1818
|
);
|
|
1792
1819
|
console.log("");
|
|
1820
|
+
console.log(` npx -y ${PACKAGE_SPEC} kuaishou transcript --photo-id "<photo_id>" --pretty`);
|
|
1821
|
+
console.log(" Submit or check a Kuaishou video speech-to-text transcript job.");
|
|
1822
|
+
console.log("");
|
|
1793
1823
|
console.log(` npx -y ${PACKAGE_SPEC} weibo hot-search --pretty`);
|
|
1794
1824
|
console.log(" Call the Weibo hot-search list tool directly and print JSON.");
|
|
1795
1825
|
console.log("");
|
|
@@ -1829,6 +1859,9 @@ function printHelp() {
|
|
|
1829
1859
|
console.log(` npx -y ${PACKAGE_SPEC} weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty`);
|
|
1830
1860
|
console.log(" Call the Weibo creator posts tool from a profile link or share text.");
|
|
1831
1861
|
console.log("");
|
|
1862
|
+
console.log(` npx -y ${PACKAGE_SPEC} weibo transcript --post-url "<weibo_post_url_or_share_text>" --pretty`);
|
|
1863
|
+
console.log(" Submit or check a Weibo video speech-to-text transcript job.");
|
|
1864
|
+
console.log("");
|
|
1832
1865
|
console.log(` npx -y ${PACKAGE_SPEC} wechat hot-search --pretty`);
|
|
1833
1866
|
console.log(" Call the WeChat Channels / 视频号 hot-search list tool directly and print JSON.");
|
|
1834
1867
|
console.log("");
|
|
@@ -1864,6 +1897,9 @@ function printHelp() {
|
|
|
1864
1897
|
console.log(` npx -y ${PACKAGE_SPEC} wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty`);
|
|
1865
1898
|
console.log(" Call the WeChat Channels / 视频号 creator videos tool from a video link or share text.");
|
|
1866
1899
|
console.log("");
|
|
1900
|
+
console.log(` npx -y ${PACKAGE_SPEC} wechat transcript --encrypted-object-id "<encrypted_object_id>" --pretty`);
|
|
1901
|
+
console.log(" Submit or check a WeChat Channels / 视频号 video speech-to-text transcript job.");
|
|
1902
|
+
console.log("");
|
|
1867
1903
|
console.log(` npx -y ${PACKAGE_SPEC} sensitive-check text --text "<content>" --platform xhs --pretty`);
|
|
1868
1904
|
console.log(" Call the SocialDataX 敏感检测 text tool directly and print JSON.");
|
|
1869
1905
|
console.log("");
|
|
@@ -1941,6 +1977,7 @@ function printHelp() {
|
|
|
1941
1977
|
console.log(" --post-id <post_id>");
|
|
1942
1978
|
console.log(" --post-url <weibo-post-url-or-share-text>");
|
|
1943
1979
|
console.log(" --encrypted-object-id <encrypted_object_id>");
|
|
1980
|
+
console.log(" --job-id <job_id>");
|
|
1944
1981
|
console.log(" --object-id <object_id>");
|
|
1945
1982
|
console.log(" --object-nonce-id <object_nonce_id>");
|
|
1946
1983
|
console.log(" --comment-id <comment_id>");
|
|
@@ -2030,6 +2067,10 @@ function printRemovedMcpConfigHelp(command) {
|
|
|
2030
2067
|
|
|
2031
2068
|
async function runXhsDirectCommand(args) {
|
|
2032
2069
|
const { options, positional } = parseCommandArgs(args);
|
|
2070
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2071
|
+
printHelp();
|
|
2072
|
+
return;
|
|
2073
|
+
}
|
|
2033
2074
|
const action = positional[0];
|
|
2034
2075
|
if (!action) {
|
|
2035
2076
|
throw new Error(
|
|
@@ -2057,6 +2098,10 @@ async function runXhsDirectCommand(args) {
|
|
|
2057
2098
|
|
|
2058
2099
|
async function runDouyinDirectCommand(args) {
|
|
2059
2100
|
const { options, positional } = parseCommandArgs(args);
|
|
2101
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2102
|
+
printHelp();
|
|
2103
|
+
return;
|
|
2104
|
+
}
|
|
2060
2105
|
const action = positional[0];
|
|
2061
2106
|
if (!action) {
|
|
2062
2107
|
throw new Error(
|
|
@@ -2084,6 +2129,10 @@ async function runDouyinDirectCommand(args) {
|
|
|
2084
2129
|
|
|
2085
2130
|
async function runKuaishouDirectCommand(args) {
|
|
2086
2131
|
const { options, positional } = parseCommandArgs(args);
|
|
2132
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2133
|
+
printHelp();
|
|
2134
|
+
return;
|
|
2135
|
+
}
|
|
2087
2136
|
const action = positional[0];
|
|
2088
2137
|
if (!action) {
|
|
2089
2138
|
throw new Error(
|
|
@@ -2111,6 +2160,10 @@ async function runKuaishouDirectCommand(args) {
|
|
|
2111
2160
|
|
|
2112
2161
|
async function runWeiboDirectCommand(args) {
|
|
2113
2162
|
const { options, positional } = parseCommandArgs(args);
|
|
2163
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2164
|
+
printHelp();
|
|
2165
|
+
return;
|
|
2166
|
+
}
|
|
2114
2167
|
const action = positional[0];
|
|
2115
2168
|
if (!action) {
|
|
2116
2169
|
throw new Error(
|
|
@@ -2138,6 +2191,10 @@ async function runWeiboDirectCommand(args) {
|
|
|
2138
2191
|
|
|
2139
2192
|
async function runWechatDirectCommand(args) {
|
|
2140
2193
|
const { options, positional } = parseCommandArgs(args);
|
|
2194
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2195
|
+
printHelp();
|
|
2196
|
+
return;
|
|
2197
|
+
}
|
|
2141
2198
|
const action = positional[0];
|
|
2142
2199
|
if (!action) {
|
|
2143
2200
|
throw new Error(
|
|
@@ -2165,6 +2222,10 @@ async function runWechatDirectCommand(args) {
|
|
|
2165
2222
|
|
|
2166
2223
|
async function runSensitiveCheckDirectCommand(args) {
|
|
2167
2224
|
const { options, positional } = parseCommandArgs(args);
|
|
2225
|
+
if (shouldPrintDirectHelp(options, positional)) {
|
|
2226
|
+
printHelp();
|
|
2227
|
+
return;
|
|
2228
|
+
}
|
|
2168
2229
|
const action = positional[0];
|
|
2169
2230
|
if (!action) {
|
|
2170
2231
|
throw new Error(
|
|
@@ -2262,6 +2323,24 @@ function buildXhsOperation(action, options) {
|
|
|
2262
2323
|
pageToken: options.pageToken,
|
|
2263
2324
|
})
|
|
2264
2325
|
);
|
|
2326
|
+
case "transcript":
|
|
2327
|
+
return buildDirectOperation(
|
|
2328
|
+
"transcript",
|
|
2329
|
+
buildTranscriptCall(options, {
|
|
2330
|
+
urlOption: "url",
|
|
2331
|
+
idOption: "noteId",
|
|
2332
|
+
jobOption: "jobId",
|
|
2333
|
+
urlTool: "xhs_submit_video_speech_text_by_note_url",
|
|
2334
|
+
idTool: "xhs_submit_video_speech_text_by_note_id",
|
|
2335
|
+
jobTool: "xhs_get_video_speech_text_job",
|
|
2336
|
+
urlArgument: "note_url",
|
|
2337
|
+
idArgument: "note_id",
|
|
2338
|
+
jobArgument: "job_id",
|
|
2339
|
+
urlDisplay: "--url",
|
|
2340
|
+
idDisplay: "--note-id",
|
|
2341
|
+
jobDisplay: "--job-id",
|
|
2342
|
+
})
|
|
2343
|
+
);
|
|
2265
2344
|
default:
|
|
2266
2345
|
throw new Error(
|
|
2267
2346
|
`Unsupported XHS command "${action}". Use ${XHS_DIRECT_ACTION_NAMES}.`
|
|
@@ -2370,6 +2449,25 @@ function buildDouyinOperation(action, options) {
|
|
|
2370
2449
|
}),
|
|
2371
2450
|
PLATFORMS.douyin
|
|
2372
2451
|
);
|
|
2452
|
+
case "transcript":
|
|
2453
|
+
return buildDirectOperation(
|
|
2454
|
+
"transcript",
|
|
2455
|
+
buildTranscriptCall(options, {
|
|
2456
|
+
urlOption: "url",
|
|
2457
|
+
idOption: "awemeId",
|
|
2458
|
+
jobOption: "jobId",
|
|
2459
|
+
urlTool: "douyin_submit_video_speech_text_by_video_url",
|
|
2460
|
+
idTool: "douyin_submit_video_speech_text_by_aweme_id",
|
|
2461
|
+
jobTool: "douyin_get_video_speech_text_job",
|
|
2462
|
+
urlArgument: "video_url",
|
|
2463
|
+
idArgument: "aweme_id",
|
|
2464
|
+
jobArgument: "job_id",
|
|
2465
|
+
urlDisplay: "--url",
|
|
2466
|
+
idDisplay: "--aweme-id",
|
|
2467
|
+
jobDisplay: "--job-id",
|
|
2468
|
+
}),
|
|
2469
|
+
PLATFORMS.douyin
|
|
2470
|
+
);
|
|
2373
2471
|
default:
|
|
2374
2472
|
throw new Error(
|
|
2375
2473
|
`Unsupported Douyin command "${action}". Use ${DOUYIN_DIRECT_ACTION_NAMES}.`
|
|
@@ -2459,6 +2557,25 @@ function buildKuaishouOperation(action, options) {
|
|
|
2459
2557
|
}),
|
|
2460
2558
|
PLATFORMS.kuaishou
|
|
2461
2559
|
);
|
|
2560
|
+
case "transcript":
|
|
2561
|
+
return buildDirectOperation(
|
|
2562
|
+
"transcript",
|
|
2563
|
+
buildTranscriptCall(options, {
|
|
2564
|
+
urlOption: "url",
|
|
2565
|
+
idOption: "photoId",
|
|
2566
|
+
jobOption: "jobId",
|
|
2567
|
+
urlTool: "kuaishou_submit_video_speech_text_by_video_url",
|
|
2568
|
+
idTool: "kuaishou_submit_video_speech_text_by_photo_id",
|
|
2569
|
+
jobTool: "kuaishou_get_video_speech_text_job",
|
|
2570
|
+
urlArgument: "video_url",
|
|
2571
|
+
idArgument: "photo_id",
|
|
2572
|
+
jobArgument: "job_id",
|
|
2573
|
+
urlDisplay: "--url",
|
|
2574
|
+
idDisplay: "--photo-id",
|
|
2575
|
+
jobDisplay: "--job-id",
|
|
2576
|
+
}),
|
|
2577
|
+
PLATFORMS.kuaishou
|
|
2578
|
+
);
|
|
2462
2579
|
default:
|
|
2463
2580
|
throw new Error(
|
|
2464
2581
|
`Unsupported Kuaishou command "${action}". Use ${KUAISHOU_DIRECT_ACTION_NAMES}.`
|
|
@@ -2563,6 +2680,25 @@ function buildWeiboOperation(action, options) {
|
|
|
2563
2680
|
}),
|
|
2564
2681
|
PLATFORMS.weibo
|
|
2565
2682
|
);
|
|
2683
|
+
case "transcript":
|
|
2684
|
+
return buildDirectOperation(
|
|
2685
|
+
"transcript",
|
|
2686
|
+
buildTranscriptCall(options, {
|
|
2687
|
+
urlOption: "postUrl",
|
|
2688
|
+
idOption: "postId",
|
|
2689
|
+
jobOption: "jobId",
|
|
2690
|
+
urlTool: "weibo_submit_video_speech_text_by_post_url",
|
|
2691
|
+
idTool: "weibo_submit_video_speech_text_by_post_id",
|
|
2692
|
+
jobTool: "weibo_get_video_speech_text_job",
|
|
2693
|
+
urlArgument: "post_url",
|
|
2694
|
+
idArgument: "post_id",
|
|
2695
|
+
jobArgument: "job_id",
|
|
2696
|
+
urlDisplay: "--post-url",
|
|
2697
|
+
idDisplay: "--post-id",
|
|
2698
|
+
jobDisplay: "--job-id",
|
|
2699
|
+
}),
|
|
2700
|
+
PLATFORMS.weibo
|
|
2701
|
+
);
|
|
2566
2702
|
default:
|
|
2567
2703
|
throw new Error(
|
|
2568
2704
|
`Unsupported Weibo command "${action}". Use ${WEIBO_DIRECT_ACTION_NAMES}.`
|
|
@@ -2648,6 +2784,25 @@ function buildWechatOperation(action, options) {
|
|
|
2648
2784
|
}),
|
|
2649
2785
|
PLATFORMS.wechat
|
|
2650
2786
|
);
|
|
2787
|
+
case "transcript":
|
|
2788
|
+
return buildDirectOperation(
|
|
2789
|
+
"transcript",
|
|
2790
|
+
buildTranscriptCall(options, {
|
|
2791
|
+
urlOption: "url",
|
|
2792
|
+
idOption: "encryptedObjectId",
|
|
2793
|
+
jobOption: "jobId",
|
|
2794
|
+
urlTool: "wechat_submit_video_speech_text_by_video_url",
|
|
2795
|
+
idTool: "wechat_submit_video_speech_text_by_encrypted_object_id",
|
|
2796
|
+
jobTool: "wechat_get_video_speech_text_job",
|
|
2797
|
+
urlArgument: "video_url",
|
|
2798
|
+
idArgument: "encrypted_object_id",
|
|
2799
|
+
jobArgument: "job_id",
|
|
2800
|
+
urlDisplay: "--url",
|
|
2801
|
+
idDisplay: "--encrypted-object-id",
|
|
2802
|
+
jobDisplay: "--job-id",
|
|
2803
|
+
}),
|
|
2804
|
+
PLATFORMS.wechat
|
|
2805
|
+
);
|
|
2651
2806
|
default:
|
|
2652
2807
|
throw new Error(
|
|
2653
2808
|
`Unsupported WeChat command "${action}". Use ${WECHAT_DIRECT_ACTION_NAMES}.`
|
|
@@ -2769,6 +2924,58 @@ function buildOneOfCall(
|
|
|
2769
2924
|
return { tool, toolArguments };
|
|
2770
2925
|
}
|
|
2771
2926
|
|
|
2927
|
+
function buildTranscriptCall(
|
|
2928
|
+
options,
|
|
2929
|
+
{
|
|
2930
|
+
urlOption,
|
|
2931
|
+
idOption,
|
|
2932
|
+
jobOption,
|
|
2933
|
+
urlTool,
|
|
2934
|
+
idTool,
|
|
2935
|
+
jobTool,
|
|
2936
|
+
urlArgument,
|
|
2937
|
+
idArgument,
|
|
2938
|
+
jobArgument,
|
|
2939
|
+
urlDisplay,
|
|
2940
|
+
idDisplay,
|
|
2941
|
+
jobDisplay,
|
|
2942
|
+
}
|
|
2943
|
+
) {
|
|
2944
|
+
const choices = [
|
|
2945
|
+
{
|
|
2946
|
+
value: options[urlOption],
|
|
2947
|
+
tool: urlTool,
|
|
2948
|
+
argument: urlArgument,
|
|
2949
|
+
},
|
|
2950
|
+
{
|
|
2951
|
+
value: options[idOption],
|
|
2952
|
+
tool: idTool,
|
|
2953
|
+
argument: idArgument,
|
|
2954
|
+
},
|
|
2955
|
+
{
|
|
2956
|
+
value: options[jobOption],
|
|
2957
|
+
tool: jobTool,
|
|
2958
|
+
argument: jobArgument,
|
|
2959
|
+
},
|
|
2960
|
+
].filter((choice) => Boolean(choice.value));
|
|
2961
|
+
const displays = `${urlDisplay}, ${idDisplay}, or ${jobDisplay}`;
|
|
2962
|
+
|
|
2963
|
+
if (choices.length === 0) {
|
|
2964
|
+
throw new Error(`Missing input. Use exactly one of ${displays}.`);
|
|
2965
|
+
}
|
|
2966
|
+
if (choices.length > 1) {
|
|
2967
|
+
throw new Error(`Use exactly one of ${displays}.`);
|
|
2968
|
+
}
|
|
2969
|
+
|
|
2970
|
+
const choice = choices[0];
|
|
2971
|
+
return {
|
|
2972
|
+
tool: choice.tool,
|
|
2973
|
+
toolArguments: {
|
|
2974
|
+
[choice.argument]: choice.value,
|
|
2975
|
+
},
|
|
2976
|
+
};
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2772
2979
|
function buildRequiredIdCall(
|
|
2773
2980
|
options,
|
|
2774
2981
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-transcript"
|
|
3
|
-
description: "Submit and check video speech-to-text transcript / 口播转文字 jobs for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels through hosted platform MCP tools."
|
|
3
|
+
description: "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."
|
|
4
4
|
source_client: "socialdatax-skills"
|
|
5
5
|
source_platform: "npm"
|
|
6
6
|
source_skill: "media-transcript"
|
|
@@ -39,30 +39,49 @@ Current platform support:
|
|
|
39
39
|
Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website for requesting or managing API access is <https://socialdatax.com/?from=npm>. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
|
|
40
40
|
获取或管理 API Key:访问 <https://socialdatax.com/?from=npm>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
|
|
41
41
|
|
|
42
|
+
## Preferred Direct CLI
|
|
43
|
+
|
|
44
|
+
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx -y socialdatax-skills@latest xhs transcript --url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
48
|
+
npx -y socialdatax-skills@latest xhs transcript --note-id "<note_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
49
|
+
npx -y socialdatax-skills@latest xhs transcript --job-id "<job_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
50
|
+
npx -y socialdatax-skills@latest douyin transcript --url "<douyin_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
51
|
+
npx -y socialdatax-skills@latest douyin transcript --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
52
|
+
npx -y socialdatax-skills@latest douyin transcript --job-id "<job_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
53
|
+
npx -y socialdatax-skills@latest kuaishou transcript --url "<kuaishou_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
54
|
+
npx -y socialdatax-skills@latest kuaishou transcript --photo-id "<photo_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
55
|
+
npx -y socialdatax-skills@latest kuaishou transcript --job-id "<job_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
56
|
+
npx -y socialdatax-skills@latest weibo transcript --post-url "<weibo_post_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
57
|
+
npx -y socialdatax-skills@latest weibo transcript --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
58
|
+
npx -y socialdatax-skills@latest weibo transcript --job-id "<job_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
59
|
+
npx -y socialdatax-skills@latest wechat transcript --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
60
|
+
npx -y socialdatax-skills@latest wechat transcript --encrypted-object-id "<encrypted_object_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
61
|
+
npx -y socialdatax-skills@latest wechat transcript --job-id "<job_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-transcript
|
|
62
|
+
```
|
|
63
|
+
|
|
42
64
|
Required arguments:
|
|
43
65
|
|
|
44
|
-
- Use a submit-by-URL
|
|
45
|
-
- Use a submit-by-ID
|
|
46
|
-
- Use the matching
|
|
66
|
+
- Use a submit-by-URL command when the user provides a content link, short link, or share text.
|
|
67
|
+
- Use a submit-by-ID command only when the platform content ID is already known: XHS `note_id`, Douyin `aweme_id`, Kuaishou `photo_id`, Weibo `post_id`, or WeChat Channels / 视频号 `encrypted_object_id`.
|
|
68
|
+
- Use the matching `transcript --job-id <job_id>` command when continuing or checking an existing transcript job.
|
|
69
|
+
- For one transcript command, pass exactly one entrypoint: URL/share text, platform content ID, or `job_id`.
|
|
70
|
+
|
|
71
|
+
Optional arguments:
|
|
72
|
+
|
|
73
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-transcript`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
47
74
|
|
|
48
|
-
These video speech-to-text transcript / 口播转文字 workflows
|
|
49
|
-
Submit
|
|
75
|
+
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.
|
|
76
|
+
Submit commands may wait briefly after creating the job. If the transcript is not ready, return the `job_id` and next action instead of starting a second job.
|
|
50
77
|
|
|
51
78
|
## Safety Boundary
|
|
52
79
|
|
|
53
|
-
This skill can submit bounded analysis jobs through hosted MCP tools. It uses
|
|
80
|
+
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.
|
|
54
81
|
|
|
55
82
|
## MCP Tools
|
|
56
83
|
|
|
57
|
-
|
|
58
|
-
- XHS: `xhs_submit_video_speech_text_by_note_url`, `xhs_submit_video_speech_text_by_note_id`, `xhs_get_video_speech_text_job`.
|
|
59
|
-
- Douyin: `douyin_submit_video_speech_text_by_video_url`, `douyin_submit_video_speech_text_by_aweme_id`, `douyin_get_video_speech_text_job`.
|
|
60
|
-
- Kuaishou: `kuaishou_submit_video_speech_text_by_video_url`, `kuaishou_submit_video_speech_text_by_photo_id`, `kuaishou_get_video_speech_text_job`.
|
|
61
|
-
- Weibo: `weibo_submit_video_speech_text_by_post_url`, `weibo_submit_video_speech_text_by_post_id`, `weibo_get_video_speech_text_job`.
|
|
62
|
-
- WeChat Channels / 视频号: `wechat_submit_video_speech_text_by_video_url`, `wechat_submit_video_speech_text_by_encrypted_object_id`, `wechat_get_video_speech_text_job`.
|
|
63
|
-
Do not start a duplicate transcript job only to poll status. Use the platform get-job tool with the returned `job_id`.
|
|
64
|
-
|
|
65
|
-
MCP-only tools not available through the direct CLI:
|
|
84
|
+
MCP tools matching the direct CLI commands above:
|
|
66
85
|
|
|
67
86
|
- `xhs_submit_video_speech_text_by_note_url`
|
|
68
87
|
- `xhs_submit_video_speech_text_by_note_id`
|
|
@@ -80,6 +99,14 @@ MCP-only tools not available through the direct CLI:
|
|
|
80
99
|
- `wechat_submit_video_speech_text_by_encrypted_object_id`
|
|
81
100
|
- `wechat_get_video_speech_text_job`
|
|
82
101
|
|
|
102
|
+
If MCP tools are already available in the current agent, choose the platform-specific submit tool by entrypoint:
|
|
103
|
+
- XHS: `xhs_submit_video_speech_text_by_note_url`, `xhs_submit_video_speech_text_by_note_id`, `xhs_get_video_speech_text_job`.
|
|
104
|
+
- Douyin: `douyin_submit_video_speech_text_by_video_url`, `douyin_submit_video_speech_text_by_aweme_id`, `douyin_get_video_speech_text_job`.
|
|
105
|
+
- Kuaishou: `kuaishou_submit_video_speech_text_by_video_url`, `kuaishou_submit_video_speech_text_by_photo_id`, `kuaishou_get_video_speech_text_job`.
|
|
106
|
+
- Weibo: `weibo_submit_video_speech_text_by_post_url`, `weibo_submit_video_speech_text_by_post_id`, `weibo_get_video_speech_text_job`.
|
|
107
|
+
- WeChat Channels / 视频号: `wechat_submit_video_speech_text_by_video_url`, `wechat_submit_video_speech_text_by_encrypted_object_id`, `wechat_get_video_speech_text_job`.
|
|
108
|
+
Do not start a duplicate transcript job only to poll status. Use the platform get-job tool with the returned `job_id`.
|
|
109
|
+
|
|
83
110
|
## Output Guidance
|
|
84
111
|
|
|
85
112
|
Return the transcript text when available. When a job is still running, include the `job_id`, status, and next action so the user or agent can check later.
|