ドキュメントCLIの使い方
CLIの使い方
ターミナルから動画リンクや手元のファイルを文字起こしします。インストール、一括処理、字幕の保存、スクリプトやエージェント向けのJSON出力を説明します。
transcript1コマンドに動画リンクかファイルパスを渡すと、ターミナルで文字起こしを取得できます。YouTube、X、TikTok、Instagram、Facebook、Blueskyのリンクや、手元の音声・動画ファイルを指定してください。ほかの対応プラットフォームと必要なバージョンは以下で説明します。リンクの形式や制限は対応ソースとオプションで確認できます。スタンドアロン版のCLIはNode.jsなしで動きます。
SNSリンクを使う場合は、CLIの1.2.0以降に更新してください。1.1.0以前はYouTubeにしか対応しておらず、それ以外のリンクはAPIに送信する前にエラーになります。更新にはtranscript1 updateを使います。
1.2.0で対応するのは、上記の6プラットフォームです。Twitch、Dailymotion、Pinterest、LinkedIn、Snapchatには、それぞれに対応したリリースが必要です。古いCLIでは、リンクをAPIに送信する前に拒否することがあります。
SNSのリンクには公開投稿のURLを使ってください。動画が複数ある投稿では、最初の動画だけを文字起こしします。使える短縮リンクや制限は対応ソースとオプションを参照してください。
インストール
macOSとLinuxのx64・ARM64環境では、次を実行します。
curl -fsSL https://transcript1.com/install.sh | sh実行ファイルは~/.local/binに入ります。PATHの設定が必要な場合は、インストーラーが手順を表示します。インストール先を変えるには、TRANSCRIPT1_INSTALL_DIRを設定してください。
短縮エイリアスのt1も使えるようになります。zshでは、~/.zshrcにalias transcript1='noglob transcript1'を追加します。これにより、?を含むリンクを引用符なしで渡せます。シェルの設定を変更したくない場合は、TRANSCRIPT1_NO_MODIFY_SHELL=1を指定してください。
Windows x64では、PowerShellで次を実行します。
irm https://transcript1.com/install.ps1 | iexインストール先は%LOCALAPPDATA%\Programs\transcript1です。短縮エイリアスのt1.cmdを追加し、このフォルダーをユーザーのPATHに登録します。インストール後、新しいターミナルを開いてください。
ログイン
ログインには次のコマンドを使います。
transcript1 loginブラウザーでtranscript1.comが開きます。SSH接続中や画面のない環境では、代わりにリンクを表示します。ターミナルとページのコードが一致することを確認し、「Approve」をクリックしてください。CLIは承認後、transcript1 CLI (<computer name>)という名前のキーを保存します。作成したキーは「API keys」で確認できます。
リンクだけを表示してブラウザーを開かない場合は、transcript1 login --no-browserを実行します。
手持ちのキーを使う場合は、transcript1 login --with-keyを実行して貼り付けます。標準入力からも渡せます:transcript1 login < key.txt。
CIやエージェントでは、環境変数TRANSCRIPT1_API_KEYにキーを設定します。環境変数の値は、保存済みのキーより優先されます。対話用のターミナルもキーもないエージェントは、transcript1 login < /dev/nullを実行し、表示された承認リンクをユーザーに送れます。
transcript1 logoutでCLIのキーを失効させ、端末から削除できます。失効できなかった場合も端末のキーは削除し、「API keys」での失効を案内します。貼り付けて登録したキーは、「API keys」で失効させてください。
動画リンクから文字起こしする
transcript1 'https://youtu.be/dQw4w9WgXcQ'完了を待ってから、文字起こしテキストを標準出力(stdout)に表示します。YouTube、X、TikTok、Bluesky、Dailymotion、LinkedInでは、動画の元の言語の字幕を優先します。使える字幕がなければAI文字起こしに切り替えます。進捗は標準エラー出力(stderr)に表示します。
zshではリンクを引用符で囲むと安全です。引用符がないと、&はコマンドを分割します。?もファイル名のパターンとして解釈しますが、インストーラーが追加するエイリアスを使えば回避できます。
ファイルを文字起こしする
transcript1 interview.mp3
transcript1 -f srt -o interview.srt interview.mp3ファイルは2GB(2,000,000,000バイト)までです。拡張子はmp3、wav、m4a、flac、ogg、opus、mp4、mov、webm、mkvに対応しています。CLIがアップロードを行い、文字起こしの完了まで待ちます。
複数のファイルやリンクをまとめて処理する
リンクやファイルパスを複数並べるか、フォルダーを指定します。
transcript1 interview.mp3 lecture.mp4
transcript1 -o transcripts/ ./recordings
transcript1 --jobs 4 -o transcripts/ interview.mp3 'https://youtu.be/dQw4w9WgXcQ'recordings/*.mp3のようなパターンも使えます。Windowsでも同じです。フォルダーを指定すると、直下のメディアファイルを名前順に処理します。入力が複数の場合は、デフォルトで入力ごとにファイルを作り、./transcriptsに保存します。同時処理数は--jobsで1〜20に設定できます。デフォルトは2です。
入力に-を指定すると、標準入力を読み込みます。リンクかファイルパスを1行ずつ渡してください。macOSやLinuxのシェルでは、次のように使います。
transcript1 -o transcripts/ - < inputs.txt空行と#で始まる行は無視します。同じ入力が重複していても、処理するのは1回だけです。
入力が1つなら、-oで保存先のファイル名を指定します。ただし、既存のフォルダーか、末尾が/のパスを渡した場合は、そのフォルダーに保存します。入力が複数なら、-oは保存先フォルダーの指定です。フォルダーがなければ自動で作成します。
YouTubeリンクとローカルファイルは、保存先のファイルがすでにあればスキップします。再処理する場合は--overwriteを付けてください。
transcript1 --overwrite -o transcripts/ ./recordings保存形式とオプション
| オプション | 内容 |
|---|---|
-f、--format | text(デフォルト)、srt、vtt、jsonから選びます。JSONはAPIの文字起こしオブジェクトです。 |
--speakers | 話者分離を有効にし、Speaker 1、Speaker 2などのラベルを付けます。 |
--timestamps | 各行の先頭に[hh:mm:ss]を付けます。text形式専用です。 |
--language | ISO 639-1の言語コードを指定します。デフォルトはautoです。 |
--source | auto(デフォルト)かsttを指定します。YouTube、X、TikTok、Bluesky、Dailymotion、LinkedInでは、使える字幕があればcaptionsも指定できます。captions(字幕のみ)は音声をダウンロードせず、STTにも切り替えません。 |
--fresh | リンクの文字起こしで、過去24時間以内の処理済みデータを再利用せずに作り直します。 |
話者分離とタイムスタンプを付ける例です。
transcript1 --speakers --timestamps --language en interview.mp3--speakersと--source captionsは併用できません。autoで話者分離を有効にすると、字幕を使わず音声を処理します。字幕を使えるのはYouTubeとXに加え、TikTok、Bluesky、Dailymotion、LinkedInです。YouTube以外の字幕は、自動生成字幕でもセグメント単位のタイムスタンプのみです(words: null)。対応状況や言語の指定方法は対応ソースとオプションを参照してください。
スクリプトやエージェントから使う
シェルを使えるエージェントなら、CLIのインストールとTRANSCRIPT1_API_KEYの設定だけで、transcript1 <link>やtranscript1 <file>を実行できます。MCP経由で使う場合は、MCPサーバーの設定を参照してください。
機械で読み取る場合は--jsonを付けます。各入力の処理が終わるたびに、標準出力へJSONを1行ずつ出力します。進捗、処理の集計、更新通知は表示しません。
transcript1 --json 'https://youtu.be/dQw4w9WgXcQ'処理が終わったジョブは、APIの文字起こしオブジェクトにinputとreusedを加えて返します。テキストをファイルに保存した場合は、transcriptの代わりにfileを含めます。IDの発行前にエラーが起きた場合は、inputとerrorを返します。errorにはcodeとmessageが入ります。スキップした入力では、inputとskipped(existsまたはout_of_minutes)を返し、該当する場合はfileも含めます。existsになるのはYouTubeリンクとローカルファイルだけです。
入力が1つで-oを付けない場合、--jsonは文字起こし本文もオブジェクトに含め、-fは無視します。複数の入力に-oを付けずに使うと、本文は./transcriptsに保存し、JSONにはtranscriptではなくfileを含めます。ファイルに保存するときの形式は-fで指定します。進捗と集計だけを非表示にするには、-qか--quietを使います。文字起こしとエラーは引き続き出力します。
完了を待たずに開始し、あとから文字起こしを取得することもできます。
transcript1 --no-wait interview.mp3
transcript1 get <id><id>には、最初のコマンドが出力したIDを入れます。--no-waitはIDとステータスを表示し、--jsonも付けた場合はオブジェクトで返します。getはジョブが終了するまで待ちます。-f、-o、--timestamps、--no-wait、--json、-qも指定できます。
CLIを更新する
transcript1 update標準エラー出力がターミナルの場合、CLIは24時間に1回まで更新を確認します。新しいリリースがあれば通知します。確認自体を止めるには、TRANSCRIPT1_NO_UPDATE_CHECK=1を設定してください。--jsonや-qを使う場合も、更新通知は表示しません。
終了コード
| コード | 内容 |
|---|---|
| 0 | 全入力の処理に成功したか、保存済みのファイルがあるためスキップしました。後者はYouTubeリンクとローカルファイルが対象です。 |
| 1 | 失敗した入力、または分数不足でスキップした入力が1つ以上あります。 |
| 2 | コマンドの指定やログインに問題があります。 |
| 130 | 処理を中断しました。 |
コマンドとフラグの一覧は、transcript1 --helpで確認できます。引数なしのtranscript1でも表示します。
最終更新 2026年10月18日