socialdatax-skills 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SocialDataX Skills | 社媒数据助手 Skills
2
2
 
3
- This public repository provides the unified skill installer and direct CLI helper for SocialDataX services.
3
+ This public package provides the unified skill installer and direct CLI helper for SocialDataX services.
4
4
 
5
5
  The current public tools support 小红书 / Xiaohongshu / XHS / RedNote and 抖音 / Douyin read-only research workflows. The public skill layer is intentionally named by media capability so supported platforms can evolve without changing the installation model.
6
6
 
@@ -27,6 +27,8 @@ Common search phrases for this skill package:
27
27
  - `RedNote skills`
28
28
  - `Douyin skills`
29
29
  - `抖音 skills`
30
+ - `SocialDataX content research`
31
+ - `content research assistant`
30
32
 
31
33
  ## Platform MCPs
32
34
 
@@ -40,7 +42,7 @@ Common search phrases for this skill package:
40
42
  - Douyin current platform MCP registry name: `com.52choujiang/douyin-insights`
41
43
  - Douyin future platform MCP registry name: `com.socialdatax/douyin-insights`
42
44
  - Unified MCP registry name: none; this package installs skills and calls explicit platform services.
43
- - Current public capability version: `0.2.1`
45
+ - Current public capability version: `0.2.3`
44
46
 
45
47
  ## Direct CLI
46
48
 
@@ -55,13 +57,17 @@ npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty
55
57
  npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty
56
58
  npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty
57
59
  npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
60
+ npx -y socialdatax-skills@latest douyin hot-search --pretty
58
61
  npx -y socialdatax-skills@latest douyin search --keyword "露营桌" --pretty
59
62
  npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty
60
63
  npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty
64
+ npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty
61
65
  npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty
62
66
  npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty
63
67
  npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty
64
68
  npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
69
+ npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
70
+ npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty
65
71
  ```
66
72
 
67
73
  The direct CLI prints a JSON envelope with `platform`, `tool`, `arguments`, and `data`.
@@ -82,12 +88,6 @@ supports `all`, `video`, and `image`.
82
88
 
83
89
  - `SOCIALDATAX_API_KEY`
84
90
  Required for direct CLI data calls and hosted MCP calls. Local inspection commands such as `list`, `doctor`, and `install --dry-run` do not require a key.
85
- - `SOCIAL_MEDIA_MCP_UPSTREAM_URL`
86
- Optional generic override for the selected platform MCP endpoint.
87
- - `SOCIAL_MEDIA_XHS_MCP_UPSTREAM_URL`
88
- Optional XHS-specific endpoint override. Default: `https://mcp.52choujiang.com/xhs/mcp`
89
- - `SOCIAL_MEDIA_DOUYIN_MCP_UPSTREAM_URL`
90
- Optional Douyin-specific endpoint override. Default: `https://mcp.52choujiang.com/douyin/mcp`
91
91
 
92
92
  ## Security & Privacy
93
93
 
@@ -135,6 +135,7 @@ npx -y socialdatax-skills@latest list
135
135
  npx -y socialdatax-skills@latest doctor
136
136
  npx -y socialdatax-skills@latest install --target openclaw
137
137
  npx -y socialdatax-skills@latest install --target openclaw --dry-run
138
+ npx -y socialdatax-skills@latest install socialdatax-content-research-assistant --target openclaw
138
139
  npx -y socialdatax-skills@latest install media-search --target openclaw
139
140
  npx -y socialdatax-skills@latest install media-search --target openclaw --dry-run
140
141
  npx -y socialdatax-skills@latest install media-user-info --target openclaw
@@ -148,16 +149,19 @@ npx -y socialdatax-skills@latest install media-search --target codex --scope wor
148
149
  npx -y socialdatax-skills@latest install media-search --target claude-code
149
150
  npx -y socialdatax-skills@latest install media-search --target claude-code --scope workspace
150
151
  npx -y socialdatax-skills@latest xhs search --keyword "露营桌" --pretty
