ListenHubSDKs & CLI
CLI

CLI

ターミナルからポッドキャスト、音声、画像、音楽、動画を作成します。対話的な用途では OAuth、スクリプトと CI では API キーを使います。

@marswave/listenhub-cli は ListenHub の公式コマンドラインインターフェース(CLI)です。@marswave/listenhub-sdk をラップし、同じ機能——ポッドキャスト、テキスト読み上げ、解説動画、スライド、画像、音楽、動画——を、手動でも実行でき、スクリプトにも組み込めるターミナルコマンドとして提供します。

  • 2 つの認証モード。 対話的な作業では OAuth ログイン、スクリプトと CI では API キー。この 2 つはそれぞれ別のコマンドネームスペースに対応します。
  • SDK の上に構築。 すべてのコマンドは @marswave/listenhub-sdk を経由するため、CLI はそのレスポンスのアンラップ、429 のリトライ、エラーセマンティクスをそのまま引き継ぎます。
  • Node.js >= 20。 ESM のみ対応で、listenhub バイナリとしてグローバルにインストールされます。

インストール

npm install -g @marswave/listenhub-cli

これで listenhub バイナリが PATH に入ります。確認します:

listenhub --version
listenhub --help

2 つの認証モード、2 つのネームスペース

CLI にはトップレベルのコマンドグループが 2 つあります。対象とする製品は同じですが、認証方法が異なり、向き先の API サーフェスも異なります。自分の認証モードに合うネームスペースを選んでください。

OAuth ログインAPI キー
コマンドlistenhub <cmd>listenhub openapi <cmd>
設定方法listenhub auth login(ブラウザを開きます)listenhub openapi config set-key または LISTENHUB_API_KEY
実行主体サインイン中のユーザーあなたのアカウント / キーの所有者
適した用途対話的な用途、アカウント管理スクリプト、CI/CD、自動化
認証情報~/.config/listenhub/credentials.json~/.config/listenhub/openapi.json または環境変数

どちらのモードも同じ基盤機能に到達できます。分かれているのは身元と、コマンドを実行する場所の違いであって、使える機能の違いではありません。

OAuthlistenhub auth login を一度実行してブラウザ経由で認証し、あとは素のコマンドを使います:

listenhub auth login
listenhub podcast create --query "AI agent trends in 2026" --mode quick

API キーlistenhub.ai/settings/api-keys でキーを作成し、環境変数に設定(または openapi config set-key で保存)してから、openapi ネームスペースを使います:

export LISTENHUB_API_KEY="lh_sk_..."
listenhub openapi speakers list --language en

API キーは機密情報として扱ってください。環境を自分で管理できるサーバーや CI では、API キー(openapi)モードを使います。ワークステーションで自分が対話的に使う場合は、OAuth ログインにしておけば長期間有効なキーをディスクに置かずに済みます。

グローバルフラグ

これらのフラグはコマンド全体で使えます:

フラグ説明
--json-j人間可読なテキストの代わりに、機械可読な JSON を出力します。jq にパイプできます。
--help-hCLI または任意のサブコマンドのヘルプを表示します。

作成系のコマンド(非同期の生成を開始するもの全般)は、さらに次のフラグを受け付けます:

フラグ説明
--no-wait完了までポーリングせず、タスク ID をすぐに返します。
--timeout <seconds>コマンドが諦めるまでのポーリングのタイムアウト。デフォルトはコマンドによって異なります。

デフォルトでは、作成系のコマンドはタスクが終わるまでポーリングし、スピナーで進捗を表示します。ポーリングの間隔は 10 秒です。--no-wait を使うと ID を受け取って自分でポーリングできます。スクリプトで便利です:

ID=$(listenhub openapi flow-speech create \
  --source-text "Some article content" \
  --speaker-id voice-xxx \
  --no-wait -j | jq -r '.episodeId')

listenhub openapi flow-speech get "$ID" -j

終了コード

CLI は結果ごとに異なるコードで終了するため、スクリプト側で分岐できます:

コード意味
0成功
1エラー(バリデーション、API エラー、ネットワーク障害)
2認証が必要、または認証が無効(ログインし直すか、API キーを確認してください)
3タイムアウト — タスクの完了前にポーリングが --timeout を超えました

エラーは stderr に、通常の出力は stdout に書き込まれます。そのため、リダイレクトしても --json の出力はきれいなままです。

クレジットの見積もり

生成にはクレジットを消費します。作成する前に、対応する estimate コマンド(たとえば listenhub openapi video estimatelistenhub video estimate)でコストを確認してください。残高は listenhub openapi subscription で確認できます。

次のステップ

このページの内容