aiconductor-cli 1.3.0 → 1.3.1
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/.codebuddy/skills/xhs-note-publish/SKILL.md +3 -11
- package/README.md +1 -2
- package/bin/aiconductor-cli.js +2 -3
- package/package.json +1 -1
- package/src/api.js +4 -5
- package/src/commands/xhs.js +0 -2
|
@@ -41,7 +41,6 @@ description: 小红书扫码发布 — 生成小红书图文/视频笔记的扫
|
|
|
41
41
|
| 正文 | 笔记正文,最多 1000 字符 | 否 |
|
|
42
42
|
| 封面图 | URL、本地文件、Base64 三选一(仅 video 类型) | 否 |
|
|
43
43
|
| 临时链接有效期 | 本地/Base64 素材上传后的有效期,1 或 7 天 | 否,默认 7 天 |
|
|
44
|
-
| 是否 OSS 转存 | 将素材转存云端更稳定,7 天有效 | 否,默认不转存 |
|
|
45
44
|
|
|
46
45
|
### 3. 执行发布
|
|
47
46
|
|
|
@@ -90,8 +89,6 @@ aiconductor-cli xhs note-publish video \
|
|
|
90
89
|
--cover-file "./cover.jpg"
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
> `--transfer-to-oss` 是一个布尔标志,加上即表示开启(无需传值)。开启后素材会转存到云端,链接 7 天内有效,费用从 0.05 元变为 0.1 元/次。
|
|
94
|
-
|
|
95
92
|
若用户需要人类可读输出:
|
|
96
93
|
|
|
97
94
|
```bash
|
|
@@ -112,7 +109,6 @@ JSON 格式输出示例:
|
|
|
112
109
|
"id": "3502cf75-...-b8620053c7bf",
|
|
113
110
|
"url": "https://oss.aiconductor.fun/temporary_7/xhs_note_publish/.../index.html",
|
|
114
111
|
"qrcode": "data:image/png;base64,iVBORw0KGgo...",
|
|
115
|
-
"transfer_to_oss": false,
|
|
116
112
|
"media": {
|
|
117
113
|
"images": ["https://example.com/photo1.jpg"],
|
|
118
114
|
"video": null,
|
|
@@ -129,7 +125,6 @@ JSON 格式输出示例:
|
|
|
129
125
|
- **`data.data.qrcode`** — 二维码 base64 图片(`data:image/png;base64,...`),手机扫码即可打开发布页
|
|
130
126
|
- **`data.data.id`** — 笔记唯一标识 UUID
|
|
131
127
|
- **`data.data.media`** — 最终使用的素材列表(images / video / cover)
|
|
132
|
-
- **`data.data.transfer_to_oss`** — 是否执行了 OSS 转存
|
|
133
128
|
|
|
134
129
|
**返回给用户时,优先展示 H5 链接和二维码。** 二维码 base64 可以直接嵌入 HTML img 标签在聊天中预览。
|
|
135
130
|
|
|
@@ -162,19 +157,16 @@ JSON 格式输出示例:
|
|
|
162
157
|
| `--cover-file <path>` | 本地视频封面路径 | 无 |
|
|
163
158
|
| `--cover-base64 <data>` | 视频封面 Base64、data URL 或 `@文本文件` | 无 |
|
|
164
159
|
| `--upload-valid-days <days>` | 本地/Base64 素材临时链接有效期:1 或 7 天 | `7` |
|
|
165
|
-
| `--transfer-to-oss` | 素材转存云端(更稳定,7 天有效) | 关闭 |
|
|
166
160
|
| `-k, --api-key <key>` | AIConductor API Key | 环境变量或 .env |
|
|
167
161
|
| `-f, --format <format>` | 输出格式:`json` 或 `text` | `json` |
|
|
168
162
|
|
|
169
163
|
## 注意事项
|
|
170
164
|
|
|
171
165
|
1. 采用后扣费模式:仅页面生成成功时才扣费,参数校验失败或素材下载失败不扣费
|
|
172
|
-
2.
|
|
173
|
-
3. 本地/Base64 素材预上传免费;使用这些素材时通常无需再开启 `--transfer-to-oss`
|
|
166
|
+
2. 发布页生成 0.05 元/次,本地/Base64 素材预上传免费
|
|
174
167
|
4. 临时上传链接有效期为 1 或 7 天,过期自动清理;应在有效期内完成发布
|
|
175
168
|
5. 素材 URL 必须为公网可访问的 HTTP(S) 地址,内网 IP 和 localhost 将被拒绝
|
|
176
169
|
6. URL 视频上限 200MB;本地/Base64 视频受上传接口限制为 100MB;图片上限 32MB
|
|
177
170
|
7. 生成的 H5 页面支持移动端扫码后在浏览器中点击"发布到小红书"按钮自动唤起 App
|
|
178
|
-
8.
|
|
179
|
-
9.
|
|
180
|
-
10. 图片顺序按 URL、本地文件、Base64 分组,各组内部保持输入顺序;第一张图片作为笔记封面
|
|
171
|
+
8. 默认使用 JSON 输出格式,便于 AI Agent 解析
|
|
172
|
+
9. 图片顺序按 URL、本地文件、Base64 分组,各组内部保持输入顺序;第一张图片作为笔记封面
|
package/README.md
CHANGED
|
@@ -264,7 +264,6 @@ aiconductor-cli xhs note-publish video \
|
|
|
264
264
|
| `--cover-file <path>` | 本地视频封面路径 | 无 |
|
|
265
265
|
| `--cover-base64 <data>` | 封面 Base64、data URL 或 `@文本文件` | 无 |
|
|
266
266
|
| `--upload-valid-days <days>` | 本地/Base64 素材临时链接有效期:1 或 7 天 | 7 |
|
|
267
|
-
| `--transfer-to-oss` | 让发布接口再次转存全部素材 | 关闭 |
|
|
268
267
|
|
|
269
268
|
本地文件会在 CLI 内转换成 data URL,与 Base64 素材统一通过 JSON 接口免费上传为临时公开 URL,不使用 multipart。图片合计最多 18 张、单张最多 32MB;本地/Base64 视频受上传接口限制为 100MB,URL 视频上限为 200MB。
|
|
270
269
|
|
|
@@ -288,7 +287,7 @@ aiconductor-cli xhs note-publish video \
|
|
|
288
287
|
| 抖音用户搜索 | 0.15 元/页 |
|
|
289
288
|
| 抖音视频搜索 | 0.15 元/页 |
|
|
290
289
|
| 抖音链接转文字 | 0.01 元/次 + 0.0003 元/秒 |
|
|
291
|
-
| 小红书扫码发布 | 0.05
|
|
290
|
+
| 小红书扫码发布 | 0.05 元/次 |
|
|
292
291
|
|
|
293
292
|
> 搜索/调用失败不扣费,仅成功时计费。
|
|
294
293
|
|
package/bin/aiconductor-cli.js
CHANGED
|
@@ -176,7 +176,7 @@ const xhsCmd = program
|
|
|
176
176
|
|
|
177
177
|
xhsCmd
|
|
178
178
|
.command("note-publish")
|
|
179
|
-
.description("
|
|
179
|
+
.description("生成小红书扫码发布页与二维码(0.05元/次)")
|
|
180
180
|
.argument("<type>", "笔记类型:normal(图文)或 video(视频)")
|
|
181
181
|
.option("-k, --api-key <key>", "AIConductor API Key")
|
|
182
182
|
.option("-t, --title <title>", "笔记标题(最多20字符)")
|
|
@@ -191,8 +191,7 @@ xhsCmd
|
|
|
191
191
|
.option("--cover-file <path>", "本地视频封面路径(仅video类型有效)")
|
|
192
192
|
.option("--cover-base64 <data>", "视频封面Base64/data URL/@文本文件(仅video类型)")
|
|
193
193
|
.option("--upload-valid-days <days>", "本地/Base64素材临时链接有效期:1或7天", "7")
|
|
194
|
-
.option("--
|
|
195
|
-
.option("-f, --format <format>", "输出格式:json 或 text", "json")
|
|
194
|
+
.option("-f, --format <format>", "输出格式:json 或 text", "json")
|
|
196
195
|
.action((type, options) => { notePublishCommand(type, options); });
|
|
197
196
|
|
|
198
197
|
// 未知命令处理
|
package/package.json
CHANGED
package/src/api.js
CHANGED
|
@@ -417,17 +417,16 @@ async function douyinLinkToText(apiKey, videoUrl) {
|
|
|
417
417
|
/**
|
|
418
418
|
* 小红书笔记发布 — 生成扫码发布 H5 页面与二维码
|
|
419
419
|
* @param {string} apiKey
|
|
420
|
-
* @param {{ type: string, title?: string, content?: string, images?: string[], video?: string, cover?: string
|
|
420
|
+
* @param {{ type: string, title?: string, content?: string, images?: string[], video?: string, cover?: string }} params
|
|
421
421
|
* @returns {Promise<object>}
|
|
422
422
|
*/
|
|
423
423
|
async function xhsNotePublish(apiKey, params) {
|
|
424
424
|
const body = { type: params.type };
|
|
425
425
|
if (params.title) body.title = params.title;
|
|
426
426
|
if (params.content) body.content = params.content;
|
|
427
|
-
if (params.images && params.images.length > 0) body.images = params.images;
|
|
428
|
-
if (params.video) body.video = params.video;
|
|
429
|
-
if (params.cover) body.cover = params.cover;
|
|
430
|
-
if (params.transferToOss !== undefined) body.transfer_to_oss = params.transferToOss;
|
|
427
|
+
if (params.images && params.images.length > 0) body.images = params.images;
|
|
428
|
+
if (params.video) body.video = params.video;
|
|
429
|
+
if (params.cover) body.cover = params.cover;
|
|
431
430
|
|
|
432
431
|
const resp = await httpPost(API_HOST, XHS_NOTE_PUBLISH_PATH, body, {
|
|
433
432
|
Authorization: `Bearer ${apiKey}`,
|
package/src/commands/xhs.js
CHANGED
|
@@ -88,7 +88,6 @@ function textFormatter(resp) {
|
|
|
88
88
|
lines.push(` H5 地址: ${d.url}`);
|
|
89
89
|
if (resp.message) lines.push(` 消息: ${resp.message}`);
|
|
90
90
|
if (d.qrcode) lines.push(` 二维码: ${d.qrcode.substring(0, 50)}...`);
|
|
91
|
-
if (d.transfer_to_oss) lines.push(` OSS转存: 是`);
|
|
92
91
|
if (d.media) {
|
|
93
92
|
if (d.media.images) lines.push(` 图片: ${d.media.images.length} 张`);
|
|
94
93
|
if (d.media.video) lines.push(` 视频: ${d.media.video}`);
|
|
@@ -214,7 +213,6 @@ async function notePublishCommand(type, options = {}) {
|
|
|
214
213
|
images,
|
|
215
214
|
video,
|
|
216
215
|
cover,
|
|
217
|
-
transferToOss: Boolean(options.transferToOss),
|
|
218
216
|
});
|
|
219
217
|
outputResult(result, format, textFormatter);
|
|
220
218
|
process.exit(0);
|