Wave CLI
wave コマンドをインストールしてブラウザからサインインし、ターミナルから録音の一覧表示、検索、書き出し、整理ができるようにする方法。
Wave CLIは、録音データをターミナルに持ち込むツールです。@waveai/cliというnpmパッケージで、waveコマンドをインストールできます。これでセッションの一覧表示、検索、文字起こしの出力、音声のダウンロード、あるいはそれらをスクリプトにパイプすることも可能になります。データを返すすべてのコマンドは--jsonに対応しており、他のツールと組み合わせやすくなっています。
すべてのWaveプランで無料で使え、Node.js 20以降が必要です。macOS、Linux、Windowsで動作します。
インストール
npm install -g @waveai/cli何もインストールせずに試す場合:
npx @waveai/cli sessions listサインイン
以下を実行します。
wave loginブラウザが開き、Authorize Wave CLI(「Wave CLIを承認」)ページが表示されます。ここには現在サインイン中のアカウントと、CLIが実行できる操作が表示されます。Authorize CLI(「CLIを承認」)をクリックすると、ページにYou can close this tab and return to your terminal.(「このタブを閉じてターミナルに戻ってください」)と表示されます。ターミナル側は認証情報を受け取り、セッション数を報告します。
この方法でサインインすると、アカウントがサポートするすべての権限を持つWave CLIという名前のAPIトークンが作成されます。これにはセッションの完全削除も含まれます。もっと限定的な権限にしたい場合は、ブラウザでの認証フローを使わず、Developer APIページで必要な権限のみを持つトークンを作成し、代わりにwave login --token wave_api_...を実行してください。
その他の認証方法が2つあります。
wave login --token wave_api_...— 自分で作成したトークンを貼り付けます。CI環境やヘッドレスマシンに向いています。WAVE_API_KEY環境変数を設定する。これはwave loginで保存された内容より優先されるため、別のアカウントとして1回だけコマンドを実行したい場合に便利です。
wave whoamiはアカウント、サブスクリプションの状態、セッション数を表示します。wave logoutはこのマシンに保存された認証情報を削除します。
もう管理していないマシンを切り離したい場合は、WaveのウェブアプリのIntegrations(「連携」)タブからDeveloper APIに進み、Wave CLIという名前のトークンを取り消してください。これにより、そのトークンが使われていたすべての場所で無効になります。
コマンド一覧
Sessions
wave sessions list—--limit、--since(7d、2w、1mのような形式を受け付けます)、--type、--folder、--tag(繰り返し指定可)、--tag-modeに対応。wave sessions get <id>— 1つのセッションのメタデータ、要約、メモ、タグ、通話詳細を取得。wave sessions update <id>—--title、--notes、--tags、--favorite/--no-favoriteを設定。wave sessions add-folder <session_id> <folder_id>とwave sessions remove-folder— フォルダは排他的ではないため、1つ追加しても他のフォルダは削除されません。wave sessions action-items get <session_id>とwave sessions action-items update <session_id>— アクションアイテムをバージョン情報付きで読み取り、ファイルまたは標準入力から書き戻します。--if-matchを指定すれば、アプリ側で同時編集があった場合に上書きせず拒否させることもできます。wave sessions delete <id>— 完全削除です。--forceを指定しない限り確認を求められます。
コンテンツ
wave search "your query"— セマンティック検索。--limitと--tagで絞り込み可能。wave transcript <id>— 文字起こしを出力します。--formatはtext(デフォルト)、srt、segmentsに対応。--speakersで話者ラベル付きの出力に切り替え、--jsonで生のレスポンスを返します。wave media urls <id>— 署名付きの音声・動画URLを取得。wave media download <id>— 音声を保存します。動画(MP4)が欲しい場合は--video、保存先を指定したい場合は--outputを追加してください。wave bulk [ids...]— 最大50件のセッションをまとめて書き出します。--summaryと--transcriptに対応。wave stats— タイプとプラットフォーム別の件数と長さの集計。
Folders
wave folders list— 名前、ID、セッション数を表示。wave folders create "Customer research" --color "#6D28D9"— 再実行しても安全です。同名のフォルダがあればそれが返されます。
イベントとWebhook
wave events list --ack、wave events ack <cursor>、wave events tail --interval 3 --ack --json— Webhook受信サーバーを構築せずに新しいセッションを取得できます。Waveはトークンごとに読み取り位置を記憶します。wave webhooks list / create / update / test / rotate-secret / delete— プッシュ配信の管理。テストイベントの送信や署名シークレットのローテーションも含まれます。
設定
wave config get、wave config set <key> <value>、wave config pathで、OSの設定ディレクトリ内にあるapi_key、api_url、default_formatを管理できます。wave config pathは正確なファイルパスを表示するので、認証情報を手動で削除したいときに便利です。
スクリプト化しておくと便利なもの
過去1週間分の録音を、文字起こし付きでバックアップする:
wave sessions list --since 7d --limit 50 --json \
| jq -r '.sessions[].id' \
| xargs wave bulk --summary --transcript --json > backup.json新しいセッションを監視し、届くたびに処理する:
wave events tail --interval 3 --ack --json各コマンドはWave Developer APIと1対1で対応しています。つまりCLIでできることは自分のコードからも実行できます。また、コードを書く前にレスポンスの形式を手早く確認するのにもCLIは便利です。
よくある質問
api.wave.co/cliにすべてのコマンドが例付きで掲載されています。ローカルでもwave --help(または各サブコマンドに--helpを付ける)で同じ内容を確認できます。パッケージ自体はnpmjs.com/package/@waveai/cliにあります。
サインインは約1分で打ち切られます。Waveにサインイン済みのブラウザプロファイルで操作を完了させてから、もう一度wave loginを実行してください。ブラウザのないマシンではwave login --token wave_api_...を使ってください。
APIトークンは作成から1年で有効期限が切れます。もう一度wave loginを実行して新しいトークンを発行してください。
はい。その1回のコマンドに対してWAVE_API_KEYを設定してください。保存されている認証情報を変更することなく、一時的に上書きできます。
この記事は役に立ちましたか?
まだお困りですか?