socialdatax-skills 0.2.15 → 0.2.17
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 +15 -20
- package/cli.mjs +154 -64
- package/package.json +1 -1
- package/skills/media-comments/SKILL.md +25 -21
- package/skills/media-detail/SKILL.md +15 -11
- package/skills/media-search/SKILL.md +15 -11
- package/skills/media-transcript/SKILL.md +4 -1
- package/skills/media-user-info/SKILL.md +19 -15
- package/skills/media-user-posts/SKILL.md +27 -23
- package/skills/sensitive-check/SKILL.md +7 -3
- package/skills/socialdatax-content-research-assistant/SKILL.md +84 -79
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Common search phrases for this skill package:
|
|
|
68
68
|
- Sensitive Check MCP server name: `sensitive-check`
|
|
69
69
|
- Sensitive Check future MCP registry name: `com.socialdatax/sensitive-check`
|
|
70
70
|
- Unified MCP registry name: none; this package installs skills and calls explicit platform services.
|
|
71
|
-
- Current public capability version: `0.2.
|
|
71
|
+
- Current public capability version: `0.2.17`
|
|
72
72
|
|
|
73
73
|
## Direct CLI
|
|
74
74
|
|
|
@@ -120,9 +120,7 @@ npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --in
|
|
|
120
120
|
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
121
121
|
npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty
|
|
122
122
|
npx -y socialdatax-skills@latest weibo likers --post-id "<post_id>" --pretty
|
|
123
|
-
npx -y socialdatax-skills@latest weibo likers --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
124
123
|
npx -y socialdatax-skills@latest weibo reposts --post-id "<post_id>" --pretty
|
|
125
|
-
npx -y socialdatax-skills@latest weibo reposts --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
126
124
|
npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty
|
|
127
125
|
npx -y socialdatax-skills@latest weibo user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
128
126
|
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty
|
|
@@ -157,6 +155,8 @@ For commands that accept `--page-token`, continue only with the complete returne
|
|
|
157
155
|
|
|
158
156
|
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.
|
|
159
157
|
|
|
158
|
+
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.
|
|
159
|
+
|
|
160
160
|
XHS, Douyin, Kuaishou, Weibo, and WeChat Channels search use `--keyword` and optional `--page-token`.
|
|
161
161
|
Kuaishou work search uses `kuaishou search --keyword` and optional `--page-token`; Kuaishou creator search uses `kuaishou user-search --keyword` and optional `--page-token`. Kuaishou search does not accept Douyin semantic filters, and `kuaishou user-search` does not support `--since-days`.
|
|
162
162
|
Weibo and WeChat Channels search use `--keyword` and optional `--page-token`.
|
|
@@ -314,8 +314,8 @@ Current Kuaishou workflows include:
|
|
|
314
314
|
- Fetch paginated first-level comments for comment analysis.
|
|
315
315
|
- Fetch paginated replies under a first-level comment.
|
|
316
316
|
- Continue Kuaishou list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
317
|
-
- Read creator profile data from a profile link, short link, share text
|
|
318
|
-
- Fetch paginated creator work lists from a user_id, profile link, short link, or share text.
|
|
317
|
+
- 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.
|
|
318
|
+
- 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.
|
|
319
319
|
- Submit and check video work 口播转文字 / speech-to-text transcript jobs; submit tools 提交完成后最多短等 15 秒.
|
|
320
320
|
|
|
321
321
|
Current Douyin workflows include:
|
|
@@ -338,10 +338,9 @@ Current Weibo workflows include:
|
|
|
338
338
|
- Resolve a Weibo post URL, short link, share text, or post_id into structured post details.
|
|
339
339
|
- Fetch paginated first-level comments for comment analysis.
|
|
340
340
|
- Fetch paginated replies under a first-level comment.
|
|
341
|
-
- Fetch paginated liker and repost lists from a post_id, post URL, short link, or share text.
|
|
342
341
|
- Continue Weibo list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
343
|
-
- Read
|
|
344
|
-
- Fetch paginated
|
|
342
|
+
- Read creator profile data from a profile link, short link, share text, or user_id.
|
|
343
|
+
- Fetch paginated creator post lists from a user_id, profile link, short link, or share text.
|
|
345
344
|
- Submit and check Weibo video 口播转文字 / speech-to-text transcript jobs; submit tools 提交完成后最多短等 15 秒.
|
|
346
345
|
|
|
347
346
|
Current WeChat Channels / 视频号 workflows include:
|
|
@@ -414,10 +413,10 @@ Current Sensitive Check workflows include:
|
|
|
414
413
|
| `kuaishou_get_video_comments_by_photo_id` | Fetch paginated first-level comments when the caller already has a photo_id. |
|
|
415
414
|
| `kuaishou_get_video_comments_by_url` | Fetch paginated first-level comments directly from a Kuaishou work page link, short link, or share text. |
|
|
416
415
|
| `kuaishou_get_video_comment_replies_by_comment_id` | Fetch paginated replies under a first-level comment by photo_id and comment_id. |
|
|
417
|
-
| `kuaishou_get_user_info_by_user_id` | Fetch creator profile data when the caller already has a user_id. |
|
|
418
|
-
| `kuaishou_get_user_info_by_profile_url` | Resolve a Kuaishou profile link, short link, or share text into creator profile data. |
|
|
419
|
-
| `kuaishou_get_user_posted_videos_by_user_id` | Fetch a paginated list of works published by a creator when the caller already has a user_id. |
|
|
420
|
-
| `kuaishou_get_user_posted_videos_by_profile_url` | Fetch a paginated list of works published by a creator from a profile link, short link, or share text. |
|
|
416
|
+
| `kuaishou_get_user_info_by_user_id` | Fetch creator profile data when the caller already has a non-empty user_id. |
|
|
417
|
+
| `kuaishou_get_user_info_by_profile_url` | Resolve a Kuaishou profile link, including live/fw-user profile shares, short link, or share text into creator profile data; successful results return a reusable non-empty user_id. |
|
|
418
|
+
| `kuaishou_get_user_posted_videos_by_user_id` | Fetch a paginated list of works published by a creator when the caller already has a non-empty user_id. |
|
|
419
|
+
| `kuaishou_get_user_posted_videos_by_profile_url` | Fetch a paginated list of works published by a creator 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. |
|
|
421
420
|
| `kuaishou_submit_video_speech_text_by_video_url` | Submit a Kuaishou video speech-to-text transcript job from a work page link, short link, or share text; submit waits up to 15 seconds. |
|
|
422
421
|
| `kuaishou_submit_video_speech_text_by_photo_id` | Submit a Kuaishou video speech-to-text transcript job when the caller already has a photo_id; submit waits up to 15 seconds. |
|
|
423
422
|
| `kuaishou_get_video_speech_text_job` | Check a Kuaishou speech-to-text transcript job by job_id without creating a new task. |
|
|
@@ -433,14 +432,10 @@ Current Sensitive Check workflows include:
|
|
|
433
432
|
| `weibo_get_post_comments_by_post_id` | Fetch paginated first-level comments when the caller already has a post_id. |
|
|
434
433
|
| `weibo_get_post_comments_by_post_url` | Fetch paginated first-level comments directly from a Weibo post URL, short link, or share text. |
|
|
435
434
|
| `weibo_get_post_comment_replies_by_comment_id` | Fetch paginated replies under a first-level comment by post_id and comment_id. |
|
|
436
|
-
| `
|
|
437
|
-
| `
|
|
438
|
-
| `
|
|
439
|
-
| `
|
|
440
|
-
| `weibo_get_user_info_by_user_id` | Fetch user profile data when the caller already has a user_id. |
|
|
441
|
-
| `weibo_get_user_info_by_profile_url` | Resolve a Weibo profile link, short link, or share text into user profile data. |
|
|
442
|
-
| `weibo_get_user_posts_by_user_id` | Fetch a paginated list of posts published by a user when the caller already has a user_id. |
|
|
443
|
-
| `weibo_get_user_posts_by_profile_url` | Fetch a paginated list of posts published by a user from a profile link, short link, or share text. |
|
|
435
|
+
| `weibo_get_user_info_by_user_id` | Fetch creator profile data when the caller already has a user_id. |
|
|
436
|
+
| `weibo_get_user_info_by_profile_url` | Resolve a Weibo profile link, short link, or share text into creator profile data. |
|
|
437
|
+
| `weibo_get_user_posts_by_user_id` | Fetch a paginated list of posts published by a creator when the caller already has a user_id. |
|
|
438
|
+
| `weibo_get_user_posts_by_profile_url` | Fetch a paginated list of posts published by a creator from a profile link, short link, or share text. |
|
|
444
439
|
| `weibo_submit_video_speech_text_by_post_url` | Submit a Weibo video speech-to-text transcript job from a post URL, short link, or share text; submit waits up to 15 seconds. |
|
|
445
440
|
| `weibo_submit_video_speech_text_by_post_id` | Submit a Weibo video speech-to-text transcript job when the caller already has a post_id; submit waits up to 15 seconds. |
|
|
446
441
|
| `weibo_get_video_speech_text_job` | Check a Weibo speech-to-text transcript job by job_id without creating a new task. |
|
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.17";
|
|
11
11
|
const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
|
|
12
12
|
const LOG_PREFIX = `[${PACKAGE_NAME}]`;
|
|
13
13
|
const MIN_NODE_VERSION = "20.18.1";
|
|
@@ -15,6 +15,16 @@ const HOMEPAGE_URL = "https://socialdatax.com";
|
|
|
15
15
|
const PRIMARY_API_KEY_ENV = "SOCIALDATAX_API_KEY";
|
|
16
16
|
const LEGACY_API_KEY_ENV = "SOCIAL_MEDIA_MCP_API_KEY";
|
|
17
17
|
const API_KEY_ENV_NAMES = [PRIMARY_API_KEY_ENV, LEGACY_API_KEY_ENV];
|
|
18
|
+
const SOURCE_CLIENT_ENV = "SOCIALDATAX_SOURCE_CLIENT";
|
|
19
|
+
const SOURCE_PLATFORM_ENV = "SOCIALDATAX_SOURCE_PLATFORM";
|
|
20
|
+
const SOURCE_SKILL_ENV = "SOCIALDATAX_SOURCE_SKILL";
|
|
21
|
+
const SOURCE_CLIENT_ENV_NAMES = [SOURCE_CLIENT_ENV];
|
|
22
|
+
const SOURCE_PLATFORM_ENV_NAMES = [SOURCE_PLATFORM_ENV];
|
|
23
|
+
const SOURCE_SKILL_ENV_NAMES = [SOURCE_SKILL_ENV];
|
|
24
|
+
const SOURCE_CLIENT_HEADER = "X-SocialDataX-Client";
|
|
25
|
+
const SOURCE_PLATFORM_HEADER = "X-SocialDataX-Source-Platform";
|
|
26
|
+
const SOURCE_SKILL_HEADER = "X-SocialDataX-Source-Skill";
|
|
27
|
+
const SOURCE_ATTRIBUTION_PATTERN = /^[a-z0-9][a-z0-9-]{0,99}$/;
|
|
18
28
|
const AVAILABLE_SKILLS = [
|
|
19
29
|
{
|
|
20
30
|
name: "socialdatax-content-research-assistant",
|
|
@@ -75,6 +85,7 @@ const BOOLEAN_OPTIONS = new Set([
|
|
|
75
85
|
"pretty",
|
|
76
86
|
]);
|
|
77
87
|
const DIRECT_BOOLEAN_OPTIONS = new Set(["all", "includeReplies", "pretty"]);
|
|
88
|
+
const DIRECT_META_OPTIONS = ["sourceClient", "sourcePlatform", "sourceSkill"];
|
|
78
89
|
const INSTALL_TARGETS = ["openclaw", "hermes", "agents", "codex", "claude-code", "claude"];
|
|
79
90
|
const VALID_SCOPES = ["user", "workspace", "shared"];
|
|
80
91
|
const XHS_DIRECT_ACTION_OPTIONS = {
|
|
@@ -306,8 +317,8 @@ const WEIBO_DIRECT_ACTION_OPTIONS = {
|
|
|
306
317
|
"includeReplies",
|
|
307
318
|
"pretty",
|
|
308
319
|
],
|
|
309
|
-
likers: ["postId", "
|
|
310
|
-
reposts: ["postId", "
|
|
320
|
+
likers: ["postId", "pageToken", "pages", "all", "maxItems", "pretty"],
|
|
321
|
+
reposts: ["postId", "pageToken", "pages", "all", "maxItems", "pretty"],
|
|
311
322
|
"user-info": ["userId", "profileUrl", "pretty"],
|
|
312
323
|
"user-posts": [
|
|
313
324
|
"userId",
|
|
@@ -636,19 +647,22 @@ const PLATFORMS = {
|
|
|
636
647
|
},
|
|
637
648
|
{
|
|
638
649
|
name: "kuaishou_get_user_info_by_user_id",
|
|
639
|
-
description: "Fetch creator profile data when the caller already has a user_id.",
|
|
650
|
+
description: "Fetch creator profile data when the caller already has a non-empty user_id.",
|
|
640
651
|
},
|
|
641
652
|
{
|
|
642
653
|
name: "kuaishou_get_user_info_by_profile_url",
|
|
643
|
-
description:
|
|
654
|
+
description:
|
|
655
|
+
"Resolve a Kuaishou profile link, including live/fw-user profile shares, short link, or share text into creator profile data; successful results return a reusable non-empty user_id.",
|
|
644
656
|
},
|
|
645
657
|
{
|
|
646
658
|
name: "kuaishou_get_user_posted_videos_by_user_id",
|
|
647
|
-
description:
|
|
659
|
+
description:
|
|
660
|
+
"Fetch a paginated list of works published by a creator when the caller already has a non-empty user_id.",
|
|
648
661
|
},
|
|
649
662
|
{
|
|
650
663
|
name: "kuaishou_get_user_posted_videos_by_profile_url",
|
|
651
|
-
description:
|
|
664
|
+
description:
|
|
665
|
+
"Fetch a paginated list of works published by a creator 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.",
|
|
652
666
|
},
|
|
653
667
|
{
|
|
654
668
|
name: "kuaishou_submit_video_speech_text_by_video_url",
|
|
@@ -714,20 +728,10 @@ const PLATFORMS = {
|
|
|
714
728
|
name: "weibo_get_post_liker_list_by_post_id",
|
|
715
729
|
description: "Fetch a paginated list of users who liked a Weibo post by post_id.",
|
|
716
730
|
},
|
|
717
|
-
{
|
|
718
|
-
name: "weibo_get_post_liker_list_by_post_url",
|
|
719
|
-
description:
|
|
720
|
-
"Fetch a paginated list of users who liked a Weibo post from a post URL, short link, or share text.",
|
|
721
|
-
},
|
|
722
731
|
{
|
|
723
732
|
name: "weibo_get_post_repost_list_by_post_id",
|
|
724
733
|
description: "Fetch a paginated repost list for a Weibo post by post_id.",
|
|
725
734
|
},
|
|
726
|
-
{
|
|
727
|
-
name: "weibo_get_post_repost_list_by_post_url",
|
|
728
|
-
description:
|
|
729
|
-
"Fetch a paginated repost list for a Weibo post from a post URL, short link, or share text.",
|
|
730
|
-
},
|
|
731
735
|
{
|
|
732
736
|
name: "weibo_get_user_info_by_user_id",
|
|
733
737
|
description: "Fetch creator profile data when the caller already has a user_id.",
|
|
@@ -968,6 +972,10 @@ function validateKnownOptions(options, allowedOptions) {
|
|
|
968
972
|
}
|
|
969
973
|
}
|
|
970
974
|
|
|
975
|
+
function allowedDirectOptions(allowedOptions) {
|
|
976
|
+
return [...allowedOptions, ...DIRECT_META_OPTIONS];
|
|
977
|
+
}
|
|
978
|
+
|
|
971
979
|
function requireOptionValue(options, key, displayName) {
|
|
972
980
|
if (options[key] === true || options[key] === "") {
|
|
973
981
|
throw new Error(`Missing value for ${displayName}.`);
|
|
@@ -986,7 +994,8 @@ function validateXhsDirectActionOptions(action, options) {
|
|
|
986
994
|
return;
|
|
987
995
|
}
|
|
988
996
|
|
|
989
|
-
validateKnownOptions(options, allowedOptions);
|
|
997
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
998
|
+
validateDirectMetaOptions(options);
|
|
990
999
|
validateDirectPaginationOptions("xhs", action, options);
|
|
991
1000
|
for (const key of allowedOptions) {
|
|
992
1001
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1001,7 +1010,8 @@ function validateDouyinDirectActionOptions(action, options) {
|
|
|
1001
1010
|
return;
|
|
1002
1011
|
}
|
|
1003
1012
|
|
|
1004
|
-
validateKnownOptions(options, allowedOptions);
|
|
1013
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
1014
|
+
validateDirectMetaOptions(options);
|
|
1005
1015
|
validateDirectPaginationOptions("douyin", action, options);
|
|
1006
1016
|
for (const key of allowedOptions) {
|
|
1007
1017
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1016,7 +1026,8 @@ function validateKuaishouDirectActionOptions(action, options) {
|
|
|
1016
1026
|
return;
|
|
1017
1027
|
}
|
|
1018
1028
|
|
|
1019
|
-
validateKnownOptions(options, allowedOptions);
|
|
1029
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
1030
|
+
validateDirectMetaOptions(options);
|
|
1020
1031
|
validateDirectPaginationOptions("kuaishou", action, options);
|
|
1021
1032
|
for (const key of allowedOptions) {
|
|
1022
1033
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1031,7 +1042,8 @@ function validateWeiboDirectActionOptions(action, options) {
|
|
|
1031
1042
|
return;
|
|
1032
1043
|
}
|
|
1033
1044
|
|
|
1034
|
-
validateKnownOptions(options, allowedOptions);
|
|
1045
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
1046
|
+
validateDirectMetaOptions(options);
|
|
1035
1047
|
validateDirectPaginationOptions("weibo", action, options);
|
|
1036
1048
|
for (const key of allowedOptions) {
|
|
1037
1049
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1046,7 +1058,8 @@ function validateWechatDirectActionOptions(action, options) {
|
|
|
1046
1058
|
return;
|
|
1047
1059
|
}
|
|
1048
1060
|
|
|
1049
|
-
validateKnownOptions(options, allowedOptions);
|
|
1061
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
1062
|
+
validateDirectMetaOptions(options);
|
|
1050
1063
|
validateDirectPaginationOptions("wechat", action, options);
|
|
1051
1064
|
for (const key of allowedOptions) {
|
|
1052
1065
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1061,7 +1074,8 @@ function validateSensitiveCheckDirectActionOptions(action, options) {
|
|
|
1061
1074
|
return;
|
|
1062
1075
|
}
|
|
1063
1076
|
|
|
1064
|
-
validateKnownOptions(options, allowedOptions);
|
|
1077
|
+
validateKnownOptions(options, allowedDirectOptions(allowedOptions));
|
|
1078
|
+
validateDirectMetaOptions(options);
|
|
1065
1079
|
validateFlagOption(options, "pretty", "--pretty");
|
|
1066
1080
|
for (const key of allowedOptions) {
|
|
1067
1081
|
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
@@ -1070,6 +1084,21 @@ function validateSensitiveCheckDirectActionOptions(action, options) {
|
|
|
1070
1084
|
}
|
|
1071
1085
|
}
|
|
1072
1086
|
|
|
1087
|
+
function validateDirectMetaOptions(options) {
|
|
1088
|
+
if (options.sourceClient !== undefined) {
|
|
1089
|
+
requireOptionValue(options, "sourceClient", "--source-client");
|
|
1090
|
+
normalizeSourceAttribution(options.sourceClient, "--source-client");
|
|
1091
|
+
}
|
|
1092
|
+
if (options.sourcePlatform !== undefined) {
|
|
1093
|
+
requireOptionValue(options, "sourcePlatform", "--source-platform");
|
|
1094
|
+
normalizeSourceAttribution(options.sourcePlatform, "--source-platform");
|
|
1095
|
+
}
|
|
1096
|
+
if (options.sourceSkill !== undefined) {
|
|
1097
|
+
requireOptionValue(options, "sourceSkill", "--source-skill");
|
|
1098
|
+
normalizeSourceAttribution(options.sourceSkill, "--source-skill");
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1073
1102
|
function validateDirectPaginationOptions(platformId, action, options) {
|
|
1074
1103
|
validateFlagOption(options, "pretty", "--pretty");
|
|
1075
1104
|
validateFlagOption(options, "all", "--all");
|
|
@@ -1219,6 +1248,47 @@ function readFirstEnv(names) {
|
|
|
1219
1248
|
return undefined;
|
|
1220
1249
|
}
|
|
1221
1250
|
|
|
1251
|
+
function normalizeSourceAttribution(value, displayName) {
|
|
1252
|
+
const text = String(value || "").trim().toLowerCase();
|
|
1253
|
+
if (!text) {
|
|
1254
|
+
return "";
|
|
1255
|
+
}
|
|
1256
|
+
if (!SOURCE_ATTRIBUTION_PATTERN.test(text)) {
|
|
1257
|
+
throw new Error(
|
|
1258
|
+
`${displayName} must be a lowercase skill slug using letters, numbers, and hyphens.`
|
|
1259
|
+
);
|
|
1260
|
+
}
|
|
1261
|
+
return text;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
function resolveSourceAttribution(options = {}) {
|
|
1265
|
+
return {
|
|
1266
|
+
sourceClient:
|
|
1267
|
+
options.sourceClient !== undefined
|
|
1268
|
+
? normalizeSourceAttribution(options.sourceClient, "--source-client")
|
|
1269
|
+
: normalizeSourceAttribution(
|
|
1270
|
+
readFirstEnv(SOURCE_CLIENT_ENV_NAMES) || PACKAGE_NAME,
|
|
1271
|
+
SOURCE_CLIENT_ENV
|
|
1272
|
+
),
|
|
1273
|
+
sourcePlatform:
|
|
1274
|
+
options.sourcePlatform !== undefined
|
|
1275
|
+
? normalizeSourceAttribution(options.sourcePlatform, "--source-platform")
|
|
1276
|
+
: normalizeSourceAttribution(
|
|
1277
|
+
readFirstEnv(SOURCE_PLATFORM_ENV_NAMES),
|
|
1278
|
+
SOURCE_PLATFORM_ENV
|
|
1279
|
+
),
|
|
1280
|
+
sourceSkill:
|
|
1281
|
+
options.sourceSkill !== undefined
|
|
1282
|
+
? normalizeSourceAttribution(options.sourceSkill, "--source-skill")
|
|
1283
|
+
: normalizeSourceAttribution(readFirstEnv(SOURCE_SKILL_ENV_NAMES), SOURCE_SKILL_ENV),
|
|
1284
|
+
};
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
function attachDirectMetadata(operation, options) {
|
|
1288
|
+
operation.sourceAttribution = resolveSourceAttribution(options);
|
|
1289
|
+
return operation;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1222
1292
|
function resolveUpstreamUrl(platform) {
|
|
1223
1293
|
return readFirstEnv(platform.upstreamEnv) || platform.endpoint;
|
|
1224
1294
|
}
|
|
@@ -1380,10 +1450,15 @@ async function installSkills(args) {
|
|
|
1380
1450
|
console.log("Data calls do not perform login, posting, editing, liking, commenting, or account actions.");
|
|
1381
1451
|
console.log("Configure your API Key before making authenticated calls:");
|
|
1382
1452
|
console.log(` export ${PRIMARY_API_KEY_ENV}="<${PRIMARY_API_KEY_ENV}>"`);
|
|
1453
|
+
printInstalledSkillAttributionNote();
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
function printInstalledSkillAttributionNote() {
|
|
1383
1457
|
console.log("");
|
|
1384
|
-
console.log(
|
|
1385
|
-
|
|
1386
|
-
|
|
1458
|
+
console.log(
|
|
1459
|
+
"Direct CLI examples in installed SKILL.md files already include source attribution for agents."
|
|
1460
|
+
);
|
|
1461
|
+
console.log("No extra source attribution setup is required.");
|
|
1387
1462
|
}
|
|
1388
1463
|
|
|
1389
1464
|
function resolveInstallDestination({
|
|
@@ -1705,7 +1780,9 @@ function printHelp() {
|
|
|
1705
1780
|
console.log(" Call the Kuaishou creator works tool directly and print JSON.");
|
|
1706
1781
|
console.log("");
|
|
1707
1782
|
console.log(` npx -y ${PACKAGE_SPEC} kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty`);
|
|
1708
|
-
console.log(
|
|
1783
|
+
console.log(
|
|
1784
|
+
" Call the Kuaishou creator works tool from a profile link or share text that resolves directly to a non-empty user_id."
|
|
1785
|
+
);
|
|
1709
1786
|
console.log("");
|
|
1710
1787
|
console.log(` npx -y ${PACKAGE_SPEC} weibo hot-search --pretty`);
|
|
1711
1788
|
console.log(" Call the Weibo hot-search list tool directly and print JSON.");
|
|
@@ -1731,15 +1808,9 @@ function printHelp() {
|
|
|
1731
1808
|
console.log(` npx -y ${PACKAGE_SPEC} weibo likers --post-id "<post_id>" --pretty`);
|
|
1732
1809
|
console.log(" Call the Weibo post liker list tool directly and print JSON.");
|
|
1733
1810
|
console.log("");
|
|
1734
|
-
console.log(` npx -y ${PACKAGE_SPEC} weibo likers --post-url "<weibo_post_url_or_share_text>" --pretty`);
|
|
1735
|
-
console.log(" Call the Weibo post liker list tool from a post link or share text.");
|
|
1736
|
-
console.log("");
|
|
1737
1811
|
console.log(` npx -y ${PACKAGE_SPEC} weibo reposts --post-id "<post_id>" --pretty`);
|
|
1738
1812
|
console.log(" Call the Weibo post repost list tool directly and print JSON.");
|
|
1739
1813
|
console.log("");
|
|
1740
|
-
console.log(` npx -y ${PACKAGE_SPEC} weibo reposts --post-url "<weibo_post_url_or_share_text>" --pretty`);
|
|
1741
|
-
console.log(" Call the Weibo post repost list tool from a post link or share text.");
|
|
1742
|
-
console.log("");
|
|
1743
1814
|
console.log(` npx -y ${PACKAGE_SPEC} weibo user-info --user-id "<user_id>" --pretty`);
|
|
1744
1815
|
console.log(" Call the Weibo creator profile tool directly and print JSON.");
|
|
1745
1816
|
console.log("");
|
|
@@ -1895,6 +1966,12 @@ function printHelp() {
|
|
|
1895
1966
|
console.log(" Douyin content type filter; omit for all content types.");
|
|
1896
1967
|
console.log(" --page-token <token>");
|
|
1897
1968
|
console.log(" Continue token-paginated commands with the complete returned next_page_token. For search, omit it on the first request.");
|
|
1969
|
+
console.log(" --source-client <slug>");
|
|
1970
|
+
console.log(" Attribution client slug for authenticated direct CLI calls; defaults to socialdatax-skills.");
|
|
1971
|
+
console.log(" --source-platform <slug>");
|
|
1972
|
+
console.log(" Attribution marketplace/platform slug for the current Agent Skill, such as modelscope or skillhub.");
|
|
1973
|
+
console.log(" --source-skill <slug>");
|
|
1974
|
+
console.log(" Attribute authenticated direct CLI calls to the current Agent Skill usage slug.");
|
|
1898
1975
|
console.log(" --sort-type <all|time_descending|collect_count_descending>");
|
|
1899
1976
|
console.log(" WeChat Channels / 视频号 search sort; collect_count_descending means hottest first / most collected first; omit for default sort.");
|
|
1900
1977
|
console.log(" --duration-range <all|under_5_min|between_5_and_20_min|over_20_min>");
|
|
@@ -1954,7 +2031,7 @@ async function runXhsDirectCommand(args) {
|
|
|
1954
2031
|
}
|
|
1955
2032
|
validateXhsDirectActionOptions(action, options);
|
|
1956
2033
|
|
|
1957
|
-
const operation = buildXhsOperation(action, options);
|
|
2034
|
+
const operation = attachDirectMetadata(buildXhsOperation(action, options), options);
|
|
1958
2035
|
const data = shouldUsePaginatedDirectOutput(options)
|
|
1959
2036
|
? await callPaginatedDirectOperation(operation, options)
|
|
1960
2037
|
: await callDirectOperation(operation);
|
|
@@ -1981,7 +2058,7 @@ async function runDouyinDirectCommand(args) {
|
|
|
1981
2058
|
}
|
|
1982
2059
|
validateDouyinDirectActionOptions(action, options);
|
|
1983
2060
|
|
|
1984
|
-
const operation = buildDouyinOperation(action, options);
|
|
2061
|
+
const operation = attachDirectMetadata(buildDouyinOperation(action, options), options);
|
|
1985
2062
|
const data = shouldUsePaginatedDirectOutput(options)
|
|
1986
2063
|
? await callPaginatedDirectOperation(operation, options)
|
|
1987
2064
|
: await callDirectOperation(operation);
|
|
@@ -2008,7 +2085,7 @@ async function runKuaishouDirectCommand(args) {
|
|
|
2008
2085
|
}
|
|
2009
2086
|
validateKuaishouDirectActionOptions(action, options);
|
|
2010
2087
|
|
|
2011
|
-
const operation = buildKuaishouOperation(action, options);
|
|
2088
|
+
const operation = attachDirectMetadata(buildKuaishouOperation(action, options), options);
|
|
2012
2089
|
const data = shouldUsePaginatedDirectOutput(options)
|
|
2013
2090
|
? await callPaginatedDirectOperation(operation, options)
|
|
2014
2091
|
: await callDirectOperation(operation);
|
|
@@ -2035,7 +2112,7 @@ async function runWeiboDirectCommand(args) {
|
|
|
2035
2112
|
}
|
|
2036
2113
|
validateWeiboDirectActionOptions(action, options);
|
|
2037
2114
|
|
|
2038
|
-
const operation = buildWeiboOperation(action, options);
|
|
2115
|
+
const operation = attachDirectMetadata(buildWeiboOperation(action, options), options);
|
|
2039
2116
|
const data = shouldUsePaginatedDirectOutput(options)
|
|
2040
2117
|
? await callPaginatedDirectOperation(operation, options)
|
|
2041
2118
|
: await callDirectOperation(operation);
|
|
@@ -2062,7 +2139,7 @@ async function runWechatDirectCommand(args) {
|
|
|
2062
2139
|
}
|
|
2063
2140
|
validateWechatDirectActionOptions(action, options);
|
|
2064
2141
|
|
|
2065
|
-
const operation = buildWechatOperation(action, options);
|
|
2142
|
+
const operation = attachDirectMetadata(buildWechatOperation(action, options), options);
|
|
2066
2143
|
const data = shouldUsePaginatedDirectOutput(options)
|
|
2067
2144
|
? await callPaginatedDirectOperation(operation, options)
|
|
2068
2145
|
: await callDirectOperation(operation);
|
|
@@ -2089,7 +2166,10 @@ async function runSensitiveCheckDirectCommand(args) {
|
|
|
2089
2166
|
}
|
|
2090
2167
|
validateSensitiveCheckDirectActionOptions(action, options);
|
|
2091
2168
|
|
|
2092
|
-
const operation =
|
|
2169
|
+
const operation = attachDirectMetadata(
|
|
2170
|
+
buildSensitiveCheckOperation(action, options),
|
|
2171
|
+
options
|
|
2172
|
+
);
|
|
2093
2173
|
const data = await callDirectOperation(operation);
|
|
2094
2174
|
const envelope = {
|
|
2095
2175
|
platform: operation.platform.id,
|
|
@@ -2433,33 +2513,13 @@ function buildWeiboOperation(action, options) {
|
|
|
2433
2513
|
case "likers":
|
|
2434
2514
|
return buildDirectOperation(
|
|
2435
2515
|
"likers",
|
|
2436
|
-
|
|
2437
|
-
idOption: "postId",
|
|
2438
|
-
urlOption: "postUrl",
|
|
2439
|
-
idTool: "weibo_get_post_liker_list_by_post_id",
|
|
2440
|
-
urlTool: "weibo_get_post_liker_list_by_post_url",
|
|
2441
|
-
idArgument: "post_id",
|
|
2442
|
-
urlArgument: "post_url",
|
|
2443
|
-
idDisplay: "--post-id",
|
|
2444
|
-
urlDisplay: "--post-url",
|
|
2445
|
-
pageToken: options.pageToken,
|
|
2446
|
-
}),
|
|
2516
|
+
buildWeiboPostListByPostIdCall(options, "likers", "weibo_get_post_liker_list_by_post_id"),
|
|
2447
2517
|
PLATFORMS.weibo
|
|
2448
2518
|
);
|
|
2449
2519
|
case "reposts":
|
|
2450
2520
|
return buildDirectOperation(
|
|
2451
2521
|
"reposts",
|
|
2452
|
-
|
|
2453
|
-
idOption: "postId",
|
|
2454
|
-
urlOption: "postUrl",
|
|
2455
|
-
idTool: "weibo_get_post_repost_list_by_post_id",
|
|
2456
|
-
urlTool: "weibo_get_post_repost_list_by_post_url",
|
|
2457
|
-
idArgument: "post_id",
|
|
2458
|
-
urlArgument: "post_url",
|
|
2459
|
-
idDisplay: "--post-id",
|
|
2460
|
-
urlDisplay: "--post-url",
|
|
2461
|
-
pageToken: options.pageToken,
|
|
2462
|
-
}),
|
|
2522
|
+
buildWeiboPostListByPostIdCall(options, "reposts", "weibo_get_post_repost_list_by_post_id"),
|
|
2463
2523
|
PLATFORMS.weibo
|
|
2464
2524
|
);
|
|
2465
2525
|
case "user-info":
|
|
@@ -2935,6 +2995,22 @@ function buildWeiboRepliesCall(options) {
|
|
|
2935
2995
|
};
|
|
2936
2996
|
}
|
|
2937
2997
|
|
|
2998
|
+
function buildWeiboPostListByPostIdCall(options, action, tool) {
|
|
2999
|
+
if (!options.postId) {
|
|
3000
|
+
throw new Error(`Missing --post-id for weibo ${action}.`);
|
|
3001
|
+
}
|
|
3002
|
+
const toolArguments = {
|
|
3003
|
+
post_id: options.postId,
|
|
3004
|
+
};
|
|
3005
|
+
if (options.pageToken) {
|
|
3006
|
+
toolArguments.page_token = options.pageToken;
|
|
3007
|
+
}
|
|
3008
|
+
return {
|
|
3009
|
+
tool,
|
|
3010
|
+
toolArguments,
|
|
3011
|
+
};
|
|
3012
|
+
}
|
|
3013
|
+
|
|
2938
3014
|
function buildWechatCommentsCall(options) {
|
|
2939
3015
|
const hasObjectInput = Boolean(options.objectId || options.objectNonceId);
|
|
2940
3016
|
const hasUrlInput = Boolean(options.url);
|
|
@@ -3456,6 +3532,9 @@ async function attachRepliesToCommentItems(operation, items, pageData) {
|
|
|
3456
3532
|
operation.arguments,
|
|
3457
3533
|
pageData
|
|
3458
3534
|
);
|
|
3535
|
+
repliesOperation.sourceAttribution = operation.sourceAttribution
|
|
3536
|
+
? { ...operation.sourceAttribution }
|
|
3537
|
+
: undefined;
|
|
3459
3538
|
const repliesData = await collectPaginatedDirectData(
|
|
3460
3539
|
repliesOperation,
|
|
3461
3540
|
{ all: true, pages: undefined, maxItems: undefined },
|
|
@@ -3618,11 +3697,22 @@ async function callMcpBackend(operation) {
|
|
|
3618
3697
|
{ name: PACKAGE_NAME, version: PACKAGE_VERSION },
|
|
3619
3698
|
{ capabilities: {} }
|
|
3620
3699
|
);
|
|
3700
|
+
const headers = {
|
|
3701
|
+
Authorization: `Bearer ${apiKey}`,
|
|
3702
|
+
};
|
|
3703
|
+
const sourceAttribution = operation.sourceAttribution || {};
|
|
3704
|
+
if (sourceAttribution.sourceClient) {
|
|
3705
|
+
headers[SOURCE_CLIENT_HEADER] = sourceAttribution.sourceClient;
|
|
3706
|
+
}
|
|
3707
|
+
if (sourceAttribution.sourcePlatform) {
|
|
3708
|
+
headers[SOURCE_PLATFORM_HEADER] = sourceAttribution.sourcePlatform;
|
|
3709
|
+
}
|
|
3710
|
+
if (sourceAttribution.sourceSkill) {
|
|
3711
|
+
headers[SOURCE_SKILL_HEADER] = sourceAttribution.sourceSkill;
|
|
3712
|
+
}
|
|
3621
3713
|
const transport = new StreamableHTTPClientTransport(new URL(upstreamUrl), {
|
|
3622
3714
|
requestInit: {
|
|
3623
|
-
headers
|
|
3624
|
-
Authorization: `Bearer ${apiKey}`,
|
|
3625
|
-
},
|
|
3715
|
+
headers,
|
|
3626
3716
|
},
|
|
3627
3717
|
});
|
|
3628
3718
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-comments"
|
|
3
3
|
description: "Fetch and analyze XHS comments/replies, Douyin comments/replies, Kuaishou comments/replies, Weibo comments/replies, and WeChat Channels / 视频号 comments/replies. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, Douyin / 抖音, Kuaishou / 快手 / Kwai, Weibo / 微博, and WeChat Channels / 视频号."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-comments"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -41,26 +44,26 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
41
44
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
42
45
|
|
|
43
46
|
```bash
|
|
44
|
-
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty
|
|
45
|
-
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --all --include-replies --pretty
|
|
46
|
-
npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" --pretty
|
|
47
|
-
npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty
|
|
48
|
-
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty
|
|
49
|
-
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --all --include-replies --pretty
|
|
50
|
-
npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty
|
|
51
|
-
npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty
|
|
52
|
-
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --pretty
|
|
53
|
-
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --all --include-replies --pretty
|
|
54
|
-
npx -y socialdatax-skills@latest kuaishou comments --url "<kuaishou_content_url_or_share_text>" --pretty
|
|
55
|
-
npx -y socialdatax-skills@latest kuaishou replies --photo-id "<photo_id>" --comment-id "<comment_id>" --pretty
|
|
56
|
-
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty
|
|
57
|
-
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty
|
|
58
|
-
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
59
|
-
npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty
|
|
60
|
-
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --pretty
|
|
61
|
-
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --all --include-replies --pretty
|
|
62
|
-
npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty
|
|
63
|
-
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty
|
|
47
|
+
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
48
|
+
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
49
|
+
npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
50
|
+
npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
51
|
+
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
52
|
+
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
53
|
+
npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
54
|
+
npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
55
|
+
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
56
|
+
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
57
|
+
npx -y socialdatax-skills@latest kuaishou comments --url "<kuaishou_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
58
|
+
npx -y socialdatax-skills@latest kuaishou replies --photo-id "<photo_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
59
|
+
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
60
|
+
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
61
|
+
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
62
|
+
npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
63
|
+
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
64
|
+
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
65
|
+
npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
66
|
+
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-comments
|
|
64
67
|
```
|
|
65
68
|
|
|
66
69
|
Optional arguments:
|
|
@@ -81,6 +84,7 @@ Optional arguments:
|
|
|
81
84
|
- Weibo `--post-url <weibo_post_url_or_share_text>`: use for a Weibo post URL, short link, or share text for first-level comments.
|
|
82
85
|
- WeChat Channels / 视频号 `--object-id <object_id>` and `--object-nonce-id <object_nonce_id>`: use together when both values are already known and should anchor the comment thread.
|
|
83
86
|
- WeChat Channels / 视频号 `--url <wechat_video_url_or_share_text>`: use for a WeChat Channels video link or share text for first-level comments.
|
|
87
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-comments`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
84
88
|
|
|
85
89
|
Use either the content ID option or the URL option for first-level comments, not both. For reply commands, use the content ID together with `--comment-id`.
|
|
86
90
|
|
|
@@ -88,7 +92,7 @@ The command prints JSON with `platform`, `tool`, `arguments`, and `data`. Multi-
|
|
|
88
92
|
|
|
89
93
|
## Safety Boundary
|
|
90
94
|
|
|
91
|
-
This skill is read-only. It
|
|
95
|
+
This skill is read-only. 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.
|
|
92
96
|
|
|
93
97
|
## MCP Tools
|
|
94
98
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-detail"
|
|
3
3
|
description: "Read structured social media content details and metrics from content IDs, URLs, short links, or share text. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, Douyin / 抖音, Kuaishou / 快手 / Kwai, Weibo / 微博, and WeChat Channels / 视频号."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-detail"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -41,16 +44,16 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
41
44
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
42
45
|
|
|
43
46
|
```bash
|
|
44
|
-
npx -y socialdatax-skills@latest xhs detail --note-id "<note_id>" --pretty
|
|
45
|
-
npx -y socialdatax-skills@latest xhs detail --url "<note_url_or_share_text>" --pretty
|
|
46
|
-
npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty
|
|
47
|
-
npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty
|
|
48
|
-
npx -y socialdatax-skills@latest kuaishou detail --photo-id "<photo_id>" --pretty
|
|
49
|
-
npx -y socialdatax-skills@latest kuaishou detail --url "<kuaishou_content_url_or_share_text>" --pretty
|
|
50
|
-
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty
|
|
51
|
-
npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
52
|
-
npx -y socialdatax-skills@latest wechat detail --encrypted-object-id "<encrypted_object_id>" --pretty
|
|
53
|
-
npx -y socialdatax-skills@latest wechat detail --url "<wechat_video_url_or_share_text>" --pretty
|
|
47
|
+
npx -y socialdatax-skills@latest xhs detail --note-id "<note_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
48
|
+
npx -y socialdatax-skills@latest xhs detail --url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
49
|
+
npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
50
|
+
npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
51
|
+
npx -y socialdatax-skills@latest kuaishou detail --photo-id "<photo_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
52
|
+
npx -y socialdatax-skills@latest kuaishou detail --url "<kuaishou_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
53
|
+
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
54
|
+
npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
55
|
+
npx -y socialdatax-skills@latest wechat detail --encrypted-object-id "<encrypted_object_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
56
|
+
npx -y socialdatax-skills@latest wechat detail --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-detail
|
|
54
57
|
```
|
|
55
58
|
|
|
56
59
|
Optional arguments:
|
|
@@ -66,6 +69,7 @@ Optional arguments:
|
|
|
66
69
|
- Weibo `--post-url <weibo_post_url_or_share_text>`: use for a Weibo post URL, short link, or share text.
|
|
67
70
|
- WeChat Channels / 视频号 `--encrypted-object-id <encrypted_object_id>`: use when the encrypted_object_id from search is already known.
|
|
68
71
|
- WeChat Channels / 视频号 `--url <wechat_video_url_or_share_text>`: use for a WeChat Channels video link or share text.
|
|
72
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-detail`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
69
73
|
|
|
70
74
|
Use either the ID option or the URL option for detail commands, not both.
|
|
71
75
|
|
|
@@ -73,7 +77,7 @@ The command prints JSON with `platform`, `tool`, `arguments`, and `data`.
|
|
|
73
77
|
|
|
74
78
|
## Safety Boundary
|
|
75
79
|
|
|
76
|
-
This skill is read-only. It
|
|
80
|
+
This skill is read-only. 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.
|
|
77
81
|
|
|
78
82
|
## MCP Tools
|
|
79
83
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-search"
|
|
3
3
|
description: "Search social media content by keyword for social research, competitor research, topic discovery, content planning, market observation, and trend scanning. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, Douyin / 抖音, Kuaishou / 快手 / Kwai, Weibo / 微博, and WeChat Channels / 视频号."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-search"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -41,16 +44,16 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
41
44
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
42
45
|
|
|
43
46
|
```bash
|
|
44
|
-
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty
|
|
45
|
-
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pages 3 --pretty
|
|
46
|
-
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty
|
|
47
|
-
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pages 3 --pretty
|
|
48
|
-
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pretty
|
|
49
|
-
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pages 3 --pretty
|
|
50
|
-
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pretty
|
|
51
|
-
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pages 3 --pretty
|
|
52
|
-
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pretty
|
|
53
|
-
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pages 3 --pretty
|
|
47
|
+
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
48
|
+
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
49
|
+
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
50
|
+
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
51
|
+
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
52
|
+
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
53
|
+
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
54
|
+
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
55
|
+
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
56
|
+
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-search
|
|
54
57
|
```
|
|
55
58
|
|
|
56
59
|
Required arguments:
|
|
@@ -85,6 +88,7 @@ Optional arguments:
|
|
|
85
88
|
- WeChat Channels / 视频号 `--duration-range <all|under_5_min|between_5_and_20_min|over_20_min>`: optional duration filter; omit it for no duration filter.
|
|
86
89
|
- Weibo `--pages <n>`: fetch and merge N search pages from the current starting point; continue with returned `next_page_token`.
|
|
87
90
|
- WeChat Channels / 视频号 `--pages <n>`: fetch and merge N search pages from the current starting point; continue with returned `next_page_token`.
|
|
91
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-search`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
88
92
|
|
|
89
93
|
XHS sort values:
|
|
90
94
|
- `general`: default sorting.
|
|
@@ -149,7 +153,7 @@ Weibo and WeChat Channels search pagination:
|
|
|
149
153
|
|
|
150
154
|
## Safety Boundary
|
|
151
155
|
|
|
152
|
-
This skill is read-only. It
|
|
156
|
+
This skill is read-only. 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.
|
|
153
157
|
|
|
154
158
|
## MCP Tools
|
|
155
159
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-transcript"
|
|
3
3
|
description: "Submit and check video speech-to-text transcript / 口播转文字 jobs for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels through hosted platform MCP tools."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-transcript"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -47,7 +50,7 @@ Submit tools may wait briefly after creating the job. If the transcript is not r
|
|
|
47
50
|
|
|
48
51
|
## Safety Boundary
|
|
49
52
|
|
|
50
|
-
This skill can submit bounded analysis jobs through hosted MCP tools. It
|
|
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.
|
|
51
54
|
|
|
52
55
|
## MCP Tools
|
|
53
56
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-user-info"
|
|
3
3
|
description: "Retrieve social media creator profile information from platform user IDs, profile URLs, short links, or share text. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, Douyin / 抖音, Kuaishou / 快手, Weibo / 微博, and WeChat Channels / 视频号 creators."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-user-info"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -42,16 +45,16 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
42
45
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
43
46
|
|
|
44
47
|
```bash
|
|
45
|
-
npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty
|
|
46
|
-
npx -y socialdatax-skills@latest xhs user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
47
|
-
npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty
|
|
48
|
-
npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
49
|
-
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pretty
|
|
50
|
-
npx -y socialdatax-skills@latest kuaishou user-info --user-id "<user_id>" --pretty
|
|
51
|
-
npx -y socialdatax-skills@latest kuaishou user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
52
|
-
npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty
|
|
53
|
-
npx -y socialdatax-skills@latest weibo user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
54
|
-
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty
|
|
48
|
+
npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
49
|
+
npx -y socialdatax-skills@latest xhs user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
50
|
+
npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
51
|
+
npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
52
|
+
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
53
|
+
npx -y socialdatax-skills@latest kuaishou user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
54
|
+
npx -y socialdatax-skills@latest kuaishou user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
55
|
+
npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
56
|
+
npx -y socialdatax-skills@latest weibo user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
57
|
+
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-info
|
|
55
58
|
```
|
|
56
59
|
|
|
57
60
|
Optional arguments:
|
|
@@ -64,11 +67,12 @@ Optional arguments:
|
|
|
64
67
|
- Kuaishou `user-search --keyword <creator_keyword>`: use when the user only has a creator name, account keyword, or niche and needs possible Kuaishou user_id candidates before profile lookup.
|
|
65
68
|
- Kuaishou user-search `--page-token <next_page_token>`: opaque pagination token; omit it on the first request and continue only with the complete returned `next_page_token` from the same creator-search chain.
|
|
66
69
|
- Kuaishou user-search `--pages <n>` and `--max-items <n>`: fetch and merge bounded creator-search pages; user-search does not support `--since-days` because creator search results are accounts, not published content items.
|
|
67
|
-
- Kuaishou `--user-id <user_id>`:
|
|
68
|
-
- Kuaishou `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
|
|
70
|
+
- Kuaishou `--user-id <user_id>`: use only when a non-empty creator user_id is already known.
|
|
71
|
+
- Kuaishou `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text. Live/fw-user profile shares are supported; successful profile results return a reusable non-empty user_id.
|
|
69
72
|
- Weibo `--user-id <user_id>`: preferred when the creator user_id is already known.
|
|
70
73
|
- Weibo `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
|
|
71
74
|
- WeChat Channels / 视频号 `--user-id <finder_user_id>`: use when the creator user_id ending with `@finder` is already known.
|
|
75
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-user-info`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
72
76
|
|
|
73
77
|
Use either the ID option or the profile URL option for a single command, not both.
|
|
74
78
|
|
|
@@ -76,7 +80,7 @@ The command prints JSON with `platform`, `tool`, `arguments`, and `data`.
|
|
|
76
80
|
|
|
77
81
|
## Safety Boundary
|
|
78
82
|
|
|
79
|
-
This skill is read-only. It
|
|
83
|
+
This skill is read-only. 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.
|
|
80
84
|
|
|
81
85
|
## MCP Tools
|
|
82
86
|
|
|
@@ -99,8 +103,8 @@ If MCP tools are already available in the current agent, use one of these tools:
|
|
|
99
103
|
- `douyin_get_user_info_by_sec_user_id`: preferred when `sec_user_id` is already known from search, detail, comments, or creator work lists.
|
|
100
104
|
- `douyin_get_user_info_by_profile_url`: use for profile URLs, short links, or profile share text.
|
|
101
105
|
- `kuaishou_search_users`: use when the user only has a creator keyword and needs possible Kuaishou user_id candidates. Pass `keyword`; pass `page_token` only for continuation. Do not pass `page`.
|
|
102
|
-
- `kuaishou_get_user_info_by_user_id`: preferred when `user_id` is already known from search, detail, comments, or creator work lists.
|
|
103
|
-
- `kuaishou_get_user_info_by_profile_url`: use for profile URLs, short links, or profile share text
|
|
106
|
+
- `kuaishou_get_user_info_by_user_id`: preferred when a non-empty `user_id` is already known from search, detail, comments, or creator work lists.
|
|
107
|
+
- `kuaishou_get_user_info_by_profile_url`: use for profile URLs, short links, or profile share text, including live/fw-user profile shares; successful results return a reusable non-empty `user_id`.
|
|
104
108
|
- `weibo_get_user_info_by_user_id`: preferred when `user_id` is already known.
|
|
105
109
|
- `weibo_get_user_info_by_profile_url`: use for profile URLs, short links, or profile share text.
|
|
106
110
|
- `wechat_get_user_info_by_user_id`: use when the WeChat Channels / 视频号 creator user_id ending with `@finder` is already known.
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "media-user-posts"
|
|
3
3
|
description: "Retrieve social media creator content lists from platform user IDs, profile URLs, short links, or share text for account research and content style analysis. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, Douyin / 抖音, Kuaishou / 快手, Weibo / 微博, and WeChat Channels / 视频号 creators."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "media-user-posts"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -42,24 +45,24 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
42
45
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
43
46
|
|
|
44
47
|
```bash
|
|
45
|
-
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
|
|
46
|
-
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --all --pretty
|
|
47
|
-
npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
48
|
-
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty
|
|
49
|
-
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --all --pretty
|
|
50
|
-
npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
51
|
-
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
|
|
52
|
-
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --all --pretty
|
|
53
|
-
npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty
|
|
54
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --pretty
|
|
55
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --all --pretty
|
|
56
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
57
|
-
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty
|
|
58
|
-
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --all --pretty
|
|
59
|
-
npx -y socialdatax-skills@latest weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
60
|
-
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty
|
|
61
|
-
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --all --pretty
|
|
62
|
-
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty
|
|
48
|
+
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
49
|
+
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
50
|
+
npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
51
|
+
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
52
|
+
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
53
|
+
npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
54
|
+
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
55
|
+
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
56
|
+
npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
57
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
58
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
59
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
60
|
+
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
61
|
+
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
62
|
+
npx -y socialdatax-skills@latest weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
63
|
+
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
64
|
+
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
65
|
+
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill media-user-posts
|
|
63
66
|
```
|
|
64
67
|
|
|
65
68
|
Optional arguments:
|
|
@@ -75,12 +78,13 @@ Optional arguments:
|
|
|
75
78
|
- `--max-items <n>`: stop after collecting N creator content or series items.
|
|
76
79
|
- `--since-days <1-365>`: keep only creator content whose public `publish_time` is within the last N days. When `--pages` is omitted, the CLI continues creator content lists until the publish-time boundary is reached.
|
|
77
80
|
- `--pretty`: output formatting only.
|
|
78
|
-
- Kuaishou `--user-id <user_id>`:
|
|
79
|
-
- Kuaishou `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
|
|
81
|
+
- Kuaishou `--user-id <user_id>`: use only when a non-empty creator user_id is already known.
|
|
82
|
+
- Kuaishou `--profile-url <profile_url_or_share_text>`: use only for a profile URL, short link, or profile share text that resolves directly to a non-empty user_id. For live/fw-user profile shares, call Kuaishou creator profile first and use the returned non-empty user_id.
|
|
80
83
|
- Weibo `--user-id <user_id>`: preferred when the creator user_id is already known.
|
|
81
84
|
- Weibo `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
|
|
82
85
|
- WeChat Channels / 视频号 `--user-id <finder_user_id>`: preferred when the creator user_id ending with `@finder` is already known.
|
|
83
86
|
- WeChat Channels / 视频号 `--url <wechat_video_url_or_share_text>`: use a video link or share text to resolve the author and list that creator's videos.
|
|
87
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill media-user-posts`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
84
88
|
|
|
85
89
|
Use either the ID option or the profile URL option for a single command, not both.
|
|
86
90
|
|
|
@@ -89,7 +93,7 @@ For recent creator research, prefer CLI `--since-days 30` or another user-specif
|
|
|
89
93
|
|
|
90
94
|
## Safety Boundary
|
|
91
95
|
|
|
92
|
-
This skill is read-only. It
|
|
96
|
+
This skill is read-only. 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.
|
|
93
97
|
|
|
94
98
|
## MCP Tools
|
|
95
99
|
|
|
@@ -117,8 +121,8 @@ If MCP tools are already available in the current agent, use one of these tools:
|
|
|
117
121
|
- `douyin_get_user_series_by_profile_url`: use for creator short-drama series from profile URLs, short links, or profile share text.
|
|
118
122
|
|
|
119
123
|
Creator content-list and series pagination use opaque `page_token` values. Pass the complete returned `next_page_token` back unchanged for the same user and command family. Do not modify, truncate, redact, mask, omit, normalize, rebuild, generate, or replace the middle with ellipses. Prefer CLI `--pages`, `--all`, and `--max-items` when the user asks for multiple pages or all available creator content.
|
|
120
|
-
- `kuaishou_get_user_posted_videos_by_user_id`: preferred when `user_id` is already known.
|
|
121
|
-
- `kuaishou_get_user_posted_videos_by_profile_url`: use for profile URLs, short links, or profile share text
|
|
124
|
+
- `kuaishou_get_user_posted_videos_by_user_id`: preferred when a non-empty `user_id` is already known.
|
|
125
|
+
- `kuaishou_get_user_posted_videos_by_profile_url`: use only for profile URLs, short links, or profile share text that resolves directly to a non-empty `user_id`; for live/fw-user profile shares, call Kuaishou creator profile first and use the returned non-empty `user_id`.
|
|
122
126
|
Kuaishou creator work pagination uses opaque `page_token` values; pass the complete returned `next_page_token` back unchanged for the same user. Do not modify, truncate, redact, mask, omit, normalize, rebuild, generate, or replace the middle with ellipses.
|
|
123
127
|
- `weibo_get_user_posts_by_user_id`: preferred when `user_id` is already known.
|
|
124
128
|
- `weibo_get_user_posts_by_profile_url`: use for profile URLs, short links, or profile share text.
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "sensitive-check"
|
|
3
3
|
description: "Check draft text for sensitive-content risks before publishing. Supports generic, xhs, douyin, and kuaishou contexts through SocialDataX."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "sensitive-check"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -37,7 +40,7 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
37
40
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
38
41
|
|
|
39
42
|
```bash
|
|
40
|
-
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
43
|
+
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty --source-client socialdatax-skills --source-platform npm --source-skill sensitive-check
|
|
41
44
|
```
|
|
42
45
|
|
|
43
46
|
Required arguments:
|
|
@@ -48,14 +51,15 @@ Optional arguments:
|
|
|
48
51
|
|
|
49
52
|
- `--platform <generic|xhs|douyin|kuaishou>`: platform context; default is `generic`.
|
|
50
53
|
- `--pretty`: output formatting only.
|
|
54
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill sensitive-check`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
适用于文本敏感检测、content safety review、发布前风险检查和 safer rewrite suggestions for draft text.
|
|
53
57
|
The command prints JSON with `platform`, `tool`, and `data`; it does not echo the original text back in CLI arguments. The service returns `violation`, `risk_level`, `types`, `highlights`, `summary`, `platform`, and `suggestions` when available.
|
|
54
58
|
This v1 skill checks text only. Image sensitive detection is intentionally out of scope until a separate image tool is published.
|
|
55
59
|
|
|
56
60
|
## Safety Boundary
|
|
57
61
|
|
|
58
|
-
This skill is read-only. It
|
|
62
|
+
This skill is read-only. 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.
|
|
59
63
|
|
|
60
64
|
## MCP Tools
|
|
61
65
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "socialdatax-content-research-assistant"
|
|
3
3
|
description: "Use when doing cross-platform content research, topic planning, competitor research, trend insight, comment insight, or creator research across 小红书 / Xiaohongshu / XHS / RedNote, 抖音 / Douyin, 快手 / Kuaishou / Kwai, 微博 / Weibo, and 视频号 / WeChat Channels."
|
|
4
|
+
source_client: "socialdatax-skills"
|
|
5
|
+
source_platform: "npm"
|
|
6
|
+
source_skill: "socialdatax-content-research-assistant"
|
|
4
7
|
metadata:
|
|
5
8
|
openclaw:
|
|
6
9
|
requires:
|
|
@@ -67,87 +70,86 @@ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website fo
|
|
|
67
70
|
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
68
71
|
|
|
69
72
|
```bash
|
|
70
|
-
npx -y socialdatax-skills@latest xhs hot-search --pretty
|
|
71
|
-
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty
|
|
72
|
-
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pages 3 --pretty
|
|
73
|
-
npx -y socialdatax-skills@latest xhs detail --note-id "<note_id>" --pretty
|
|
74
|
-
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty
|
|
75
|
-
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --all --include-replies --pretty
|
|
76
|
-
npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty
|
|
77
|
-
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
|
|
78
|
-
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --all --pretty
|
|
79
|
-
npx -y socialdatax-skills@latest douyin hot-search --pretty
|
|
80
|
-
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty
|
|
81
|
-
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pages 3 --pretty
|
|
82
|
-
npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty
|
|
83
|
-
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty
|
|
84
|
-
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --all --include-replies --pretty
|
|
85
|
-
npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty
|
|
86
|
-
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty
|
|
87
|
-
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --all --pretty
|
|
88
|
-
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pretty
|
|
89
|
-
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pages 3 --pretty
|
|
90
|
-
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pretty
|
|
91
|
-
npx -y socialdatax-skills@latest kuaishou detail --photo-id "<photo_id>" --pretty
|
|
92
|
-
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --pretty
|
|
93
|
-
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --all --include-replies --pretty
|
|
94
|
-
npx -y socialdatax-skills@latest kuaishou user-info --user-id "<user_id>" --pretty
|
|
95
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --pretty
|
|
96
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --all --pretty
|
|
97
|
-
npx -y socialdatax-skills@latest weibo hot-search --pretty
|
|
98
|
-
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pretty
|
|
99
|
-
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pages 3 --pretty
|
|
100
|
-
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty
|
|
101
|
-
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty
|
|
102
|
-
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty
|
|
103
|
-
npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty
|
|
104
|
-
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty
|
|
105
|
-
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --all --pretty
|
|
106
|
-
npx -y socialdatax-skills@latest wechat hot-search --pretty
|
|
107
|
-
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pretty
|
|
108
|
-
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pages 3 --pretty
|
|
109
|
-
npx -y socialdatax-skills@latest wechat detail --encrypted-object-id "<encrypted_object_id>" --pretty
|
|
110
|
-
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --pretty
|
|
111
|
-
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --all --include-replies --pretty
|
|
112
|
-
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty
|
|
113
|
-
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty
|
|
114
|
-
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --all --pretty
|
|
73
|
+
npx -y socialdatax-skills@latest xhs hot-search --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
74
|
+
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
75
|
+
npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
76
|
+
npx -y socialdatax-skills@latest xhs detail --note-id "<note_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
77
|
+
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
78
|
+
npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
79
|
+
npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
80
|
+
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
81
|
+
npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
82
|
+
npx -y socialdatax-skills@latest douyin hot-search --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
83
|
+
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
84
|
+
npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
85
|
+
npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
86
|
+
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
87
|
+
npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
88
|
+
npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
89
|
+
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
90
|
+
npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
91
|
+
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
92
|
+
npx -y socialdatax-skills@latest kuaishou search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
93
|
+
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
94
|
+
npx -y socialdatax-skills@latest kuaishou detail --photo-id "<photo_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
95
|
+
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
96
|
+
npx -y socialdatax-skills@latest kuaishou comments --photo-id "<photo_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
97
|
+
npx -y socialdatax-skills@latest kuaishou user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
98
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
99
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
100
|
+
npx -y socialdatax-skills@latest weibo hot-search --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
101
|
+
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
102
|
+
npx -y socialdatax-skills@latest weibo search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
103
|
+
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
104
|
+
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
105
|
+
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
106
|
+
npx -y socialdatax-skills@latest weibo user-info --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
107
|
+
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
108
|
+
npx -y socialdatax-skills@latest weibo user-posts --user-id "<user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
109
|
+
npx -y socialdatax-skills@latest wechat hot-search --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
110
|
+
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
111
|
+
npx -y socialdatax-skills@latest wechat search --keyword "<keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
112
|
+
npx -y socialdatax-skills@latest wechat detail --encrypted-object-id "<encrypted_object_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
113
|
+
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
114
|
+
npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --all --include-replies --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
115
|
+
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
116
|
+
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
117
|
+
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
115
118
|
```
|
|
116
119
|
|
|
117
120
|
Additional direct CLI entrypoints:
|
|
121
|
+
|
|
118
122
|
```bash
|
|
119
|
-
npx -y socialdatax-skills@latest xhs detail --url "<note_url_or_share_text>" --pretty
|
|
120
|
-
npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" --pretty
|
|
121
|
-
npx -y socialdatax-skills@latest xhs user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
122
|
-
npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
123
|
-
npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty
|
|
124
|
-
npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty
|
|
125
|
-
npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
126
|
-
npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
127
|
-
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
|
|
128
|
-
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --all --pretty
|
|
129
|
-
npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty
|
|
130
|
-
npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty
|
|
131
|
-
npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty
|
|
132
|
-
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pages 3 --pretty
|
|
133
|
-
npx -y socialdatax-skills@latest kuaishou detail --url "<kuaishou_content_url_or_share_text>" --pretty
|
|
134
|
-
npx -y socialdatax-skills@latest kuaishou comments --url "<kuaishou_content_url_or_share_text>" --pretty
|
|
135
|
-
npx -y socialdatax-skills@latest kuaishou user-info --profile-url "<profile_url_or_share_text>" --pretty
|
|
136
|
-
npx -y socialdatax-skills@latest kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty
|
|
137
|
-
npx -y socialdatax-skills@latest kuaishou replies --photo-id "<photo_id>" --comment-id "<comment_id>" --pretty
|
|
138
|
-
npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
139
|
-
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
140
|
-
npx -y socialdatax-skills@latest weibo likers --post-id "<post_id>" --pretty
|
|
141
|
-
npx -y socialdatax-skills@latest weibo
|
|
142
|
-
npx -y socialdatax-skills@latest weibo
|
|
143
|
-
npx -y socialdatax-skills@latest weibo
|
|
144
|
-
npx -y socialdatax-skills@latest weibo
|
|
145
|
-
npx -y socialdatax-skills@latest
|
|
146
|
-
npx -y socialdatax-skills@latest
|
|
147
|
-
npx -y socialdatax-skills@latest wechat
|
|
148
|
-
npx -y socialdatax-skills@latest wechat
|
|
149
|
-
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty
|
|
150
|
-
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty
|
|
123
|
+
npx -y socialdatax-skills@latest xhs detail --url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
124
|
+
npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
125
|
+
npx -y socialdatax-skills@latest xhs user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
126
|
+
npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
127
|
+
npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
128
|
+
npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
129
|
+
npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
130
|
+
npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
131
|
+
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
132
|
+
npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --all --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
133
|
+
npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
134
|
+
npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
135
|
+
npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
136
|
+
npx -y socialdatax-skills@latest kuaishou user-search --keyword "<creator_keyword>" --pages 3 --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
137
|
+
npx -y socialdatax-skills@latest kuaishou detail --url "<kuaishou_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
138
|
+
npx -y socialdatax-skills@latest kuaishou comments --url "<kuaishou_content_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
139
|
+
npx -y socialdatax-skills@latest kuaishou user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
140
|
+
npx -y socialdatax-skills@latest kuaishou user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
141
|
+
npx -y socialdatax-skills@latest kuaishou replies --photo-id "<photo_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
142
|
+
npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
143
|
+
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
144
|
+
npx -y socialdatax-skills@latest weibo likers --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
145
|
+
npx -y socialdatax-skills@latest weibo reposts --post-id "<post_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
146
|
+
npx -y socialdatax-skills@latest weibo user-info --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
147
|
+
npx -y socialdatax-skills@latest weibo user-posts --profile-url "<profile_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
148
|
+
npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
149
|
+
npx -y socialdatax-skills@latest wechat detail --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
150
|
+
npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
151
|
+
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
152
|
+
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
151
153
|
```
|
|
152
154
|
|
|
153
155
|
For hot topics, content URLs, profile URLs, comment review, Weibo liker/repost review, creator facts, creator content lists, or short-drama series, call the matching `socialdatax-skills` platform subcommand instead of forcing every request through keyword research.
|
|
@@ -159,6 +161,8 @@ Required arguments:
|
|
|
159
161
|
- Use `xhs search --keyword <text>`, `douyin search --keyword <text>`, `kuaishou search --keyword <text>`, `weibo search --keyword <text>`, or `wechat search --keyword <text>` for keyword research.
|
|
160
162
|
- Use `kuaishou user-search --keyword <creator_keyword>` when the user wants to discover Kuaishou creator or account candidates by name, keyword, or niche before profile lookup.
|
|
161
163
|
- For detail, comments, replies, creator profile, creator posts, and creator series commands, use the ID argument shown in the CLI example or the matching URL/profile-url entrypoint, not both.
|
|
164
|
+
- Use `kuaishou search --keyword <text>` for Kuaishou keyword research.
|
|
165
|
+
- Use `weibo hot-search` without keyword when the user asks for current Weibo / 微博 hot topics.
|
|
162
166
|
- Use `wechat hot-search` without keyword when the user asks for current WeChat Channels / 视频号 hot topics.
|
|
163
167
|
|
|
164
168
|
Optional arguments:
|
|
@@ -174,6 +178,7 @@ Optional arguments:
|
|
|
174
178
|
- `--sort-type`, `--note-type`, `--publish-time-range`, `--duration-range`, and `--content-type`: apply only to XHS, Douyin, or WeChat Channels keyword research commands when the user asks for filtering; Kuaishou and Weibo search currently use `--keyword` and optional `--page-token`.
|
|
175
179
|
- `--comment-id`: required for reply/sub-comment commands together with the content ID.
|
|
176
180
|
- `--pretty`: output formatting only.
|
|
181
|
+
- `--source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
177
182
|
|
|
178
183
|
## Choose The Platform
|
|
179
184
|
|
|
@@ -191,7 +196,7 @@ When the user asks for recent content, pass CLI `--since-days <n>` with bounded
|
|
|
191
196
|
|
|
192
197
|
## Safety Boundary
|
|
193
198
|
|
|
194
|
-
This skill is read-only. It
|
|
199
|
+
This skill is read-only. 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.
|
|
195
200
|
|
|
196
201
|
## MCP Tools
|
|
197
202
|
|
|
@@ -200,7 +205,7 @@ MCP tools matching the direct CLI commands above:
|
|
|
200
205
|
- XHS: `xhs_get_search_hot_list`, `xhs_search_notes`, `xhs_get_note_detail_by_note_id`, `xhs_get_note_comments_by_note_id`, `xhs_get_user_info_by_user_id`, `xhs_get_user_posted_notes_by_user_id`, `xhs_get_note_detail_by_note_url`, `xhs_get_note_comments_by_note_url`, `xhs_get_user_info_by_profile_url`, `xhs_get_user_posted_notes_by_profile_url`, `xhs_get_note_sub_comments_by_comment_id`
|
|
201
206
|
- DOUYIN: `douyin_get_hot_search_list`, `douyin_search_videos`, `douyin_get_video_detail_by_aweme_id`, `douyin_get_video_comments_by_aweme_id`, `douyin_get_user_info_by_sec_user_id`, `douyin_get_user_posted_videos_by_sec_user_id`, `douyin_get_video_detail_by_url`, `douyin_get_video_comments_by_url`, `douyin_get_user_info_by_profile_url`, `douyin_get_user_posted_videos_by_profile_url`, `douyin_get_user_series_by_sec_user_id`, `douyin_get_user_series_by_profile_url`, `douyin_get_video_comment_replies_by_comment_id`
|
|
202
207
|
- KUAISHOU: `kuaishou_search_videos`, `kuaishou_search_users`, `kuaishou_get_video_detail_by_photo_id`, `kuaishou_get_video_comments_by_photo_id`, `kuaishou_get_user_info_by_user_id`, `kuaishou_get_user_posted_videos_by_user_id`, `kuaishou_get_video_detail_by_url`, `kuaishou_get_video_comments_by_url`, `kuaishou_get_user_info_by_profile_url`, `kuaishou_get_user_posted_videos_by_profile_url`, `kuaishou_get_video_comment_replies_by_comment_id`
|
|
203
|
-
- WEIBO: `weibo_get_hot_search_list`, `weibo_search_posts`, `weibo_get_post_detail_by_post_id`, `weibo_get_post_comments_by_post_id`, `weibo_get_user_info_by_user_id`, `weibo_get_user_posts_by_user_id`, `weibo_get_post_detail_by_post_url`, `weibo_get_post_comments_by_post_url`, `weibo_get_post_liker_list_by_post_id`, `
|
|
208
|
+
- WEIBO: `weibo_get_hot_search_list`, `weibo_search_posts`, `weibo_get_post_detail_by_post_id`, `weibo_get_post_comments_by_post_id`, `weibo_get_user_info_by_user_id`, `weibo_get_user_posts_by_user_id`, `weibo_get_post_detail_by_post_url`, `weibo_get_post_comments_by_post_url`, `weibo_get_post_liker_list_by_post_id`, `weibo_get_post_repost_list_by_post_id`, `weibo_get_user_info_by_profile_url`, `weibo_get_user_posts_by_profile_url`, `weibo_get_post_comment_replies_by_comment_id`
|
|
204
209
|
- WECHAT: `wechat_get_hot_search_list`, `wechat_search_videos`, `wechat_get_video_detail_by_encrypted_object_id`, `wechat_get_video_comments_by_object_id`, `wechat_get_user_info_by_user_id`, `wechat_get_user_posted_videos_by_user_id`, `wechat_get_video_detail_by_url`, `wechat_get_video_comments_by_url`, `wechat_get_user_posted_videos_by_url`, `wechat_get_video_comment_replies_by_comment_id`
|
|
205
210
|
|
|
206
211
|
Use the automatically listed MCP tools above as the source of truth for tool names. Pick the narrowest tool for the user's platform and task.
|