152
+ npx -y socialdatax-skills@latest douyin hot-search --pretty
151
153
  npx -y socialdatax-skills@latest douyin search --keyword "露营桌" --pretty
154
+ npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
152
155
  ```
153
156
 
154
157
  Available skills:
155
158
 
159
+ - `socialdatax-content-research-assistant`: combine SocialDataX search, detail, comment, creator profile, and creator content workflows for cross-platform content research across XHS and Douyin.
156
160
  - `media-search`: search social media content by keyword; supports XHS notes and Douyin works.
157
161
  - `media-detail`: read structured content details and metrics; supports XHS notes and Douyin works.
158
- - `media-comments`: fetch and analyze XHS comments/replies and Douyin first-level comments.
162
+ - `media-comments`: fetch and analyze XHS comments/replies and Douyin comments/replies.
159
163
  - `media-user-info`: retrieve creator profile information; supports XHS and Douyin creators.
160
- - `media-user-posts`: retrieve creator content lists; supports XHS notes and Douyin works.
164
+ - `media-user-posts`: retrieve creator content lists; supports XHS notes, Douyin works, and Douyin creator short-drama series.
161
165
 
162
166
  Default install locations:
163
167
 
@@ -189,11 +193,15 @@ Current XHS workflows include:
189
193
 
190
194
  Current Douyin workflows include:
191
195
 
196
+ - Fetch the current Douyin main hot search list.
192
197
  - Search related Douyin works by keyword.
193
198
  - Resolve a Douyin content page link, short link, share text, or aweme_id into structured work details.
194
199
  - Fetch paginated first-level comments for comment analysis.
200
+ - Fetch paginated replies under a first-level comment.
201
+ - Continue Douyin comment and reply pagination only when `next_page_token` is non-empty; an empty string means there are no more comments or replies to request.
195
202
  - Read creator profile data from a profile link, short link, share text, or sec_user_id.
196
203
  - Fetch paginated creator work lists from a sec_user_id, profile link, short link, or share text.
204
+ - Fetch paginated creator short-drama series lists from a sec_user_id, profile link, short link, or share text.
197
205
 
198
206
  ## XHS Tools
199
207
 
@@ -214,15 +222,19 @@ Current Douyin workflows include:
214
222
 
215
223
  | Tool | Public purpose |
216
224
  | --- | --- |
225
+ | `douyin_get_hot_search_list` | Fetch the current Douyin main hot search list. |
217
226
  | `douyin_search_videos` | Search Douyin works by keyword with optional paging and filters. |
218
227
  | `douyin_get_video_detail_by_aweme_id` | Fetch structured Douyin work details when the caller already has an aweme_id. |
219
228
  | `douyin_get_video_detail_by_url` | Resolve a Douyin content page link, short link, or share text into structured Douyin work details. |
220
229
  | `douyin_get_video_comments_by_aweme_id` | Fetch paginated first-level comments when the caller already has an aweme_id. |
221
230
  | `douyin_get_video_comments_by_url` | Fetch paginated first-level comments directly from a Douyin content page URL, short link, or share text. |
231
+ | `douyin_get_video_comment_replies_by_comment_id` | Fetch paginated replies under a first-level Douyin comment by aweme_id and comment_id. |
222
232
  | `douyin_get_user_info_by_sec_user_id` | Fetch creator profile data when the caller already has a sec_user_id. |
223
233
  | `douyin_get_user_info_by_profile_url` | Resolve a profile link, short link, or share text into creator profile data. |
224
234
  | `douyin_get_user_posted_videos_by_sec_user_id` | Fetch a paginated list of works published by a creator when the caller already has a sec_user_id. |
225
235
  | `douyin_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. |
236
+ | `douyin_get_user_series_by_sec_user_id` | Fetch a paginated list of short-drama series by a creator when the caller already has a sec_user_id. |
237
+ | `douyin_get_user_series_by_profile_url` | Fetch a paginated list of short-drama series by a creator from a profile link, short link, or share text. |
226
238
 
227
239
  ## Quick Start
