socialdatax-skills 0.2.19 → 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 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.19`
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 tools 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.
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 提交完成后最多短等 15 秒.
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 提交完成后最多短等 15 秒.
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 提交完成后最多短等 15 秒.
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 提交完成后最多短等 15 秒.
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 提交完成后最多短等 15 秒.
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.19";
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 through hosted MCP tools.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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; 提交完成后最多短等 15 秒.",
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",
@@ -1622,7 +1632,8 @@ function buildDoctorReport() {
1622
1632
  },
1623
1633
  security: {
1624
1634
  readOnly: false,
1625
- directCliReadOnly: true,
1635
+ directCliReadOnly: false,
1636
+ directCliMaySubmitAnalysisJobs: true,
1626
1637
  platformMcpMaySubmitAnalysisJobs: true,
1627
1638
  accountActions: false,
1628
1639
  readsLocalBrowserData: false,
@@ -1665,6 +1676,7 @@ function printDoctor(args) {
1665
1676
  console.log("");
1666
1677
  console.log("Runtime data calls:");
1667
1678
  console.log("- social media content intelligence workflows.");
1679
+ console.log("- some commands submit bounded analysis jobs such as video speech-to-text transcript.");
1668
1680
  console.log("- no login, posting, editing, liking, commenting, or other account actions.");
1669
1681
  console.log("- no local browser data access.");
1670
1682
  console.log(`- requires ${PRIMARY_API_KEY_ENV} only when making authenticated data calls.`);
@@ -1721,6 +1733,9 @@ function printHelp() {
1721
1733
  console.log(` npx -y ${PACKAGE_SPEC} xhs user-posts --user-id "<user_id>" --since-days 30 --pretty`);
1722
1734
  console.log(" Fetch recent creator posts until the publish-time boundary is reached.");
1723
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("");
1724
1739
  console.log(` npx -y ${PACKAGE_SPEC} douyin hot-search --pretty`);
1725
1740
  console.log(" Call the Douyin main hot search list tool directly and print JSON.");
1726
1741
  console.log("");
@@ -1759,6 +1774,9 @@ function printHelp() {
1759
1774
  console.log(` npx -y ${PACKAGE_SPEC} douyin user-series --profile-url "<profile_url_or_share_text>" --pretty`);
1760
1775
  console.log(" Call the Douyin creator short-drama series tool from a profile link or share text.");
1761
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("");
1762
1780
  console.log(` npx -y ${PACKAGE_SPEC} kuaishou search --keyword "露营" --pretty`);
1763
1781
  console.log(" Call the Kuaishou work search tool directly and print JSON.");
1764
1782
  console.log("");
@@ -1799,6 +1817,9 @@ function printHelp() {
1799
1817
  " Call the Kuaishou creator works tool from a profile link or share text that resolves directly to a non-empty user_id."
1800
1818
  );
1801
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("");
1802
1823
  console.log(` npx -y ${PACKAGE_SPEC} weibo hot-search --pretty`);
1803
1824
  console.log(" Call the Weibo hot-search list tool directly and print JSON.");
1804
1825
  console.log("");
@@ -1838,6 +1859,9 @@ function printHelp() {
1838
1859
  console.log(` npx -y ${PACKAGE_SPEC} weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty`);
1839
1860
  console.log(" Call the Weibo creator posts tool from a profile link or share text.");
1840
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("");
1841
1865
  console.log(` npx -y ${PACKAGE_SPEC} wechat hot-search --pretty`);
1842
1866
  console.log(" Call the WeChat Channels / 视频号 hot-search list tool directly and print JSON.");
1843
1867
  console.log("");
@@ -1873,6 +1897,9 @@ function printHelp() {
1873
1897
  console.log(` npx -y ${PACKAGE_SPEC} wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty`);
1874
1898
  console.log(" Call the WeChat Channels / 视频号 creator videos tool from a video link or share text.");
1875
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("");
1876
1903
  console.log(` npx -y ${PACKAGE_SPEC} sensitive-check text --text "<content>" --platform xhs --pretty`);
1877
1904
  console.log(" Call the SocialDataX 敏感检测 text tool directly and print JSON.");
1878
1905
  console.log("");
@@ -1950,6 +1977,7 @@ function printHelp() {
1950
1977
  console.log(" --post-id <post_id>");
1951
1978
  console.log(" --post-url <weibo-post-url-or-share-text>");
1952
1979
  console.log(" --encrypted-object-id <encrypted_object_id>");
1980
+ console.log(" --job-id <job_id>");
1953
1981
  console.log(" --object-id <object_id>");
1954
1982
  console.log(" --object-nonce-id <object_nonce_id>");
1955
1983
  console.log(" --comment-id <comment_id>");
@@ -2295,6 +2323,24 @@ function buildXhsOperation(action, options) {
2295
2323
  pageToken: options.pageToken,
2296
2324
  })
2297
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
+ );
2298
2344
  default:
2299
2345
  throw new Error(
2300
2346
  `Unsupported XHS command "${action}". Use ${XHS_DIRECT_ACTION_NAMES}.`
@@ -2403,6 +2449,25 @@ function buildDouyinOperation(action, options) {
2403
2449
  }),
2404
2450
  PLATFORMS.douyin
2405
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
+ );
2406
2471
  default:
2407
2472
  throw new Error(
2408
2473
  `Unsupported Douyin command "${action}". Use ${DOUYIN_DIRECT_ACTION_NAMES}.`
@@ -2492,6 +2557,25 @@ function buildKuaishouOperation(action, options) {
2492
2557
  }),
2493
2558
  PLATFORMS.kuaishou
2494
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
+ );
2495
2579
  default:
2496
2580
  throw new Error(
2497
2581
  `Unsupported Kuaishou command "${action}". Use ${KUAISHOU_DIRECT_ACTION_NAMES}.`
@@ -2596,6 +2680,25 @@ function buildWeiboOperation(action, options) {
2596
2680
  }),
2597
2681
  PLATFORMS.weibo
2598
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
+ );
2599
2702
  default:
2600
2703
  throw new Error(
2601
2704
  `Unsupported Weibo command "${action}". Use ${WEIBO_DIRECT_ACTION_NAMES}.`
@@ -2681,6 +2784,25 @@ function buildWechatOperation(action, options) {
2681
2784
  }),
2682
2785
  PLATFORMS.wechat
2683
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
+ );
2684
2806
  default:
2685
2807
  throw new Error(
2686
2808
  `Unsupported WeChat command "${action}". Use ${WECHAT_DIRECT_ACTION_NAMES}.`
@@ -2802,6 +2924,58 @@ function buildOneOfCall(
2802
2924
  return { tool, toolArguments };
2803
2925
  }
2804
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
+
2805
2979
  function buildRequiredIdCall(
2806
2980
  options,
2807
2981
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socialdatax-skills",
3
- "version": "0.2.19",
3
+ "version": "0.2.20",
4
4
  "description": "SocialDataX / 社媒数据助手 skill installer and direct CLI helper for hosted platform social media MCP services.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -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 tool when the user provides a content link, short link, or share text.
45
- - Use a submit-by-ID tool 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`.
46
- - Use the matching get-job tool with `job_id` when continuing or checking an existing transcript job.
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 are MCP-only and not available through the direct CLI.
49
- Submit tools 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.
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 authenticated MCP access from the current agent 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. Use hosted MCP tools only when the current agent already supports authenticated streamable HTTP MCP.
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
- If MCP tools are already available in the current agent, choose the platform-specific submit tool by entrypoint:
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.