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 --help2 つの認証モード、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 または環境変数 |
どちらのモードも同じ基盤機能に到達できます。分かれているのは身元と、コマンドを実行する場所の違いであって、使える機能の違いではありません。
OAuth — listenhub auth login を一度実行してブラウザ経由で認証し、あとは素のコマンドを使います:
listenhub auth login
listenhub podcast create --query "AI agent trends in 2026" --mode quickAPI キー — listenhub.ai/settings/api-keys でキーを作成し、環境変数に設定(または openapi config set-key で保存)してから、openapi ネームスペースを使います:
export LISTENHUB_API_KEY="lh_sk_..."
listenhub openapi speakers list --language enAPI キーは機密情報として扱ってください。環境を自分で管理できるサーバーや CI では、API キー(openapi)モードを使います。ワークステーションで自分が対話的に使う場合は、OAuth ログインにしておけば長期間有効なキーをディスクに置かずに済みます。
グローバルフラグ
これらのフラグはコマンド全体で使えます:
| フラグ | 説明 |
|---|---|
--json、-j | 人間可読なテキストの代わりに、機械可読な JSON を出力します。jq にパイプできます。 |
--help、-h | CLI または任意のサブコマンドのヘルプを表示します。 |
作成系のコマンド(非同期の生成を開始するもの全般)は、さらに次のフラグを受け付けます:
| フラグ | 説明 |
|---|---|
--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 estimate や listenhub video estimate)でコストを確認してください。残高は listenhub openapi subscription で確認できます。
次のステップ
クイックスタート
インストールと認証を済ませ、ターミナルから最初のエピソードを作成します。
認証
OAuth ログインと API キーの違い、認証情報の保存場所、両者の切り替え方。
OAuth コマンド
素の listenhub コマンドのすべて:podcast、tts、music、image、video など。
OpenAPI コマンド
スクリプトと CI 向けの listenhub openapi コマンドのすべて。あなたの API キーで認証します。
サンプル
ポッドキャスト、動画、音楽、JSON 駆動のスクリプティングまで、エンドツーエンドのレシピ集。
JavaScript SDK
CLI がラップしているライブラリ。コードから ListenHub を呼び出したいときに。