Nodaro ドキュメント
ドキュメントノードリファレンスモデルAI エージェント(MCP)開発者向けセルフホスティングリサーチ
CLI

メディアと音声のコマンド

Nodaro CLI の voice、media、audio、edit の各コマンドで、トラックの声を差し替え、字幕を焼き込み、スライドショーとオーバーレイを作成し、オーディオを処理し、編集を計画します。

Nodaro CLI のメディアと音声のコマンドは、オーディオ、動画、画像を直接扱います。voice グループはトラックの声を差し替え、ボイスをデザインします。media はメディアのインポート、トリミング、字幕付け、合成を行います。audio は音を処理し、文字起こしします。edit は、ポッドキャストや長い動画の編集を計画し、適用します。各コマンドは、エディターの対応するノードと同じエンジンで動作します。

ジョブを開始するコマンドはすべて、結果を待つ --watch、ポーリングの間隔を設定する --poll-interval <ms>、そして --json を受け付けます。出力と終了コードを参照してください。

ボイス

nodaro voice list [--clones] [--json]
nodaro voice changer --voice <id> --audio <url>|--video <url> [--model <id>] [--stability <0..1>] [--similarity <0..1>] [--style <0..1>] [--use-speaker-boost] [--seed <n>] [--remove-background-noise] [--watch] [--poll-interval <ms>] [--json]
nodaro voice recast --audio <url>|--video <url> --voices <v1,v2,...>|--voices-json <json> [--model <id>] [--output video|stems] [--analysis-json <json>|--analysis-file <path>] [--no-preserve-background] [--separation-quality fast|best] [--music-volume-mode match|normalize|manual] [--music-volume <0-200>] [--remove-background-noise] [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice analyze --audio <url>|--video <url> [--separation-quality fast|best] [--suggest-title] [--watch] [--poll-interval <ms>] [--json]
nodaro voice export --source <videoUrl> --tracks-json <json>|--tracks-file <path> [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice design --text <line> --description <desc> [--model <id>] [--loudness <-1..1>] [--guidance-scale <0-100>] [--seed <n>] [--quality <n>] [--enhance] [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice remix --text <text> --description <desc> [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice dub --audio <url> --target-language <code> [--source-language <code>] [--num-speakers <1-20>] [--disable-voice-cloning] [--drop-background-audio] [--watch] [--poll-interval <ms>] [--json]
nodaro voice clones list [--json]
nodaro voice clones delete <id> [--json]
コマンド内容
voice list標準ボイスを一覧表示します。--clones を付けると、自分のクローンを表示します。その名前または ID を --voice と --voices で使います。
voice changerボイスチェンジャー(Voice Changer)ノードのように、1 つのオーディオトラックまたは 1 つの発話動画の声を、単一のボイスに差し替えます。voice change も同じコマンドです。
voice recastボイスチェンジャー Pro(Voice Changer Pro)ノードのように、録音のすべての話者の声を一度に差し替えます。voice pro も同じコマンドです。
voice analyze声を差し替えずに話者を検出し、--watch を付けると一覧を表示します。Nodaro Cloud 専用です。
voice exportミックスしたトラックのセットから、最終的な動画をレンダリングします。Nodaro Cloud 専用です。
voice designボイスデザイン(Voice Design)ノードのように、テキストの説明から新しい合成ボイスをデザインします。
voice remixボイスリミックス(Voice Remix)ノードのように、クローンを作らず、説明したボイスでテキストを読み上げます。
voice dub吹き替え(Dubbing)ノードのように、録音を別の言語に吹き替え、各話者の声を保ちます。
voice clonesクローン機能が廃止される前に作られたボイスクローンを、一覧表示および削除します。

複数の話者の声を差し替える

voice recast は、Nodaro Cloud で動作します。セルフホスティング環境では、Nodaro Cloud への接続を通じて動作します。

  • --voices は、Nodaro が検出した順に、ボイスを話者へ割り当てます。keep という語は、その話者の元の声を保ちます。--voices Rachel,keep,Aria のように書きます。
  • --voices-json は、代わりに SDK の生の配列を受け取ります。ボイス ID、ボイスごとの設定オブジェクト、または元の声を保つ話者には null を指定します。
  • --output stems は、完成した動画の代わりに、対話的なミックス用に、話者ごとの 1 本のドライなトラックを返します。ミックスは voice export でレンダリングします。
  • --analysis-file は、保存済みの voice analyze の結果を再利用するので、話者が再び検出されることはありません。

対話形式で声を差し替えるフロー

1 ステップの voice recast は、1 回の呼び出しで完成した動画をレンダリングします。3 ステップのフローでは、レンダリングの前に、まず話者を確認し、結果をミックスできます。

# 1. Detect the speakers. Save the job's output_data for step 2.
nodaro voice analyze --video https://example.com/panel.mp4 --watch --json > analyze.json
jq .output_data analyze.json > analysis.json

# 2. Recast to dry stems, reusing the analysis (no second detection)
nodaro voice recast --video https://example.com/panel.mp4 --voices Rachel,keep,Aria \
  --analysis-file analysis.json --output stems --watch

# 3. Set the level and mute of each track, then render
nodaro voice export --source https://example.com/panel.mp4 --tracks-file mix.json \
  --voice-fx hall --voice-fx-mix 25 --watch

手順 3 では、mix.json の各トラックは、手順 2 のステムから取得した url、0〜200 の gain、muted フラグ、省略可能な kind を持つオブジェクトです。エクスポートは、動画ストリームをそのままコピーします。再エンコードされることはありません。

メディア

nodaro media download <url> [--max-height <px>] [--section <a-b>] [--watch] [--json]
nodaro media metadata <url> [--json]
nodaro media trim-video --video <url> --start <sec> --end <sec>|--keep-first <sec>|--keep-last <sec> [--watch] [--poll-interval <ms>] [--json]
nodaro media trim-audio --video <url>|--audio <url> [--start <sec>] [--end <sec>] [--format mp3|wav|aac] [--watch] [--poll-interval <ms>] [--json]
nodaro media add-captions <videoUrl> [options, see below]
nodaro media still-to-video --image <url> --audio <url> [--motion none|zoom-in|zoom-out|pan-left|pan-right|ken-burns] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media slideshow --images <url...> [--audio <url>] [--durations "10,auto,auto"] [--per-image <sec>] [--transition <id>] [--transition-duration <sec>] [--motion none|zoom-in|zoom-out|ken-burns|alternate] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--json]
nodaro media collage <imageUrls...> [--sizes <0-3,...>] [--numbered] [--label <text>...] [--badge-position top-left|top-right] [--layout smart|grid] [--resolution 2K|4K] [--aspect-ratio <W:H>] [--gap <px>] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay <imageUrl> [layerUrls...] [--layers-file <path>] [--anchor <anchor>] [--x <%>] [--y <%>] [--width <%>] [--opacity <0-1>] [--platform <id>...] [--qr-text <text>] [--mask-mode none|layers|around|outside] [--mask-spread <px>] [--canvas <WxH>] [--base-fit contain|cover] [--background-color <hex>] [--output-format png|jpg|webp] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay-placement <imageUrl> [--intent <text>] [--aspect <ratio>] [--safe-area <x,y,w,h>] [--json]
nodaro media video-overlay <videoUrl> [layerUrls...] [--at <start[-end]>...] [--preset card|corner-badge|full-frame] [--corner top-left|top-right|bottom-left|bottom-right] [--layers-file <path>] [--aspect 16:9|9:16|1:1|4:5] [--base-fit cover|contain] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media save <url> [--filename <name>] [--type image|video|audio] [--watch] [--poll-interval <ms>] [--json]
コマンド内容
media downloadYouTube、TikTok、Instagram、X、Facebook から、動画を自分のストレージにインポートします。--section は、秒単位で 1 つの時間範囲を取得します。--watch はリアルタイムの進行状況をストリーミングし、後でポーリングするジョブはありません。
media metadataメディアの URL の長さ、サイズ、タイトルを、ダウンロードせずに読み取ります。
media trim-video開始時刻と終了時刻で動画をカットするか、最初または最後の秒数だけを残します。
media trim-audio動画またはオーディオファイルの音声をカットし、MP3、WAV、AAC のいずれかで保存します。
media add-captions動画に字幕を焼き込みます。字幕を参照してください。
media still-to-video1 枚の静止画と 1 つのオーディオファイルを、0 クレジットで MP4 にします。動画の長さはオーディオと同じなので、長さのオプションはありません。--motion は、静止画にアニメーションを付けます。
media slideshow2〜100 枚の画像から、0 クレジットで MP4 のスライドショーを作ります。オーディオを添えることもできます。
media collage2〜30 枚の画像を、1 枚の大きな画像に合成します。
media overlayAI を使わず、最大 12 個のレイヤーを、ピクセル単位で正確にベース画像の上に配置します。
media overlay-placement1 つのレイヤーをどこに置くべきかを、ビジョンモデルに尋ねます。
media video-overlayAI を使わず、20 クレジットで、1〜20 個のタイミング付き画像レイヤーを動画の上に配置します。
media saveメディアの URL を、画像、動画、オーディオファイルのいずれかとして、自分のストレージに保存します。

スライドショー

オーディオがある場合、スライドショーの長さはそのオーディオが決めます。--durations で固定した長さは比例して調整され、CLI がその旨を知らせます。オーディオがない場合、スライドショーは無音になり、長さは画像の枚数に --per-image を掛けたものになります。

コラージュ

  • --sizes は、画像の順番どおりに、各画像へ相対的なサイズのヒントを与えます。0 は自動、1 は大(幅がおよそ 2 倍)、2 は中、3 は小(幅がおよそ半分)です。サイズのヒントは、スマートレイアウトでのみ機能します。
  • --numbered は、ストーリーボード用に、各画像の隅に 1 から始まる連番を付けます。
  • --badge-position は、その隅の位置を設定します。デフォルトの top-left または top-right です。ラベルの位置もここで決まります。
  • --label は、番号の後にキャプションを追加します。画像ごとに、順番に 1 回ずつ繰り返します。空の "" は、その画像をスキップします。

画像オーバーレイ

  • ベース画像の後に続く画像 URL は、画像レイヤーになります。--anchor、--x、--y、--width、--opacity を共有し、透かしに向いています。
  • --layers-file は、代わりにレイヤーの完全な JSON 配列を受け取ります。レイヤーごとのオプション、テキスト、QR コード、図形の種類です。
  • 配置は、ベース画像に対するパーセントで指定するので、1 つのコマンドで 1K のプレビューと 4K のレンダリングの両方に対応します。
  • 繰り返し指定できる --platform は、そのプラットフォームのサイズでも合成画像をレンダリングします。ベースのレンダリングは 10 クレジットで、プラットフォームごとに 2 クレジット追加されます。ジョブの出力には、追加のレンダリングが variants として一覧表示されます。
  • overlay-placement は、同じパーセント単位で、アンカー、x、y、width、そして 1 行の理由を答えます。ポーリングするジョブなしで即座に答え、画像からテキストへの呼び出し 1 回分の料金がかかります。

動画オーバーレイ

  • --at は、画像 URL ごとに、順番どおりに 1 つ指定します。3 は 3 秒目から最後まで、1.2-2.6 は 1.2 秒から 2.6 秒までを意味します。
  • --preset と --corner は、URL として指定したすべての画像レイヤーに適用されます。
  • --layers-file は、代わりにレイヤーの完全な配列を受け取ります。レイヤーごとのボックス、不透明度、アニメーション、重なり順です。
  • --base-fit と --background-color には、--aspect が必要です。
  • ベース動画の音声は、変更されずに保たれます。

レイヤーのオプションについては、動画オーバーレイ(Video Overlay)ノードを参照してください。

字幕

nodaro media add-captions <videoUrl> [--text <text>] [--captions-file <file.json>] [--style subtitle|word-highlight|karaoke|tiktok-words|word-pop|bouncy] [--look outline|clean] [--position bottom|top|center] [--position-y <pct>] [--font-size <px>] [--font-family <name>] [--font-weight <100-900>] [--color <c>] [--background-color <c>] [--stroke-color <c>] [--stroke-width <px>] [--highlight-color <c>] [--uppercase|--no-uppercase] [--max-words-per-line <1-20>] [--animate|--no-animate] [--no-auto-transcribe] [--transcribe-provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--segments-file <file.json>] [--watch] [--poll-interval <ms>] [--json]

media add-captions には、字幕を追加(Add Captions)ノードと同じく、2 種類のスタイルがあります。

スタイル表示内容
subtitle単語のアニメーションのない、静的な字幕です。
word-highlight、karaoke、tiktok-words、word-pop、bouncy単語ごとにアニメーションする、キネティック字幕です。word-highlight、karaoke、bouncy は、1 行ずつ保持して表示します。

字幕のテキスト

  • subtitle では、--text は動画全体を通して 1 つの静的なブロックとして焼き込まれます。文字起こしに置き換えられることはありません。発話に字幕を付けるには、--text を省略します。
  • キネティックスタイルでは、--text は、文字起こしが何も返さなかったとき、または --no-auto-transcribe を渡したときのフォールバックにすぎません。
  • --captions-file は、単語のタイミング付きエントリーの JSON 配列 [{ text, startMs, endMs }] で、キネティックスタイルでは単語ごとに 1 エントリーです。nodaro audio transcribe の結果の words は、そのままの形で使えます。このファイルは --no-auto-transcribe と組み合わせます。
  • --segments-file は、時間範囲ごとに、独自のスタイル、ルック、位置を与えます。範囲が重なってはいけません。

スタイリング

  • スタイリングのオプションは、subtitle にもスタイルを適用します。--look、--font-family、--font-weight、--stroke-color、--stroke-width、--uppercase、--position-y、--max-words-per-line です。スタイルを適用した subtitle は、キネティックスタイルと同じ料金になります。何も適用しない subtitle は、低いほうの料金のままです。
  • --highlight-color と --animate は、キネティックスタイルでのみ機能します。subtitle では拒否されます。
  • --animate は、デフォルトでオンです。--no-animate は、各単語の動きを止めますが、グルーピングとハイライトの色は保ちます。
  • --look を指定しない場合、キネティックスタイルは outline で、subtitle は clean でレンダリングされます。
  • --max-words-per-line は、1 つの字幕行、または tiktok-words の 1 ページに表示する単語数を、1〜20 の範囲で制限します。フレーム幅、文の終わり、0.5 秒以上の間も、行の区切りになります。1〜2 語にすると、テンポの速いインパクトのある字幕になります。未設定のままにすると、幅いっぱいに表示します。--text を指定した subtitle では、行の区切りだけを設定し、word-pop には影響しません。
  • キネティックスタイル、またはスタイルを適用したレンダリングは、ソースのフレームレートを、15〜60 fps の整数として保ちます。可変フレームレートまたは非常に長いソースは、30 fps でレンダリングされます。

文字起こしエンジン

--transcribe-provider は、発話を文字起こしするエンジンを選びます。キネティックスタイルには単語のタイミングが必要で、デフォルトの incredibly-fast-whisper、または elevenlabs-stt を使います。subtitle はフレーズのタイミングだけで足りるので、whisper もそこで使えます。

オーディオ

nodaro audio separate --audio <url> [--mode vocal_instrumental|stems] [--quality auto|fast|best] [--watch] [--poll-interval <ms>] [--json]
nodaro audio isolate --audio <url> [--watch] [--poll-interval <ms>] [--json]
nodaro audio fx --audio <url> [--preset <preset>] [--mix <0-100>] [--delay <20-2000>] [--decay <0-1>] [--eq-low <db>] [--eq-high <db>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio mix --audio <url> --audio <url> ... [--volumes <csv>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio adjust-volume --audio <url>|--video <url> [--volume <0-200>] [--normalize] [--fade-in <sec>] [--fade-out <sec>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio combine --segment <url[@a-b]> --segment ... [--watch] [--poll-interval <ms>] [--json]
nodaro audio transcribe --audio <url> [--provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--language <code>] [--diarize] [--tag-audio-events] [--word-timestamps] [--watch] [--poll-interval <ms>] [--json]
コマンド内容ノード
audio separateボーカルをインストゥルメンタルから分離するか、ステムに分離します。音源分離(Audio Separation)
audio isolate声を残し、それ以外を取り除きます。音声抽出(Voice Extractor)
audio fxミックス、ディレイ、ディケイ、イコライザーの設定で、エフェクトのプリセットを適用します。オーディオ FX(Audio FX)
audio mixトラックごとに音量を設定して、複数のトラックをミックスします。オーディオをミックス(Mix Audio)
audio adjust-volume音量を変更し、ノーマライズし、フェードインまたはフェードアウトします。音量調整(Adjust Volume)
audio combineセグメントを順番につなげます。url@a-b は、ファイルの 1 つの時間範囲を指定します。オーディオを結合(Combine Audio)
audio transcribe発話をテキストにします。文字起こし(Transcribe)

これらは、ボイスチェンジャー Pro が組み合わせて使っている構成要素で、単独でも使えます。

文字起こしエンジン

エンジン単語のタイミングほかにできること
elevenlabs-stt常に返します--diarize(誰がいつ話しているか)と --tag-audio-events
incredibly-fast-whisper--word-timestamps を付けると返します
whisper返しません。フレーズ単位のセグメントのみです。--word-timestamps は、クレジットが使われる前に拒否されます

--provider を省略すると、whisper エンジンが実行されます。単語のタイミングが必要なときは、必ずエンジンを指定してください。

完了したジョブの output_data には、text、words(単語ごとに 1 エントリー、ミリ秒単位)、json(正規化された文字起こし、こちらもミリ秒単位)が含まれます。トップレベルの segments リスト(秒単位)は、whisper と incredibly-fast-whisper にのみ存在します。elevenlabs-stt は返さないので、words を読み取ってください。キネティックスタイルでレンダリングするには、words を media add-captions --captions-file に渡します。

編集

edit のコマンドは、ポッドキャストや長い動画のための、編集用の構成要素です。

nodaro edit silence-detect <audioUrl> [--threshold-db=-35] [--min-silence-ms <ms>] [--pad-ms <ms>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit audio-sync (--source <[id=]url> ... | --sources-file <file.json>) [--reference <id>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit apply-edl --edl <file.json> [--transcript <file.json>] [--source <url> ...] [--output video|audio] [--quality proxy|final] [--crossfade-ms <ms>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit plan --mode tighten|clips|chapters --plan-tier economy|standard|premium --transcript <file.json> (--source <url[@audio|@video]> ... | --sources-file <file.json>) [--silence <file.json>] [--instructions <text>] [--style-guide <text>] [--count <n>] [--target-duration-sec <n>] [--target-aspect 16:9|9:16|1:1|4:5] [--platform <name>] [--watch] [--poll-interval <ms>] [--json]
コマンド内容ノード
edit silence-detect録音の中の無音の部分を見つけます。無音検出(Silence Detect)
edit audio-sync同じ出来事を収録した 2〜6 本の録音(オーディオまたは動画)の位置をそろえます。音声同期(Audio Sync)
edit plan文字起こしから編集を計画します。テンポを詰める、クリップを切り出す、チャプターを付けるのいずれかです。編集プラン(Edit Plan)
edit apply-edl編集決定リスト(EDL)を、動画またはオーディオファイルとしてレンダリングします。EDL 適用(Apply EDL)

edit audio-sync は、id=url の形で ID を指定しない限り、録音に source-1、source-2 のように名前を付けます。その output_data.json には、3 つのフィールドがあります。

  • reference:ほかの録音がそろえられる基準となる録音です。--reference で選びます。
  • offsets:録音ごとに 1 エントリーで、sourceId、offsetMs、confidence、driftMsPerHour を持ちます。
  • notes:位置合わせについての備考です。

録音内のある時刻は、referenceMs = sourceMs + offsetMs で基準の時刻に変換されます。

よくある質問

最終更新

目次