CLI クイックスタート
CLI をインストールして認証し、数分でターミナルから最初のポッドキャストを作成します。
本ガイドは、まっさらなマシンから完成したポッドキャストエピソードまでを案内します。listenhub バイナリをインストールし、認証し(対話的な用途では OAuth、スクリプトでは API キー)、最初の生成コマンドを実行します。そのうえで、ポーリングの仕組みと結果の読み取り方を学びます。
Node.js >= 20 が必要です。CLI は ESM のみ対応で、listenhub バイナリとしてグローバルにインストールされます。
対話的なセットアップ(OAuth)
自分のターミナルで作業するときはこの手順を使います。ブラウザ経由でサインインし、あなたのユーザーアカウントとして動作します。
CLI をインストールする
npm install -g @marswave/listenhub-cliこれで listenhub バイナリが PATH に入ります。確認します:
listenhub --version
listenhub --helpログインする
listenhub auth loginブラウザが開いて OAuth を完了します。承認すると、CLI はトークンを ~/.config/listenhub/credentials.json(モード 0600)に保存し、サインインしたアカウントを表示します。トークンは自動で更新されるため、この操作はマシンごとに一度だけです。
セッションはいつでも確認できます:
listenhub auth status最初のポッドキャストを作成する
トピックから、スピーカー 1 人の短いエピソードを生成します:
listenhub podcast create --query "AI agent trends in 2026" --mode quickこのコマンドはジョブを送信し、エピソードが完成するまでポーリングして、スピナーで進捗を表示します。完了するとエピソード ID、タイトル、ステータスを出力します。
podcast create で押さえておきたいフラグ:
| フラグ | 説明 |
|---|---|
--query <text> | エピソードのトピックまたはプロンプト。 |
--source-url <url> | エピソードの根拠となる参照 URL。繰り返し指定可能。 |
--source-text <text> | エピソードの根拠となる参照テキスト。繰り返し指定可能。 |
--mode <mode> | quick、deep、debate のいずれか。デフォルトは quick。 |
--lang <lang> | en、zh、ja のいずれか。省略時は query から自動判定。 |
--speaker <name> | 名前でスピーカーを指定。繰り返し指定可能。1 人なら単独エピソード、2 人以上ならマルチボイスのエピソードになります。 |
--speaker-id <id> | inner ID でスピーカーを指定。繰り返し指定可能。ID が分かっている場合は --speaker の代わりに使います。 |
スピーカーを省略すると、CLI は検出した言語のデフォルトを選びます。声を自分で選ぶには、まずスピーカーを一覧し(openapi ネームスペースが照会可能な一覧を提供します。後述の API キーを使う手順 を参照)、--speaker または --speaker-id を渡します。
結果を読み取る
デフォルトではコマンドが生成の完了まで待つため、最終出力はすでに完成したエピソードを反映しています:
✓ Podcast created
ID: ep_xxx
Title: AI agent trends in 2026
Status: success最近のエピソードはいつでも一覧できます:
listenhub podcast listポーリングの仕組み
生成は非同期です。作成系のコマンドはすべてジョブを送信して ID を受け取り、ジョブが終了状態に達するまで API をポーリングします。
- 間隔。 CLI は 10 秒ごとにステータスを確認します。
- タイムアウト。
--timeout <seconds>で待機時間の上限を決めます。podcast createのデフォルトは300(5 分)です。ジョブの完了前にタイムアウトすると、コマンドは終了コード3で終了します。ジョブはサーバー側で動き続けるため、後から ID で取得できます。 - 結果。 成功するとコマンドは完成したエピソードを出力します。サーバー側で失敗した場合は失敗内容を出力し、非ゼロで終了します。
ポーリングを完全にスキップするには --no-wait を渡します。コマンドはすぐに ID を返して 0 で終了します:
listenhub podcast create --query "AI agent trends in 2026" --no-wait
# ✓ Podcast submitted: ep_xxxスクリプトや CI では、--no-wait と --json(-j)を組み合わせます。--json は機械可読な出力を stdout に出す(エラーは stderr のまま)ので、そのまま jq にパイプできます:
ID=$(listenhub podcast create --query "Weekly recap" --no-wait -j | jq -r '.episodeId')その後は自分のスケジュールでポーリングするか、自前のジョブランナーが完了を報告した時点でエピソードを取得します。
スクリプト向けの設定(API キー)
サーバー上や CI では、OAuth の代わりに API キーを使います。API キーを使うコマンドは listenhub openapi ネームスペースにあり、キーの所有者として動作します。
API キーを作成する
listenhub.ai/settings/api-keys でキーを作成します。キーは lh_sk_ で始まります。
キーを利用できるようにする
方法は 2 つあります。CI や一時的な環境では、環境変数を設定してください。CLI はこちらを先に読み取ります:
export LISTENHUB_API_KEY="lh_sk_..."ローカルで恒久的に設定する場合は、代わりにディスクへ保存します。このコマンドはキーの入力を求め、~/.config/listenhub/openapi.json(モード 0600)に書き込みます:
listenhub openapi config set-key設定内容(および実際に有効になっている取得元)を確認するには:
listenhub openapi config showスピーカーを選ぶ
OAuth の手順とは異なり、openapi podcast create は少なくとも 1 つの --speaker-id を必要とします。利用可能な音声を一覧して ID をコピーします:
listenhub openapi speakers list --language enName、ID、Gender、Language を含む表が出力されます。--speaker-id に渡すのは ID 列の値です。
API キーでポッドキャストを作成する
listenhub openapi podcast create \
--query "AI agent trends in 2026" \
--speaker-id <speaker-id> \
--mode quickOAuth のコマンドと同様に、ジョブを送信して完了までポーリングし、終わるとエピソードの詳細を出力します。--no-wait、--timeout <seconds>(デフォルト 300)、--json の各フラグも同じように使えます。マルチボイスのエピソードにするには --speaker-id を複数回渡し、内容の根拠を与えるには --source-url / --source-text を追加します。
後から ID でエピソードを取得します:
listenhub openapi podcast get <episode-id>終了コード
スクリプトは終了コードで分岐できます:
| コード | 意味 |
|---|---|
0 | 成功 |
1 | エラー(バリデーション、API エラー、ネットワーク障害) |
2 | 認証が必要、または認証が無効。listenhub auth login を実行し直すか、API キーを確認してください |
3 | タイムアウト。タスクの完了前にポーリングが --timeout を超えました |
クレジットの見積もり
生成にはクレジットを消費します。作成する前に、使う製品に対応する estimate コマンド(たとえば listenhub openapi video estimate や listenhub video estimate)でコストを確認し、listenhub openapi subscription で残高を確認してください。固定のコストを前提にせず、必ず照会してください。