228
240
 
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.1";
10
+ const PACKAGE_VERSION = "0.2.3";
11
11
  const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
12
12
  const LOG_PREFIX = `[${PACKAGE_NAME}]`;
13
13
  const MIN_NODE_VERSION = "20.18.1";
@@ -16,6 +16,12 @@ 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
18
  const AVAILABLE_SKILLS = [
19
+ {
20
+ name: "socialdatax-content-research-assistant",
21
+ summary:
22
+ "Coordinate cross-platform content research across XHS and Douyin.",
23
+ emoji: "🔎",
24
+ },
19
25
  {
20
26
  name: "media-search",
21
27
  summary: "Search XHS notes and Douyin works by keyword with optional filters.",
@@ -28,7 +34,7 @@ const AVAILABLE_SKILLS = [
28
34
  },
29
35
  {
30
36
  name: "media-comments",
31
- summary: "Fetch and analyze XHS comments/replies and Douyin first-level comments.",
37
+ summary: "Fetch and analyze XHS comments/replies and Douyin comments/replies.",
32
38
  emoji: "💬",
33
39
  },
34
40
  {
@@ -38,7 +44,8 @@ const AVAILABLE_SKILLS = [
38
44
  },
39
45
  {
40
46
  name: "media-user-posts",
41
- summary: "Retrieve creator content lists for XHS and Douyin.",
47
+ summary:
48
+ "Retrieve creator content lists for XHS and Douyin, including Douyin creator short-drama series.",
42
49
  emoji: "🗂️",
43
50
  },
44
51
  ];
@@ -80,6 +87,7 @@ const XHS_LEGACY_SEARCH_SORT_TYPE_ALIASES = {
80
87
  collect_descending: "collect_count_descending",
81
88
  };
82
89
  const DOUYIN_DIRECT_ACTION_OPTIONS = {
90
+ "hot-search": ["pretty"],
83
91
  search: [
84
92
  "keyword",
85
93
  "pageToken",
@@ -91,9 +99,12 @@ const DOUYIN_DIRECT_ACTION_OPTIONS = {
91
99
  ],
92
100
  detail: ["awemeId", "url", "pretty"],
93
101
  comments: ["awemeId", "url", "pageToken", "pretty"],
102
+ replies: ["awemeId", "commentId", "pageToken", "pretty"],
94
103
  "user-info": ["secUserId", "profileUrl", "pretty"],
95
104
  "user-posts": ["secUserId", "profileUrl", "pageToken", "pretty"],
105
+ "user-series": ["secUserId", "profileUrl", "pageToken", "pretty"],
96
106
  };
107
+ const DOUYIN_DIRECT_ACTION_NAMES = Object.keys(DOUYIN_DIRECT_ACTION_OPTIONS).join(", ");
97
108
  const DOUYIN_SEARCH_SORT_TYPES = ["general", "time_descending", "like_count_descending"];
98
109
  const DOUYIN_SEARCH_PUBLISH_TIME_RANGES = ["all", "day", "week", "half_year"];
99
110
  const DOUYIN_SEARCH_DURATION_RANGES = [
@@ -193,6 +204,10 @@ const PLATFORMS = {
193
204
  "DOUYIN_MCP_UPSTREAM_URL",
194
205
  ],
195
206
  tools: [
207
+ {
208
+ name: "douyin_get_hot_search_list",
209
+ description: "Fetch the current Douyin main hot search list.",
210
+ },
196
211
  {
197
212
  name: "douyin_get_video_detail_by_aweme_id",
198
213
  description: "Fetch structured Douyin work details by aweme_id.",
@@ -209,6 +224,10 @@ const PLATFORMS = {
209
224
  name: "douyin_get_video_comments_by_url",
210
225
  description: "Fetch paginated first-level comments from a Douyin content page link, short link, or share text.",
211
226
  },
227
+ {
228
+ name: "douyin_get_video_comment_replies_by_comment_id",
229
+ description: "Fetch paginated replies under a first-level Douyin comment by aweme_id and comment_id.",
230
+ },
212
231
  {
213
232
  name: "douyin_get_user_info_by_sec_user_id",
214
233
  description: "Fetch creator profile data by sec_user_id.",
@@ -225,6 +244,14 @@ const PLATFORMS = {
225
244
  name: "douyin_get_user_posted_videos_by_profile_url",
226
245
  description: "Fetch creator works from a profile link, short link, or share text.",
227
246
  },
247
+ {
248
+ name: "douyin_get_user_series_by_sec_user_id",
249
+ description: "Fetch a paginated list of short-drama series published by a creator.",
250
+ },
251
+ {
252
+ name: "douyin_get_user_series_by_profile_url",
253
+ description: "Fetch creator short-drama series from a profile link, short link, or share text.",
254
+ },
228
255
  {
229
256
  name: "douyin_search_videos",
230
257
  description: "Search Douyin works by keyword with optional paging and filters.",
@@ -870,6 +897,9 @@ function printHelp() {
870
897
  console.log(` npx -y ${PACKAGE_SPEC} xhs user-posts --user-id "<user_id>" --pretty`);
871
898
  console.log(" Call the XHS creator posts tool directly and print JSON.");
872
899
  console.log("");
900
+ console.log(` npx -y ${PACKAGE_SPEC} douyin hot-search --pretty`);
901
+ console.log(" Call the Douyin main hot search list tool directly and print JSON.");
902
+ console.log("");
873
903
  console.log(` npx -y ${PACKAGE_SPEC} douyin search --keyword "露营桌" --pretty`);
874
904
  console.log(" Call the Douyin work search tool directly and print JSON.");
875
905
  console.log("");
@@ -879,6 +909,11 @@ function printHelp() {
879
909
  console.log(` npx -y ${PACKAGE_SPEC} douyin comments --aweme-id "<aweme_id>" --pretty`);
880
910
  console.log(" Call the Douyin work comments tool directly and print JSON.");
881
911
  console.log("");
912
+ console.log(
913
+ ` npx -y ${PACKAGE_SPEC} douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty`
914
+ );
915
+ console.log(" Call the Douyin comment replies tool directly and print JSON.");
916
+ console.log("");
882
917
  console.log(` npx -y ${PACKAGE_SPEC} douyin user-info --sec-user-id "<sec_user_id>" --pretty`);
883
918
  console.log(" Call the Douyin creator profile tool directly and print JSON.");
884
919
  console.log("");
@@ -891,6 +926,12 @@ function printHelp() {
891
926
  console.log(` npx -y ${PACKAGE_SPEC} douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty`);
892
927
  console.log(" Call the Douyin creator works tool from a profile link or share text.");
893
928
  console.log("");
929
+ console.log(` npx -y ${PACKAGE_SPEC} douyin user-series --sec-user-id "<sec_user_id>" --pretty`);
930
+ console.log(" Call the Douyin creator short-drama series tool directly and print JSON.");
931
+ console.log("");
932
+ console.log(` npx -y ${PACKAGE_SPEC} douyin user-series --profile-url "<profile_url_or_share_text>" --pretty`);
933
+ console.log(" Call the Douyin creator short-drama series tool from a profile link or share text.");
934
+ console.log("");
894
935
  console.log(` npx -y ${PACKAGE_SPEC} list`);
895
936
  console.log(" List available skills.");
896
937
  console.log("");
@@ -1039,7 +1080,7 @@ async function runDouyinDirectCommand(args) {
1039
1080
  const action = positional[0];
1040
1081
  if (!action) {
1041
1082
  throw new Error(
1042
- `Missing Douyin command. Use search, detail, comments, user-info, or user-posts.`
1083
+ `Missing Douyin command. Use ${DOUYIN_DIRECT_ACTION_NAMES}.`
1043
1084
  );
1044
1085
  }
1045
1086
  if (positional.length > 1) {
@@ -1135,6 +1176,15 @@ function buildXhsOperation(action, options) {
1135
1176
 
1136
1177
  function buildDouyinOperation(action, options) {
1137
1178
  switch (action) {
1179
+ case "hot-search":
1180
+ return buildDirectOperation(
1181
+ "hot-search",
1182
+ {
1183
+ tool: "douyin_get_hot_search_list",
1184
+ toolArguments: {},
1185
+ },
1186
+ PLATFORMS.douyin
1187
+ );
1138
1188
  case "search":
1139
1189
  return buildDirectOperation(
1140
1190
  "search",
@@ -1172,6 +1222,12 @@ function buildDouyinOperation(action, options) {
1172
1222
  }),
1173
1223
  PLATFORMS.douyin
1174
1224
  );
1225
+ case "replies":
1226
+ return buildDirectOperation(
1227
+ "replies",
1228
+ buildDouyinRepliesCall(options),
1229
+ PLATFORMS.douyin
1230
+ );
1175
1231
  case "user-info":
1176
1232
  return buildDirectOperation(
1177
1233
  "user-info",
@@ -1203,9 +1259,25 @@ function buildDouyinOperation(action, options) {
1203
1259
  }),
1204
1260
  PLATFORMS.douyin
1205
1261
  );
1262
+ case "user-series":
1263
+ return buildDirectOperation(
1264
+ "user-series",
1265
+ buildOneOfCall(options, {
1266
+ idOption: "secUserId",
1267
+ urlOption: "profileUrl",
1268
+ idTool: "douyin_get_user_series_by_sec_user_id",
1269
+ urlTool: "douyin_get_user_series_by_profile_url",
1270
+ idArgument: "sec_user_id",
1271
+ urlArgument: "profile_url",
1272
+ idDisplay: "--sec-user-id",
1273
+ urlDisplay: "--profile-url",
1274
+ pageToken: options.pageToken,
1275
+ }),
1276
+ PLATFORMS.douyin
1277
+ );
1206
1278
  default:
1207
1279
  throw new Error(
1208
- `Unsupported Douyin command "${action}". Use search, detail, comments, user-info, or user-posts.`
1280
+ `Unsupported Douyin command "${action}". Use ${DOUYIN_DIRECT_ACTION_NAMES}.`
1209
1281
  );
1210
1282
  }
1211
1283
  }
@@ -1347,6 +1419,26 @@ function buildDouyinSearchCall(options) {
1347
1419
  };
1348
1420
  }
1349
1421
 
1422
+ function buildDouyinRepliesCall(options) {
1423
+ if (!options.awemeId) {
1424
+ throw new Error("Missing --aweme-id for douyin replies.");
1425
+ }
1426
+ if (!options.commentId) {
1427
+ throw new Error("Missing --comment-id for douyin replies.");
1428
+ }
1429
+ const toolArguments = {
1430
+ aweme_id: options.awemeId,
1431
+ comment_id: options.commentId,
1432
+ };
1433
+ if (options.pageToken) {
1434
+ toolArguments.page_token = options.pageToken;
1435
+ }
1436
+ return {
1437
+ tool: "douyin_get_video_comment_replies_by_comment_id",
1438
+ toolArguments,
1439
+ };
1440
+ }
1441
+
1350
1442
 
1351
1443
  function buildXhsSubCommentsCall(options) {
1352
1444
  if (!options.noteId) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socialdatax-skills",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "SocialDataX / 社媒数据助手 skill installer and direct CLI helper for hosted platform social media MCP services.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,6 +46,10 @@
46
46
  "bugs": {
47
47
  "url": "https://socialdatax.com"
48
48
  },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/DevinChen2014/socialdatax-skills.git"
52
+ },
49
53
  "engines": {
50
54
  "node": ">=20.18.1"
51
55
  },
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: media-comments
3
- description: Fetch and analyze XHS comments/replies and Douyin first-level comments. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, and Douyin / 抖音.
3
+ description: Fetch and analyze XHS comments/replies and Douyin comments/replies. This version is backed by hosted platform MCP services and supports Xiaohongshu, 小红书, XHS, RedNote, and Douyin / 抖音.
4
4
  metadata:
5
5
  openclaw:
6
6
  requires:
@@ -25,7 +25,12 @@ Use this skill when the user wants comment mining, audience feedback, sentiment
25
25
  Current platform support:
26
26
 
27
27
  - Xiaohongshu / XHS / RedNote notes through the `xhs_get_note_comments_by_*` and `xhs_get_note_sub_comments_by_comment_id` tools.
28
- - Douyin / 抖音 works, including video and image/text posts, through the `douyin_get_video_comments_by_*` tools.
28
+ - Douyin / 抖音 works, including video and image/text posts, through the `douyin_get_video_comments_by_*` and `douyin_get_video_comment_replies_by_comment_id` tools.
29
+
30
+ ## API Key
31
+
32
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
33
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
29
34
 
30
35
  ## Preferred Direct CLI
31
36
 
@@ -37,16 +42,17 @@ npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" -
37
42
  npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty
38
43
  npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty
39
44
  npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty
45
+ npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty
40
46
  ```
41
47
 
42
48
  - XHS `--note-id <note_id>`: preferred when the note ID is already known and should anchor the comment thread.
43
49
  - Douyin `--aweme-id <aweme_id>`: preferred when the video ID is already known and should anchor the comment thread.
44
50
  - `--url <url_or_share_text>`: use for a content page URL, short link, or share text for first-level comments; for Douyin, do not pass `video.play_url`.
45
- - `--comment-id <comment_id>`: required only for XHS reply commands; use the first-level comment ID under the same content item.
51
+ - `--comment-id <comment_id>`: required for XHS and Douyin reply commands; use the first-level comment ID under the same content item.
46
52
  - `--page-token <next_page_token>`: opaque pagination token; pass back exactly the token returned by the previous page and do not reuse it across content items or comments.
47
53
  - `--pretty`: output formatting only.
48
54
 
49
- For XHS `comments`, use either `--note-id` or `--url`, not both. For Douyin `comments`, use either `--aweme-id` or `--url`, not both. For XHS reply commands, use the content ID together with `--comment-id`.
55
+ For XHS `comments`, use either `--note-id` or `--url`, not both. For Douyin `comments`, use either `--aweme-id` or `--url`, not both. For reply commands, use the content ID together with `--comment-id`.
50
56
 
51
57
  The command prints JSON with `platform`, `tool`, `arguments`, and `data`.
52
58
 
@@ -63,8 +69,9 @@ If MCP tools are already available in the current agent, use one of these tools:
63
69
  - `xhs_get_note_sub_comments_by_comment_id`: use when the note ID and first-level comment ID are known.
64
70
  - `douyin_get_video_comments_by_aweme_id`: use when the aweme_id is known.
65
71
  - `douyin_get_video_comments_by_url`: use for Douyin content page URLs, short links, or share text; do not pass playback URLs such as `video.play_url`.
72
+ - `douyin_get_video_comment_replies_by_comment_id`: use when the aweme_id and first-level comment ID are known.
66
73
 
67
- Comment pagination uses `page_token`. Pass back exactly the returned `next_page_token`; tokens are bound to the current content item and should not be reused across objects. XHS reply pagination also uses `page_token` and is bound to the current comment.
74
+ Comment pagination uses `page_token`. Pass back exactly the returned `next_page_token`; tokens are bound to the current content item and should not be reused across objects. For Douyin comments and replies, continue only when `next_page_token` is non-empty; an empty string means there are no more comments or replies to request. XHS reply pagination also uses `page_token` and is bound to the current comment.
68
75
 
69
76
  ## Output Guidance
70
77
 
@@ -1,7 +1,7 @@
1
1
  interface:
2
2
  display_name: "Media Comments"
3
3
  short_description: "Fetch social comments"
4
- default_prompt: "Use $media-comments to fetch and analyze XHS comments/replies or Douyin first-level comments."
4
+ default_prompt: "Use $media-comments to fetch and analyze XHS comments/replies or Douyin comments/replies."
5
5
 
6
6
  policy:
7
7
  allow_implicit_invocation: true
@@ -27,6 +27,11 @@ Current platform support:
27
27
  - Xiaohongshu / XHS / RedNote notes through the `xhs_get_note_detail_by_*` tools.
28
28
  - Douyin / 抖音 works, including video and image/text posts, through the `douyin_get_video_detail_by_*` tools.
29
29
 
30
+ ## API Key
31
+
32
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
33
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
34
+
30
35
  ## Preferred Direct CLI
31
36
 
32
37
  Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
@@ -27,6 +27,11 @@ Current platform support:
27
27
  - Xiaohongshu / XHS / RedNote notes through `xhs_search_notes`.
28
28
  - Douyin / 抖音 works, including video and image/text posts, through `douyin_search_videos`.
29
29
 
30
+ ## API Key
31
+
32
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
33
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
34
+
30
35
  ## Preferred Direct CLI
31
36
 
32
37
  Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
@@ -27,6 +27,11 @@ Current platform support:
27
27
  - Xiaohongshu / XHS / RedNote creators through the `xhs_get_user_info_by_*` tools.
28
28
  - Douyin / 抖音 creators through the `douyin_get_user_info_by_*` tools.
29
29
 
30
+ ## API Key
31
+
32
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
33
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
34
+
30
35
  ## Preferred Direct CLI
31
36
 
32
37
  Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
@@ -26,6 +26,12 @@ Current platform support:
26
26
 
27
27
  - Xiaohongshu / XHS / RedNote creator notes through the `xhs_get_user_posted_notes_by_*` tools.
28
28
  - Douyin / 抖音 creator works, including video and image/text posts, through the `douyin_get_user_posted_videos_by_*` tools.
29
+ - Douyin / 抖音 creator short-drama series through the `douyin_get_user_series_by_*` tools.
30
+
31
+ ## API Key
32
+
33
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
34
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
29
35
 
30
36
  ## Preferred Direct CLI
31
37
 
@@ -36,12 +42,15 @@ npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
36
42
  npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty
37
43
  npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty
38
44
  npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
45
+ npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty
46
+ npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty
39
47
  ```
40
48
 
41
49
  - XHS `--user-id <user_id>`: preferred when the creator ID is already known.
42
50
  - XHS `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
43
51
  - Douyin `--sec-user-id <sec_user_id>`: preferred when the creator sec_user_id is already known.
44
52
  - Douyin `--profile-url <profile_url_or_share_text>`: use for a profile URL, short link, or profile share text.
53
+ - Douyin `user-series`: use for a creator's short-drama series list instead of regular published works.
45
54
  - `--page-token <next_page_token>`: opaque pagination token; pass back exactly the token returned by the previous page and do not reuse it across users.
46
55
  - `--pretty`: output formatting only.
47
56
 
@@ -61,9 +70,11 @@ If MCP tools are already available in the current agent, use one of these tools:
61
70
  - `xhs_get_user_posted_notes_by_profile_url`: use for profile URLs, short links, or profile share text.
62
71
  - `douyin_get_user_posted_videos_by_sec_user_id`: preferred when `sec_user_id` is already known.
63
72
  - `douyin_get_user_posted_videos_by_profile_url`: use for profile URLs, short links, or profile share text.
73
+ - `douyin_get_user_series_by_sec_user_id`: preferred for creator short-drama series when `sec_user_id` is already known.
74
+ - `douyin_get_user_series_by_profile_url`: use for creator short-drama series from profile URLs, short links, or profile share text.
64
75
 
65
- Creator content-list pagination uses `page_token`. Pass back exactly the returned `next_page_token`; tokens are bound to the current user and should not be reused across users.
76
+ Creator content-list and series pagination use `page_token`. Pass back exactly the returned `next_page_token`; tokens are bound to the current user and command family and should not be reused across users.
66
77
 
67
78
  ## Output Guidance
68
79
 
69
- Summarize content-list evidence by title or description, summary, publish time, interaction counts, media links, and content type when present. For Douyin image/text posts, use `image_urls` rather than assuming a video playback URL exists. Use returned content IDs to chain into detail or comment analysis when needed.
80
+ Summarize content-list evidence by title or description, summary, publish time, interaction counts, media links, and content type when present. For Douyin image/text posts, use `image_urls` rather than assuming a video playback URL exists. For short-drama series, report series IDs, titles, descriptions, covers, prices, and author facts when present. Use returned content IDs to chain into detail or comment analysis when needed.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: socialdatax-content-research-assistant
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, and 抖音.
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - SOCIALDATAX_API_KEY
9
+ bins:
10
+ - node
11
+ - npm
12
+ primaryEnv: SOCIALDATAX_API_KEY
13
+ emoji: "🔎"
14
+ homepage: https://socialdatax.com
15
+ install:
16
+ - kind: node
17
+ package: "socialdatax-skills"
18
+ bins: []
19
+ ---
20
+
21
+ # SocialDataX Content Research Assistant
22
+
23
+ Use this skill to combine SocialDataX read-only research commands for Xiaohongshu / 小红书 / XHS / RedNote and Douyin / 抖音.
24
+
25
+ ## API Key
26
+
27
+ Use `SOCIALDATAX_API_KEY` for SocialDataX requests. To get or manage an API Key, open <https://socialdatax.com> and follow the website API Key access flow.
28
+ 获取或管理 API Key:访问 <https://socialdatax.com>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`。
29
+
30
+ ## Research Workflow
31
+
32
+ 1. Start broad with keyword search or Douyin hot search.
33
+ 2. Pick representative content IDs or URLs from the results.
34
+ 3. Read details for factual context and metrics.
35
+ 4. Read comments when the task needs audience language, objections, FAQs, sentiment themes, or demand signals.
36
+ 5. Read creator profiles and creator content lists when the task needs account positioning, benchmarking, or content style analysis.
37
+ 6. Report observed evidence separately from interpretation, and mention when results cover only one page.
38
+
39
+ ## Direct CLI
40
+
41
+ Prefer direct CLI commands when the agent can run shell commands:
42
+
43
+ ```bash
44
+ npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty
45
+ npx -y socialdatax-skills@latest xhs detail --note-id "<note_id>" --pretty
46
+ npx -y socialdatax-skills@latest xhs comments --note-id "<note_id>" --pretty
47
+ npx -y socialdatax-skills@latest xhs user-info --user-id "<user_id>" --pretty
48
+ npx -y socialdatax-skills@latest xhs user-posts --user-id "<user_id>" --pretty
49
+ npx -y socialdatax-skills@latest douyin hot-search --pretty
50
+ npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty
51
+ npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty
52
+ npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty
53
+ npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty
54
+ npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty
55
+ ```
56
+
57
+ Use URL or share-text entrypoints when the user provides links instead of IDs:
58
+
59
+ ```bash
60
+ npx -y socialdatax-skills@latest xhs detail --url "<note_url_or_share_text>" --pretty
61
+ npx -y socialdatax-skills@latest xhs comments --url "<note_url_or_share_text>" --pretty
62
+ npx -y socialdatax-skills@latest xhs user-info --profile-url "<profile_url_or_share_text>" --pretty
63
+ npx -y socialdatax-skills@latest xhs user-posts --profile-url "<profile_url_or_share_text>" --pretty
64
+ npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty
65
+ npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty
66
+ npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty
67
+ npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty
68
+ ```
69
+
70
+ For reply analysis:
71
+
72
+ ```bash
73
+ npx -y socialdatax-skills@latest xhs sub-comments --note-id "<note_id>" --comment-id "<comment_id>" --pretty
74
+ npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty
75
+ ```
76
+
77
+ ## Safety Boundary
78
+
79
+ This skill is read-only. It does not read local browser data, does not save API keys, and does not perform login, posting, liking, commenting, or account changes. It wraps the public `socialdatax-skills` CLI and does not contain the hosted service implementation.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "SocialDataX Content Research"
3
+ short_description: "Research XHS and Douyin content"
4
+ default_prompt: "Use $socialdatax-content-research-assistant to research Xiaohongshu, XHS, RedNote, and Douyin content across search, details, comments, and creators."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true