cutsdk 1.0.0 → 1.1.0
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 +27 -24
- package/dist/api/cloud/render-draft.d.ts +5 -2
- package/dist/api/cloud/render-draft.d.ts.map +1 -1
- package/dist/api/cloud/render-draft.js +117 -15
- package/dist/api/cloud/render-draft.js.map +1 -1
- package/dist/api/cloud/submit-video-render-task.js +2 -2
- package/dist/api/cloud/submit-video-render-task.js.map +1 -1
- package/dist/api/cloud/upload-draft.d.ts.map +1 -1
- package/dist/api/cloud/upload-draft.js +0 -2
- package/dist/api/cloud/upload-draft.js.map +1 -1
- package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -1
- package/dist/api/draft-spec/create-and-render-draft.js +0 -1
- package/dist/api/draft-spec/create-and-render-draft.js.map +1 -1
- package/dist/api/query/get-text-effects.d.ts +4 -0
- package/dist/api/query/get-text-effects.d.ts.map +1 -0
- package/dist/api/query/get-text-effects.js +36 -0
- package/dist/api/query/get-text-effects.js.map +1 -0
- package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +48 -33
- package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/.env.example +0 -1
- package/dist/api/setup/templates/project/cutcli-docs/README.md +95 -0
- package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/api-cheatsheet.md +29 -5
- package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/03-create-and-render.ts +1 -2
- package/dist/api/setup/templates/project/cutcli-docs/examples/04-cli-examples.md +109 -0
- package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/quickstart.md +22 -2
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -2
- package/dist/config/index.js.map +1 -1
- package/dist/draft/drafts/Effects.d.ts.map +1 -1
- package/dist/draft/drafts/Effects.js +0 -1
- package/dist/draft/drafts/Effects.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/cloud-client.d.ts +2 -7
- package/dist/shared/cloud-client.d.ts.map +1 -1
- package/dist/shared/cloud-client.js +4 -4
- package/dist/shared/cloud-client.js.map +1 -1
- package/dist/shared/media.d.ts.map +1 -1
- package/dist/shared/media.js +36 -11
- package/dist/shared/media.js.map +1 -1
- package/dist/types/index.d.ts +23 -6
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +9 -12
- package/dist/api/setup/templates/project/cut-sdk/README.md +0 -54
- package/dist/api/setup/templates/project/cut-sdk/examples/04-cli-examples.md +0 -71
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -339
- package/dist/cli.js.map +0 -1
- /package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/01-create-draft.ts +0 -0
- /package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/02-draft-spec.ts +0 -0
package/README.md
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# cutsdk
|
|
2
2
|
|
|
3
|
-
CapCut / 剪映草稿 SDK
|
|
3
|
+
CapCut / 剪映草稿 Node.js SDK。用于代码化、批量化创建剪映标准草稿,可直接被剪映桌面端打开,也可提交云渲染。
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- npm 包名:`cutsdk`
|
|
6
|
+
- 当前发布版本:`1.1.0`(SDK 和 CLI 统一版本)
|
|
7
|
+
- 版本迭代记录:[CHANGELOG.md](./CHANGELOG.md)
|
|
8
|
+
|
|
9
|
+
- Node.js SDK,用于服务端、脚本和批量生成视频
|
|
6
10
|
- 支持字幕、图片、视频、音频、特效、贴纸、关键帧、遮罩
|
|
7
11
|
- 媒体 URL 自动下载到草稿目录
|
|
8
12
|
- 出入场动画、转场效果、关键词高亮
|
|
9
|
-
-
|
|
13
|
+
- CLI 已拆到 `@cutcli/cutcli`,命令名是 `cutcli`,版本号跟随 `cutsdk`
|
|
10
14
|
|
|
11
15
|
## 安装
|
|
12
16
|
|
|
13
17
|
```bash
|
|
14
|
-
npm install
|
|
18
|
+
npm install cutsdk
|
|
15
19
|
```
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
AI / 命令行实时调用请安装 CLI:
|
|
18
22
|
|
|
19
23
|
```bash
|
|
20
|
-
|
|
24
|
+
npm install -g @cutcli/cutcli
|
|
25
|
+
cutcli draft create
|
|
21
26
|
```
|
|
22
27
|
|
|
23
28
|
## 快速上手
|
|
@@ -26,22 +31,14 @@ npx cutsdk draft create
|
|
|
26
31
|
|
|
27
32
|
```bash
|
|
28
33
|
# 创建草稿
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
cut images add <draftId> --image-infos '[
|
|
38
|
-
{"imageUrl":"https://example.com/bg.jpg","width":1920,"height":1080,"start":0,"end":5000000}
|
|
39
|
-
]'
|
|
40
|
-
|
|
41
|
-
# 添加背景音乐
|
|
42
|
-
cut audios add <draftId> --audio-infos '[
|
|
43
|
-
{"audioUrl":"https://example.com/bgm.mp3","duration":5000000,"start":0,"end":5000000}
|
|
44
|
-
]'
|
|
34
|
+
cutcli draft create --width 1080 --height 1920
|
|
35
|
+
|
|
36
|
+
# 本地拼接优先使用单素材命令,--src 支持本地路径或 URL
|
|
37
|
+
cutcli query text-effects --keyword 火焰 --limit 5
|
|
38
|
+
cutcli text add <draftId> --text "你好世界" --start 0s --duration 3s --font-size 8 --text-effect "红黄火焰综艺花字" --shadow
|
|
39
|
+
cutcli image add <draftId> --src ./素材/bg.png --start 0s --duration 5s --width 1080 --height 1920
|
|
40
|
+
cutcli audio add <draftId> --src ./素材/bgm.mp3 --start 0s --duration 5s
|
|
41
|
+
cutcli video add <draftId> --src ./素材/clip.mp4 --start 5s --duration 3s --width 1080 --height 1920 --mask 圆形
|
|
45
42
|
```
|
|
46
43
|
|
|
47
44
|
### Node.js SDK
|
|
@@ -108,7 +105,13 @@ console.log(result.render?.videoUrl);
|
|
|
108
105
|
|
|
109
106
|
## AI Agent 接入
|
|
110
107
|
|
|
111
|
-
|
|
108
|
+
CLI 可把项目级 AI 使用说明安装到业务项目:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
cutcli agents install
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
模板位于 `src/api/setup/templates/project/`,包含 `.agents/skills/cut-draft/SKILL.md`、SDK 快速开始、API 速查和示例代码。
|
|
112
115
|
|
|
113
116
|
## 文档
|
|
114
117
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type { RenderDraftInput, RenderDraftOutput } from '../../types';
|
|
1
|
+
import type { CloudRenderJob, RenderDraftInput, RenderDraftOutput } from '../../types';
|
|
2
2
|
export declare function renderDraft(input: RenderDraftInput): Promise<RenderDraftOutput>;
|
|
3
3
|
export declare function getCloudRenderStatus(params: {
|
|
4
4
|
taskId: string;
|
|
5
|
-
apiBase?: string;
|
|
6
5
|
apiToken?: string;
|
|
7
6
|
}): Promise<Record<string, unknown>>;
|
|
7
|
+
export declare function normalizeCloudRenderPayload(payload: any, fallbackId?: string): CloudRenderJob;
|
|
8
|
+
export declare function isCloudRenderRunningStatus(status: unknown): boolean;
|
|
9
|
+
export declare function isCloudRenderSuccessStatus(status: unknown): boolean;
|
|
10
|
+
export declare function isCloudRenderFailureStatus(status: unknown): boolean;
|
|
8
11
|
//# sourceMappingURL=render-draft.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMvF,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4DrF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUnC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,SAAK,GAAG,cAAc,CAsBzF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE"}
|
|
@@ -5,6 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.renderDraft = renderDraft;
|
|
7
7
|
exports.getCloudRenderStatus = getCloudRenderStatus;
|
|
8
|
+
exports.normalizeCloudRenderPayload = normalizeCloudRenderPayload;
|
|
9
|
+
exports.isCloudRenderRunningStatus = isCloudRenderRunningStatus;
|
|
10
|
+
exports.isCloudRenderSuccessStatus = isCloudRenderSuccessStatus;
|
|
11
|
+
exports.isCloudRenderFailureStatus = isCloudRenderFailureStatus;
|
|
8
12
|
const fs_1 = __importDefault(require("fs"));
|
|
9
13
|
const path_1 = __importDefault(require("path"));
|
|
10
14
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
@@ -13,6 +17,9 @@ const config_1 = require("../../config");
|
|
|
13
17
|
const cloud_client_1 = require("../../shared/cloud-client");
|
|
14
18
|
const errors_1 = require("../../shared/errors");
|
|
15
19
|
const upload_draft_1 = require("./upload-draft");
|
|
20
|
+
const RUNNING_STATUSES = new Set([0, 1, 2]);
|
|
21
|
+
const FAILURE_STATUSES = new Set([3, 5, 6]);
|
|
22
|
+
const SUCCESS_STATUS = 7;
|
|
16
23
|
async function renderDraft(input) {
|
|
17
24
|
const draftPath = input.draftPath || path_1.default.join(config_1.config.draftsDir, input.draftId);
|
|
18
25
|
if (!fs_1.default.existsSync(draftPath) || !fs_1.default.statSync(draftPath).isDirectory()) {
|
|
@@ -24,7 +31,7 @@ async function renderDraft(input) {
|
|
|
24
31
|
}
|
|
25
32
|
const zipPath = input.zipPath || await (0, upload_draft_1.zipDraftDirectory)(draftPath, input.draftId);
|
|
26
33
|
try {
|
|
27
|
-
const
|
|
34
|
+
const backendBase = normalizeBackendBase(config_1.config.uploadApi.baseUrl);
|
|
28
35
|
const token = (0, cloud_client_1.getCloudApiToken)(input.apiToken);
|
|
29
36
|
const form = new form_data_1.default();
|
|
30
37
|
form.append('draft_id', input.draftId);
|
|
@@ -32,7 +39,7 @@ async function renderDraft(input) {
|
|
|
32
39
|
filename: path_1.default.basename(zipPath),
|
|
33
40
|
contentType: 'application/zip',
|
|
34
41
|
});
|
|
35
|
-
const response = await (0, node_fetch_1.default)(`${
|
|
42
|
+
const response = await (0, node_fetch_1.default)(`${backendBase}/v1/cloud-render-jobs`, {
|
|
36
43
|
method: 'POST',
|
|
37
44
|
headers: {
|
|
38
45
|
...form.getHeaders(),
|
|
@@ -41,17 +48,27 @@ async function renderDraft(input) {
|
|
|
41
48
|
body: form,
|
|
42
49
|
});
|
|
43
50
|
const result = await parseJsonResponse(response, '/v1/cloud-render-jobs');
|
|
51
|
+
const jobId = getFirstString(result, ['task_id', 'taskId', 'id']) || '';
|
|
52
|
+
let renderJob = normalizeCloudRenderPayload(result, jobId);
|
|
53
|
+
let renderResult = result;
|
|
54
|
+
let timedOut = false;
|
|
55
|
+
if (input.wait && jobId) {
|
|
56
|
+
const waited = await waitForCloudRender(jobId, input);
|
|
57
|
+
renderJob = waited.job;
|
|
58
|
+
renderResult = waited.raw;
|
|
59
|
+
timedOut = waited.timedOut;
|
|
60
|
+
}
|
|
44
61
|
return {
|
|
45
|
-
message:
|
|
46
|
-
draftUploadId: result
|
|
47
|
-
downloadUrl: result
|
|
48
|
-
jobId
|
|
49
|
-
status:
|
|
50
|
-
renderJob
|
|
51
|
-
videoUrl:
|
|
52
|
-
failureReason:
|
|
53
|
-
resultCommand: `
|
|
54
|
-
timedOut
|
|
62
|
+
message: timedOut ? 'timed out waiting for cloud render' : getMessage(renderResult, result),
|
|
63
|
+
draftUploadId: getFirstString(result, ['object_key', 'objectKey', 'draft_upload_id', 'draftUploadId']) || '',
|
|
64
|
+
downloadUrl: getFirstString(result, ['download_url', 'downloadUrl', 'draft_download_url', 'draftDownloadUrl']) || '',
|
|
65
|
+
jobId,
|
|
66
|
+
status: renderJob.status,
|
|
67
|
+
renderJob,
|
|
68
|
+
videoUrl: renderJob.videoUrl || renderJob.video_url,
|
|
69
|
+
failureReason: renderJob.failure_reason,
|
|
70
|
+
resultCommand: `cutcli cloud result ${shellQuote(jobId)} --pretty`,
|
|
71
|
+
timedOut,
|
|
55
72
|
};
|
|
56
73
|
}
|
|
57
74
|
finally {
|
|
@@ -61,13 +78,63 @@ async function renderDraft(input) {
|
|
|
61
78
|
}
|
|
62
79
|
}
|
|
63
80
|
async function getCloudRenderStatus(params) {
|
|
64
|
-
const
|
|
81
|
+
const backendBase = normalizeBackendBase(config_1.config.uploadApi.baseUrl);
|
|
65
82
|
const token = (0, cloud_client_1.getCloudApiToken)(params.apiToken);
|
|
66
|
-
const response = await (0, node_fetch_1.default)(`${
|
|
83
|
+
const response = await (0, node_fetch_1.default)(`${backendBase}/v1/cloud-render-jobs/${encodeURIComponent(params.taskId)}/status`, {
|
|
67
84
|
headers: { Authorization: `Bearer ${token}` },
|
|
68
85
|
});
|
|
69
86
|
return await parseJsonResponse(response, `/v1/cloud-render-jobs/${encodeURIComponent(params.taskId)}/status`);
|
|
70
87
|
}
|
|
88
|
+
function normalizeCloudRenderPayload(payload, fallbackId = '') {
|
|
89
|
+
const data = isRecord(payload?.data) ? payload.data : {};
|
|
90
|
+
const raw = isRecord(payload?.raw) ? payload.raw : {};
|
|
91
|
+
const source = { ...raw, ...payload, ...data };
|
|
92
|
+
const rawStatus = getFirstDefined(source, ['status', 'state']);
|
|
93
|
+
const status = typeof rawStatus === 'number' || typeof rawStatus === 'string' ? rawStatus : '';
|
|
94
|
+
const failureReason = getFirstString(source, ['failure_reason', 'failureReason', 'error', 'message'])
|
|
95
|
+
|| getFirstString(payload, ['msg', 'message']);
|
|
96
|
+
const videoUrl = getFirstString(source, ['video_url', 'videoUrl']);
|
|
97
|
+
return {
|
|
98
|
+
id: getFirstString(source, ['task_id', 'taskId', 'id', 'job_id', 'jobId']) || fallbackId,
|
|
99
|
+
status,
|
|
100
|
+
draft_upload_id: getFirstString(source, ['draft_upload_id', 'draftUploadId', 'object_key', 'objectKey']),
|
|
101
|
+
draft_download_url: getFirstString(source, ['draft_download_url', 'draftDownloadUrl', 'download_url', 'downloadUrl']),
|
|
102
|
+
filename: getFirstString(source, ['filename', 'fileName']),
|
|
103
|
+
video_url: videoUrl,
|
|
104
|
+
videoUrl,
|
|
105
|
+
failure_reason: failureReason,
|
|
106
|
+
created_at: getFirstString(source, ['created_at', 'createdAt']),
|
|
107
|
+
updated_at: getFirstString(source, ['updated_at', 'updatedAt']),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function isCloudRenderRunningStatus(status) {
|
|
111
|
+
const normalized = normalizeStatus(status);
|
|
112
|
+
return normalized !== undefined && RUNNING_STATUSES.has(normalized);
|
|
113
|
+
}
|
|
114
|
+
function isCloudRenderSuccessStatus(status) {
|
|
115
|
+
return normalizeStatus(status) === SUCCESS_STATUS;
|
|
116
|
+
}
|
|
117
|
+
function isCloudRenderFailureStatus(status) {
|
|
118
|
+
const normalized = normalizeStatus(status);
|
|
119
|
+
return normalized !== undefined && FAILURE_STATUSES.has(normalized);
|
|
120
|
+
}
|
|
121
|
+
async function waitForCloudRender(taskId, input) {
|
|
122
|
+
const pollIntervalMs = input.pollIntervalMs ?? 15000;
|
|
123
|
+
const timeoutMs = input.timeoutMs ?? 1800000;
|
|
124
|
+
const startedAt = Date.now();
|
|
125
|
+
let lastRaw = {};
|
|
126
|
+
let lastJob = normalizeCloudRenderPayload({}, taskId);
|
|
127
|
+
while (Date.now() - startedAt <= timeoutMs) {
|
|
128
|
+
await sleep(pollIntervalMs);
|
|
129
|
+
lastRaw = await getCloudRenderStatus({ taskId, apiToken: input.apiToken });
|
|
130
|
+
lastJob = normalizeCloudRenderPayload(lastRaw, taskId);
|
|
131
|
+
input.onPoll?.(lastJob);
|
|
132
|
+
if (isCloudRenderSuccessStatus(lastJob.status) || isCloudRenderFailureStatus(lastJob.status)) {
|
|
133
|
+
return { raw: lastRaw, job: lastJob, timedOut: false };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { raw: lastRaw, job: lastJob, timedOut: true };
|
|
137
|
+
}
|
|
71
138
|
async function parseJsonResponse(response, requestPath) {
|
|
72
139
|
const text = await response.text();
|
|
73
140
|
let data;
|
|
@@ -89,7 +156,7 @@ async function parseJsonResponse(response, requestPath) {
|
|
|
89
156
|
}
|
|
90
157
|
function normalizeBackendBase(value) {
|
|
91
158
|
if (!value) {
|
|
92
|
-
throw new Error('Missing backend API base.
|
|
159
|
+
throw new Error('Missing backend API base.');
|
|
93
160
|
}
|
|
94
161
|
return value.replace(/\/+$/, '');
|
|
95
162
|
}
|
|
@@ -98,4 +165,39 @@ function shellQuote(value) {
|
|
|
98
165
|
return value;
|
|
99
166
|
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
100
167
|
}
|
|
168
|
+
function normalizeStatus(status) {
|
|
169
|
+
if (typeof status === 'number' && Number.isFinite(status))
|
|
170
|
+
return status;
|
|
171
|
+
if (typeof status === 'string' && status.trim() !== '') {
|
|
172
|
+
const parsed = Number(status);
|
|
173
|
+
if (Number.isFinite(parsed))
|
|
174
|
+
return parsed;
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
function getMessage(renderResult, submitResult) {
|
|
179
|
+
return getFirstString(renderResult, ['message', 'msg'])
|
|
180
|
+
|| getFirstString(submitResult, ['message', 'msg'])
|
|
181
|
+
|| 'ok';
|
|
182
|
+
}
|
|
183
|
+
function getFirstString(source, keys) {
|
|
184
|
+
const value = getFirstDefined(source, keys);
|
|
185
|
+
return typeof value === 'string' && value !== '' ? value : undefined;
|
|
186
|
+
}
|
|
187
|
+
function getFirstDefined(source, keys) {
|
|
188
|
+
if (!isRecord(source))
|
|
189
|
+
return undefined;
|
|
190
|
+
for (const key of keys) {
|
|
191
|
+
if (source[key] !== undefined && source[key] !== null) {
|
|
192
|
+
return source[key];
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
function isRecord(value) {
|
|
198
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
199
|
+
}
|
|
200
|
+
function sleep(ms) {
|
|
201
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
202
|
+
}
|
|
101
203
|
//# sourceMappingURL=render-draft.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"render-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,8 @@ async function submitVideoRenderTask(params) {
|
|
|
19
19
|
details: { acceptedEnv: ['CUT_API_TOKEN'] },
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
const response = await fetch(`${
|
|
22
|
+
const backendBase = config_1.config.api.baseUrl.replace(/\/+$/, '');
|
|
23
|
+
const response = await fetch(`${backendBase}/api/submit_video_render_task`, {
|
|
24
24
|
method: 'POST',
|
|
25
25
|
headers: {
|
|
26
26
|
accept: 'application/json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit-video-render-task.js","sourceRoot":"","sources":["../../../src/api/cloud/submit-video-render-task.ts"],"names":[],"mappings":";;AAOA,0DAEC;AAED,sDA8CC;AAzDD,yCAAsC;AACtC,gDAAkD;AAGlD,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAC1E,MAAM,kBAAkB,GAAG,+DAA+D,CAAC;AAE3F,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wDAAwD;YACjE,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"submit-video-render-task.js","sourceRoot":"","sources":["../../../src/api/cloud/submit-video-render-task.ts"],"names":[],"mappings":";;AAOA,0DAEC;AAED,sDA8CC;AAzDD,yCAAsC;AACtC,gDAAkD;AAGlD,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAC1E,MAAM,kBAAkB,GAAG,+DAA+D,CAAC;AAE3F,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wDAAwD;YACjE,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,+BAA+B,EAAE;QAC1E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,QAAQ,EAAE;SACpC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;SACpD,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gCAAgC,QAAQ,CAAC,MAAM,EAAE;YAC1D,SAAS,EAAE,uBAAuB;YAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,kBAAkB,CAAC;IAChC,OAAO,MAAqC,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOvE,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"upload-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOvE,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4CrF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBrF"}
|
|
@@ -30,13 +30,11 @@ async function uploadDraft(input) {
|
|
|
30
30
|
filename,
|
|
31
31
|
metadata: { source: 'cutcli' },
|
|
32
32
|
}, {
|
|
33
|
-
apiBase: input.apiBase,
|
|
34
33
|
apiToken: input.apiToken,
|
|
35
34
|
});
|
|
36
35
|
const fileBuffer = fs_1.default.readFileSync(zipPath);
|
|
37
36
|
await (0, cloud_client_1.uploadDraftZip)(presign.uploadUrl, fileBuffer, presign.contentType || 'application/zip');
|
|
38
37
|
const confirmed = await (0, cloud_client_1.confirmDraftUpload)(presign.draftUploadId, size, {
|
|
39
|
-
apiBase: input.apiBase,
|
|
40
38
|
apiToken: input.apiToken,
|
|
41
39
|
});
|
|
42
40
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":";;;;;AAcA,
|
|
1
|
+
{"version":3,"file":"upload-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAkChH"}
|
|
@@ -31,7 +31,6 @@ async function createAndRenderDraft(input) {
|
|
|
31
31
|
const render = await (0, render_draft_1.renderDraft)({
|
|
32
32
|
draftId: draft.draftId,
|
|
33
33
|
draftPath: resolveActualDraftPath(draft.filePath, input.output?.name),
|
|
34
|
-
apiBase: renderOptions.apiBase,
|
|
35
34
|
apiToken: renderOptions.apiToken,
|
|
36
35
|
keepZip: renderOptions.keepZip,
|
|
37
36
|
wait: renderOptions.wait,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GetTextEffectInput, GetTextEffectOutput, GetTextEffectsInput, GetTextEffectsOutput } from '../../types';
|
|
2
|
+
export declare function getTextEffects(params?: GetTextEffectsInput): Promise<GetTextEffectsOutput>;
|
|
3
|
+
export declare function getTextEffect(params: GetTextEffectInput): Promise<GetTextEffectOutput>;
|
|
4
|
+
//# sourceMappingURL=get-text-effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-text-effects.d.ts","sourceRoot":"","sources":["../../../src/api/query/get-text-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AAerB,wBAAsB,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAUpG;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAS5F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTextEffects = getTextEffects;
|
|
4
|
+
exports.getTextEffect = getTextEffect;
|
|
5
|
+
const { fetch_all_huazi, fetch_huazi_by_title, search_huazi_by_keyword } = require('../../draft/drafts/data/huazi/online_huazi');
|
|
6
|
+
function toTextEffectInfo(item) {
|
|
7
|
+
const attr = item?.common_attr || {};
|
|
8
|
+
return {
|
|
9
|
+
title: attr.title || '',
|
|
10
|
+
effectId: attr.effect_id,
|
|
11
|
+
description: attr.description,
|
|
12
|
+
isVip: attr.is_vip,
|
|
13
|
+
raw: item,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async function getTextEffects(params = {}) {
|
|
17
|
+
const limit = params.limit && params.limit > 0 ? params.limit : 20;
|
|
18
|
+
const keyword = params.keyword || '';
|
|
19
|
+
const items = keyword
|
|
20
|
+
? await search_huazi_by_keyword(keyword, limit)
|
|
21
|
+
: (await fetch_all_huazi(false)).slice(0, limit);
|
|
22
|
+
return {
|
|
23
|
+
effects: items.map(toTextEffectInfo).filter((item) => item.title),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async function getTextEffect(params) {
|
|
27
|
+
const effect = await fetch_huazi_by_title(params.name);
|
|
28
|
+
if (!effect)
|
|
29
|
+
return { effect: null, exact: false };
|
|
30
|
+
const info = toTextEffectInfo(effect);
|
|
31
|
+
return {
|
|
32
|
+
effect: info,
|
|
33
|
+
exact: info.title === params.name,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=get-text-effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-text-effects.js","sourceRoot":"","sources":["../../../src/api/query/get-text-effects.ts"],"names":[],"mappings":";;AAqBA,wCAUC;AAED,sCASC;AAlCD,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,4CAA4C,CAAC,CAAC;AAEjI,SAAS,gBAAgB,CAAC,IAAS;IACjC,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,SAA8B,EAAE;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;KAClF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAA0B;IAC5D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -2,76 +2,91 @@
|
|
|
2
2
|
name: cut-draft
|
|
3
3
|
description: >-
|
|
4
4
|
使用 cutsdk 创建和操作剪映/CapCut 草稿工程。用户想创建剪映草稿、添加字幕/图片/视频/音频/特效/贴纸/关键帧/遮罩、
|
|
5
|
-
提交渲染,或提到
|
|
5
|
+
提交渲染,或提到 cutsdk、cutcli、draft spec、剪映、草稿、字幕、CapCut draft 时使用此 skill。
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# cutcli 项目级 Skill
|
|
9
9
|
|
|
10
|
-
`cutsdk` 是用于创建剪映/CapCut 桌面端草稿文件夹的 Node.js SDK
|
|
10
|
+
`cutsdk` 是用于创建剪映/CapCut 桌面端草稿文件夹的 Node.js SDK。`cutcli` 是给 AI 实时调用的命令行工具。生成后的草稿可直接在剪映桌面端打开。
|
|
11
11
|
|
|
12
12
|
## 先读这些
|
|
13
13
|
|
|
14
14
|
写代码前,先阅读本项目内的文档:
|
|
15
15
|
|
|
16
|
-
1. `
|
|
17
|
-
2. `
|
|
18
|
-
3. `
|
|
16
|
+
1. `cutcli-docs/README.md`
|
|
17
|
+
2. `cutcli-docs/quickstart.md`
|
|
18
|
+
3. `cutcli-docs/api-cheatsheet.md`
|
|
19
19
|
|
|
20
|
-
实现时优先从 `
|
|
20
|
+
实现时优先从 `cutcli-docs/examples/` 里选择最接近的示例改起。
|
|
21
21
|
|
|
22
22
|
## 推荐使用路径
|
|
23
23
|
|
|
24
|
-
- AI 生成完整时间线时,优先使用 `createDraftFromSpec(spec)`。
|
|
25
|
-
-
|
|
24
|
+
- AI 生成完整时间线时,优先使用 `cutcli spec create --file draft.json`,或在代码中使用 `createDraftFromSpec(spec)`。
|
|
25
|
+
- 用户希望“一次创建草稿并提交云渲染”时,优先使用 `cutcli spec render --file draft.json --cloud --wait`,或在代码中使用 `createAndRenderDraft(input)`。
|
|
26
26
|
- 用户要逐步编辑草稿,或 Draft Spec 尚未覆盖某个能力时,再使用低层 API,例如 `createDraft`、`addCaptions`、`addImages`、`addVideos`、`addAudios`、`addMasks`、`addKeyframes`。
|
|
27
|
-
-
|
|
27
|
+
- 需要实时命令行操作时,优先使用便捷命令,例如 `cutcli image add ...`、`cutcli text add ...`、`cutcli audio add ...`。
|
|
28
28
|
|
|
29
29
|
## 关键规则
|
|
30
30
|
|
|
31
31
|
- 包导入名是 `cutsdk`。
|
|
32
|
-
- 低层 SDK
|
|
33
|
-
- AI Draft Spec 的时间字符串可写为 `1.5s`、`500ms`、`300000us`。
|
|
32
|
+
- 低层 SDK 的数字时间单位是微秒:`1s = 1000000`。
|
|
33
|
+
- `cutcli` 便捷命令和 AI Draft Spec 的时间字符串可写为 `1.5s`、`500ms`、`300000us`。
|
|
34
34
|
- 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 覆盖。
|
|
35
|
-
-
|
|
35
|
+
- 媒体本地路径和 URL 都可用:本地路径会复制到草稿 `resources/`,URL 会下载到 `resources/`。
|
|
36
36
|
- 图片必须提供 `width` 和 `height`。
|
|
37
37
|
- 使用低层 API 添加视频或音频时,要提供素材原始时长。
|
|
38
38
|
- 同一轨道内的片段不要重叠,除非目标 API 明确会创建独立轨道。
|
|
39
39
|
- CLI 参数使用 kebab-case,例如 `--font-size`,不要写成 `--fontSize`。
|
|
40
|
+
- 云渲染只有 `status = 7` 才算成功并写入 `video_url`;`0/1/2` 表示等待或处理中,`3/5/6` 表示失败终态。
|
|
41
|
+
- AI 调用 CLI 时,如需结构化错误,使用 `--json-errors` 或 `CUTCLI_JSON_ERRORS=1`。
|
|
40
42
|
|
|
41
43
|
## 最小 Draft Spec 示例
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
import { createDraftFromSpec } from 'cutsdk';
|
|
45
|
+
保存为 `draft.json`:
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"version": "1.0",
|
|
50
|
+
"canvas": { "width": 1080, "height": 1920 },
|
|
51
|
+
"tracks": [
|
|
50
52
|
{
|
|
51
|
-
type:
|
|
52
|
-
clips: [
|
|
53
|
-
{ type:
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}
|
|
53
|
+
"type": "text",
|
|
54
|
+
"clips": [
|
|
55
|
+
{ "type": "caption", "text": "你好剪映", "start": "0s", "duration": "3s" }
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
然后执行:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cutcli spec validate --file draft.json --pretty
|
|
66
|
+
cutcli spec create --file draft.json --pretty
|
|
58
67
|
```
|
|
59
68
|
|
|
60
69
|
## 云渲染环境变量
|
|
61
70
|
|
|
62
|
-
|
|
71
|
+
云渲染需要 API Token。优先让用户运行:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
cutcli login <apiToken>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
也可以使用环境变量:
|
|
63
78
|
|
|
64
79
|
```env
|
|
65
80
|
CUT_API_TOKEN=your_token
|
|
66
|
-
CUT_UPLOAD_API_BASE=http://your-render-backend:8080
|
|
67
81
|
```
|
|
68
82
|
|
|
69
|
-
|
|
83
|
+
`cutcli login` 会把 Token 保存到本机 `~/.cutcli/config.json`;`cutcli config show` 只显示 `<set>`,不会打印 Token 明文。
|
|
70
84
|
|
|
71
85
|
## 常见坑
|
|
72
86
|
|
|
73
87
|
1. 不要混用包名。除非项目明确覆盖,否则始终使用 `cutsdk`。
|
|
74
|
-
2.
|
|
75
|
-
3.
|
|
76
|
-
4.
|
|
77
|
-
5.
|
|
88
|
+
2. 本地拼接优先用 `cutcli image/video/audio/text add`;批量 JSON 命令只在需要一次添加多段素材时使用。
|
|
89
|
+
3. 不要把“秒”直接作为低层 API 的数字传入。数字 `3` 表示 3 微秒,不是 3 秒。
|
|
90
|
+
4. 对动画/特效名有精确要求时,不要凭空编造。先用 CLI 查询可用资源,或使用项目里已有示例。
|
|
91
|
+
5. 除非 SDK 无法表达目标操作,否则不要手动改剪映草稿 JSON。
|
|
92
|
+
6. 生成复杂时间线时,先用 `cutcli spec validate --file draft.json` 或 `validateDraftSpec(spec)` 校验 Draft Spec。
|