akari-video 0.1.93 → 0.1.95
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "akari-video",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.95",
|
|
4
4
|
"description": "AKARI Video launcher CLI — start an AI-edited video project from any directory: scaffold, connection check, then hand over to Claude Code (or opencode). AKARI Video を opencode や Claude Code で、どのディレクトリからでも始めるための `akari` ランチャー CLI。接続確認(doctor)→ 未セットアップならプロジェクト雛形を作成 → AI エージェントを起動する。外部 npm 依存ゼロ(Node.js 組み込みモジュールのみ)。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -234,7 +234,7 @@ function isFiniteNumber(value) {
|
|
|
234
234
|
const VALUE_OPTIONS = new Set([
|
|
235
235
|
"--project", "--engine", "--reading-file", "--script-file",
|
|
236
236
|
"--t", "--gain-db", "--id", "--speaker", "--profile",
|
|
237
|
-
"--voice", "--style", "--speed", "--text", "--caption-ref", "--irodori-url",
|
|
237
|
+
"--voice", "--style", "--speed", "--text", "--caption-ref", "--irodori-url", "--out",
|
|
238
238
|
]);
|
|
239
239
|
const FLAG_OPTIONS = new Set(["--dry-run", "--yes", "--apply", "--json"]);
|
|
240
240
|
|
|
@@ -252,7 +252,7 @@ function parseArguments(argv) {
|
|
|
252
252
|
id: null,
|
|
253
253
|
speaker: "3",
|
|
254
254
|
profile: null,
|
|
255
|
-
voice: null, style: null, speed: null, text: null, captionRef: null, irodoriUrl: null, json: false,
|
|
255
|
+
voice: null, style: null, speed: null, text: null, captionRef: null, irodoriUrl: null, out: null, json: false,
|
|
256
256
|
dryRun: false,
|
|
257
257
|
yes: false,
|
|
258
258
|
apply: false,
|
|
@@ -281,6 +281,7 @@ function parseArguments(argv) {
|
|
|
281
281
|
case "--text": options.text = value; break;
|
|
282
282
|
case "--caption-ref": options.captionRef = value; break;
|
|
283
283
|
case "--irodori-url": options.irodoriUrl = value; break;
|
|
284
|
+
case "--out": options.out = value; break;
|
|
284
285
|
default: break;
|
|
285
286
|
}
|
|
286
287
|
} else if (argument === "--dry-run") {
|
|
@@ -336,6 +337,26 @@ function parseArguments(argv) {
|
|
|
336
337
|
}
|
|
337
338
|
|
|
338
339
|
options.project = path.resolve(options.project);
|
|
340
|
+
if (options.out !== null) {
|
|
341
|
+
const out = options.out.replace(/\\/gu, '/');
|
|
342
|
+
if (options.apply || options.id || !/^assets\/generated\/candidates\/[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*\.(?:wav|mp3)$/u.test(out)
|
|
343
|
+
|| out.split('/').some(part => part === '..') || !out.endsWith(`.${extensionFor(options.engine)}`)) {
|
|
344
|
+
throw new PublicError('--out はプロジェクト内の未使用候補音声パスを指定してください', 2);
|
|
345
|
+
}
|
|
346
|
+
const directory = path.dirname(path.join(options.project, out));
|
|
347
|
+
const root = fs.realpathSync(options.project);
|
|
348
|
+
for (let parent = path.dirname(directory); parent !== options.project && parent.startsWith(`${options.project}${path.sep}`); parent = path.dirname(parent)) {
|
|
349
|
+
if (fs.existsSync(parent) && !fs.realpathSync(parent).startsWith(`${root}${path.sep}`)) {
|
|
350
|
+
throw new PublicError('候補の出力先がプロジェクト外です', 2);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
354
|
+
if (!fs.realpathSync(directory).startsWith(`${root}${path.sep}`)
|
|
355
|
+
|| fs.existsSync(path.join(options.project, out)) || fs.existsSync(path.join(options.project, `${out}.meta.json`))) {
|
|
356
|
+
throw new PublicError('候補の出力先がプロジェクト外、または既存ファイルです', 2);
|
|
357
|
+
}
|
|
358
|
+
options.out = out;
|
|
359
|
+
}
|
|
339
360
|
return options;
|
|
340
361
|
}
|
|
341
362
|
|
|
@@ -1008,8 +1029,8 @@ async function runGenerate(options, io) {
|
|
|
1008
1029
|
return 0;
|
|
1009
1030
|
}
|
|
1010
1031
|
|
|
1011
|
-
const id = options.id ?? computeNextId(options.project);
|
|
1012
|
-
const relativePath = relativeOutputPath(id, options.engine);
|
|
1032
|
+
const id = options.out ? null : options.id ?? computeNextId(options.project);
|
|
1033
|
+
const relativePath = options.out ?? relativeOutputPath(id, options.engine);
|
|
1013
1034
|
const outputPath = path.join(options.project, relativePath);
|
|
1014
1035
|
|
|
1015
1036
|
let audioBuffer;
|
|
@@ -1107,7 +1128,8 @@ async function runGenerate(options, io) {
|
|
|
1107
1128
|
}
|
|
1108
1129
|
|
|
1109
1130
|
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
1110
|
-
fs.writeFileSync(outputPath, audioBuffer);
|
|
1131
|
+
if (options.out) fs.writeFileSync(outputPath, audioBuffer, { flag: 'wx' });
|
|
1132
|
+
else fs.writeFileSync(outputPath, audioBuffer);
|
|
1111
1133
|
const duration = durationForAudio(audioBuffer, outputPath, options.engine, warnings);
|
|
1112
1134
|
|
|
1113
1135
|
const entry = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "akari-video",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.95",
|
|
4
4
|
"description": "AKARI Video launcher CLI — start an AI-edited video project from any directory: scaffold, connection check, then hand over to Claude Code (or opencode). AKARI Video を opencode や Claude Code で、どのディレクトリからでも始めるための `akari` ランチャー CLI。接続確認(doctor)→ 未セットアップならプロジェクト雛形を作成 → AI エージェントを起動する。外部 npm 依存ゼロ(Node.js 組み込みモジュールのみ)。 [akari-video npm vendor: bin/akari.mjs is reference-only. These CLI entrypoints are not included in the akari-video npm package. Use `akari doctor --json` and run the path reported in `render_cut.path`. Full installations provide it in a monorepo checkout, ~/.akari/app, /Applications/AKARI Video.app/Contents/Resources/packages, or %LOCALAPPDATA%\\Programs\\@akari-videoshell\\resources\\packages.]",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"released": null,
|
|
11
11
|
"license": {
|
|
12
12
|
"badge": "conditional",
|
|
13
|
-
"note": "
|
|
14
|
-
"source_url": "https://
|
|
13
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
14
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
15
15
|
},
|
|
16
16
|
"verified": "documented",
|
|
17
17
|
"measured_ref": null,
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"released": null,
|
|
28
28
|
"license": {
|
|
29
29
|
"badge": "conditional",
|
|
30
|
-
"note": "
|
|
31
|
-
"source_url": "https://
|
|
30
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
31
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
32
32
|
},
|
|
33
33
|
"verified": "documented",
|
|
34
34
|
"measured_ref": null,
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"released": null,
|
|
45
45
|
"license": {
|
|
46
46
|
"badge": "conditional",
|
|
47
|
-
"note": "
|
|
48
|
-
"source_url":
|
|
47
|
+
"note": "規約上、商用利用は原則禁止だが条件つきで容認。無許可の場合は Kling AI の表示が必要。",
|
|
48
|
+
"source_url": "https://kling.ai/docs/user-policy"
|
|
49
49
|
},
|
|
50
50
|
"verified": "documented",
|
|
51
51
|
"measured_ref": null,
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"released": null,
|
|
62
62
|
"license": {
|
|
63
63
|
"badge": "conditional",
|
|
64
|
-
"note": "
|
|
65
|
-
"source_url":
|
|
64
|
+
"note": "規約上、商用利用は原則禁止だが条件つきで容認。無許可の場合は Kling AI の表示が必要。",
|
|
65
|
+
"source_url": "https://kling.ai/docs/user-policy"
|
|
66
66
|
},
|
|
67
67
|
"verified": "documented",
|
|
68
68
|
"measured_ref": null,
|
|
@@ -180,9 +180,9 @@
|
|
|
180
180
|
"main": true,
|
|
181
181
|
"released": null,
|
|
182
182
|
"license": {
|
|
183
|
-
"badge": "
|
|
184
|
-
"note": "
|
|
185
|
-
"source_url": "https://x.ai/legal/
|
|
183
|
+
"badge": "credit-required",
|
|
184
|
+
"note": "帰属表示が必須。知的財産権の侵害に対する補償なし。",
|
|
185
|
+
"source_url": "https://x.ai/legal/brand-guidelines"
|
|
186
186
|
},
|
|
187
187
|
"verified": "documented",
|
|
188
188
|
"measured_ref": null,
|
|
@@ -198,8 +198,8 @@
|
|
|
198
198
|
"released": null,
|
|
199
199
|
"license": {
|
|
200
200
|
"badge": "conditional",
|
|
201
|
-
"note": "AI
|
|
202
|
-
"source_url":
|
|
201
|
+
"note": "商用利用可。AI 生成の表示の除去・改ざんと、人物に重大な影響を与える用途は禁止。",
|
|
202
|
+
"source_url": "https://platform.vidu.com/docs/terms-of-use"
|
|
203
203
|
},
|
|
204
204
|
"verified": "documented",
|
|
205
205
|
"measured_ref": null,
|
|
@@ -273,9 +273,9 @@
|
|
|
273
273
|
"main": true,
|
|
274
274
|
"released": null,
|
|
275
275
|
"license": {
|
|
276
|
-
"badge": "
|
|
277
|
-
"note": "
|
|
278
|
-
"source_url": "https://
|
|
276
|
+
"badge": "conditional",
|
|
277
|
+
"note": "Antigravity は Gemini API 上で動き、商用条件は Gemini API 規約に準ずる。CLI との同一性は推定。",
|
|
278
|
+
"source_url": "https://ai.google.dev/gemini-api/terms"
|
|
279
279
|
},
|
|
280
280
|
"verified": "measured",
|
|
281
281
|
"measured_ref": "2026-09-26-still-aspect-verify",
|
|
@@ -333,9 +333,9 @@
|
|
|
333
333
|
"main": true,
|
|
334
334
|
"released": null,
|
|
335
335
|
"license": {
|
|
336
|
-
"badge": "
|
|
337
|
-
"note": "
|
|
338
|
-
"source_url": "https://x.ai/legal/
|
|
336
|
+
"badge": "credit-required",
|
|
337
|
+
"note": "帰属表示が必須。知的財産権の侵害に対する補償なし。",
|
|
338
|
+
"source_url": "https://x.ai/legal/brand-guidelines"
|
|
339
339
|
},
|
|
340
340
|
"verified": "measured",
|
|
341
341
|
"measured_ref": "2026-09-26-still-aspect-verify",
|
|
@@ -459,8 +459,8 @@
|
|
|
459
459
|
"released": null,
|
|
460
460
|
"license": {
|
|
461
461
|
"badge": "conditional",
|
|
462
|
-
"note": "
|
|
463
|
-
"source_url": "https://
|
|
462
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
463
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
464
464
|
},
|
|
465
465
|
"verified": "documented",
|
|
466
466
|
"measured_ref": null,
|
|
@@ -544,7 +544,7 @@
|
|
|
544
544
|
"released": null,
|
|
545
545
|
"license": {
|
|
546
546
|
"badge": "credit-required",
|
|
547
|
-
"note": "
|
|
547
|
+
"note": "VOICEVOX・Voiceger・MMVC などキャラ・方式ごとの書式でクレジット必須。動画内か概要欄の一方に記載し、省略には 1 キャラ 40 万円 + 税の別契約が必要。",
|
|
548
548
|
"source_url": "https://voicevox.hiroshiba.jp/term/"
|
|
549
549
|
},
|
|
550
550
|
"verified": "documented",
|
|
@@ -665,9 +665,9 @@
|
|
|
665
665
|
"main": true,
|
|
666
666
|
"released": null,
|
|
667
667
|
"license": {
|
|
668
|
-
"badge": "
|
|
669
|
-
"note": "
|
|
670
|
-
"source_url":
|
|
668
|
+
"badge": "commercial-ok",
|
|
669
|
+
"note": "whisper.cpp 本体と Whisper モデルはともに MIT。ローカル実行のため API 規約は対象外。",
|
|
670
|
+
"source_url": "https://github.com/openai/whisper/blob/main/LICENSE"
|
|
671
671
|
},
|
|
672
672
|
"verified": "documented",
|
|
673
673
|
"measured_ref": null,
|
|
@@ -705,8 +705,8 @@
|
|
|
705
705
|
"released": null,
|
|
706
706
|
"license": {
|
|
707
707
|
"badge": "unknown",
|
|
708
|
-
"note": "
|
|
709
|
-
"source_url":
|
|
708
|
+
"note": "ElevenLabs の一般規約では無料は非商用、有料は商用可。Scribe にも適用されるとみられるが、固有条項は未確認。",
|
|
709
|
+
"source_url": "https://elevenlabs.io/terms-of-use"
|
|
710
710
|
},
|
|
711
711
|
"verified": "documented",
|
|
712
712
|
"measured_ref": null,
|
|
@@ -899,9 +899,9 @@
|
|
|
899
899
|
"main": true,
|
|
900
900
|
"released": null,
|
|
901
901
|
"license": {
|
|
902
|
-
"badge": "
|
|
903
|
-
"note": "
|
|
904
|
-
"source_url":
|
|
902
|
+
"badge": "commercial-ok",
|
|
903
|
+
"note": "商用利用可。出力の権利は利用者に帰属。",
|
|
904
|
+
"source_url": "https://openai.com/policies/terms-of-use/"
|
|
905
905
|
},
|
|
906
906
|
"verified": "documented",
|
|
907
907
|
"measured_ref": null,
|
|
@@ -954,9 +954,9 @@
|
|
|
954
954
|
"main": false,
|
|
955
955
|
"released": null,
|
|
956
956
|
"license": {
|
|
957
|
-
"badge": "
|
|
958
|
-
"note": "
|
|
959
|
-
"source_url":
|
|
957
|
+
"badge": "commercial-ok",
|
|
958
|
+
"note": "商用利用可。出力の権利は利用者に帰属。",
|
|
959
|
+
"source_url": "https://openai.com/policies/terms-of-use/"
|
|
960
960
|
},
|
|
961
961
|
"verified": "documented",
|
|
962
962
|
"measured_ref": null,
|
|
@@ -1009,9 +1009,9 @@
|
|
|
1009
1009
|
"main": true,
|
|
1010
1010
|
"released": null,
|
|
1011
1011
|
"license": {
|
|
1012
|
-
"badge": "
|
|
1013
|
-
"note": "
|
|
1014
|
-
"source_url": "https://x.ai/legal/
|
|
1012
|
+
"badge": "credit-required",
|
|
1013
|
+
"note": "帰属表示が必須。知的財産権の侵害に対する補償なし。",
|
|
1014
|
+
"source_url": "https://x.ai/legal/brand-guidelines"
|
|
1015
1015
|
},
|
|
1016
1016
|
"verified": "documented",
|
|
1017
1017
|
"measured_ref": null,
|
|
@@ -1066,9 +1066,9 @@
|
|
|
1066
1066
|
"main": true,
|
|
1067
1067
|
"released": "2025-02-15",
|
|
1068
1068
|
"license": {
|
|
1069
|
-
"badge": "
|
|
1070
|
-
"note": "
|
|
1071
|
-
"source_url":
|
|
1069
|
+
"badge": "conditional",
|
|
1070
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
1071
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
1072
1072
|
},
|
|
1073
1073
|
"verified": "documented",
|
|
1074
1074
|
"measured_ref": null,
|
|
@@ -1115,9 +1115,9 @@
|
|
|
1115
1115
|
"main": true,
|
|
1116
1116
|
"released": null,
|
|
1117
1117
|
"license": {
|
|
1118
|
-
"badge": "
|
|
1119
|
-
"note": "
|
|
1120
|
-
"source_url":
|
|
1118
|
+
"badge": "conditional",
|
|
1119
|
+
"note": "無印の Qwen-Image は Apache 2.0。Qwen-Image 2.0 自体のライセンス表記は未確認。",
|
|
1120
|
+
"source_url": "https://huggingface.co/Qwen/Qwen-Image"
|
|
1121
1121
|
},
|
|
1122
1122
|
"verified": "documented",
|
|
1123
1123
|
"measured_ref": null,
|
|
@@ -1233,8 +1233,8 @@
|
|
|
1233
1233
|
"released": null,
|
|
1234
1234
|
"license": {
|
|
1235
1235
|
"badge": "conditional",
|
|
1236
|
-
"note": "
|
|
1237
|
-
"source_url": "https://
|
|
1236
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
1237
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
1238
1238
|
},
|
|
1239
1239
|
"verified": "documented",
|
|
1240
1240
|
"measured_ref": null,
|
|
@@ -1286,8 +1286,8 @@
|
|
|
1286
1286
|
"released": null,
|
|
1287
1287
|
"license": {
|
|
1288
1288
|
"badge": "conditional",
|
|
1289
|
-
"note": "
|
|
1290
|
-
"source_url": "https://
|
|
1289
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
1290
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
1291
1291
|
},
|
|
1292
1292
|
"verified": "documented",
|
|
1293
1293
|
"measured_ref": null,
|
|
@@ -1344,8 +1344,8 @@
|
|
|
1344
1344
|
"released": "2026-01-23",
|
|
1345
1345
|
"license": {
|
|
1346
1346
|
"badge": "conditional",
|
|
1347
|
-
"note": "
|
|
1348
|
-
"source_url": "https://
|
|
1347
|
+
"note": "fal では商用可と表示。MiniMax は消費者向けと開発者向けで規約が分かれ、後者の本文は未確認。",
|
|
1348
|
+
"source_url": "https://www.minimax.io/terms-of-service-v2.html"
|
|
1349
1349
|
},
|
|
1350
1350
|
"verified": "documented",
|
|
1351
1351
|
"measured_ref": null,
|