
YouTubeの文字起こしをダウンロード
Prosey は、YouTube から動画の文字起こしをダウンロードして表示する CLI ツールです。何時間も無駄にせず、必要な情報を素早く得られます。
主なユースケースは以下の通りです。
どちらの用途でも、システム上に AI アシスタントが必要です(デフォルト: opencode。独自のものを設定するには prosey config を使用してください)。
シンタックスハイライターがシステムに検出されると、カラー出力が適用されます。
Prosey は、ネイティブの JSON 形式をそのまま出力または保存することもできます。
| 機能 | 説明 |
|---|---|
| 💡 要約 | 動画の文字起こしを取得して要約する |
| 📖 読む | 文字起こしを取得し、Markdown 形式で整形して表示する |
| 📋 文字起こしダウンロード | YouTube の文字起こしをプレーンテキストまたは JSON として取得する |
| 🤖 AI 要約 | 文字起こしを任意の AI エージェント(opencode, Claude, Copilot, Codex)にパイプする |
| 🎨 スマートページャー | bat、glow、mdcat がインストールされている場合、自動でシンタックスハイライトを適用(カスタムページャー設定可) |
| 🛠️ カスタマイズ | prosey config で設定ファイルにアクセス・編集 / プロンプトをカスタマイズ |
| 💾 ディスクキャッシュ | 文字起こしと要約をディスクにキャッシュし、即座に再表示 |
| 📄 対応フォーマット | プレーンテキストと JSON |
npx ですぐに試せます。
npx @tacone/prosey 771PQEDeRmw
npx @tacone/prosey https://youtu.be/771PQEDeRmw --lang es -o transcript.txt
お好みのパッケージマネージャーでグローバルインストールします。
npm install -g @tacone/prosey
# or
yarn global add @tacone/prosey
# or
pnpm add -g @tacone/prosey
# or
bun install -g @tacone/prosey
その後、どこでも使用できます。
prosey 771PQEDeRmw
開発には Bun を使用しています。スクリプト、パッケージ管理、TypeScript ソースの直接実行に利用します。
git clone https://github.com/tacone/prosey.git
cd prosey
bun install
bun run start -- 771PQEDeRmw
prosey [options] <video controls-url-or-id>
prosey read [options] <video controls-url-or-id>
prosey info [options] <video controls-url-or-id>
prosey summarize [options] <video controls-url-or-id>
prosey config
prosey help
summarize がデフォルトのコマンドです。そのため prosey <id> で AI 要約が実行されます。
prosey read <id> を使用すると、リッチに整形された文字起こしをダウンロードして表示します。
summarize コマンドは文字起こしを取得し、設定の [summarize] セクションのプロンプトを先頭に付加して、設定された AI コマンドにパイプします。
read コマンドは文字起こしをダウンロードし、stdout に表示します(プレーンテキスト、Markdown、または JSON)。AI 処理が不要な場合に便利です。
info コマンドは動画のメタデータ(タイトル、チャンネル、再生時間、視聴回数)を表示します。
config コマンドは設定ファイルを $EDITOR で開きます。$EDITOR が未設定の場合は、設定ファイルのパスが表示されます。
help コマンドは --help と同じヘルプメッセージを表示します。
# Summarize (AI summary + formatting + syntax highlighting)
prosey 771PQEDeRmw
# Summarize (same as above)
prosey summarize 771PQEDeRmw
# Transcribe (AI summary + formatting + syntax highlighting)
prosey read 771PQEDeRmw
# Show video metadata
prosey info 771PQEDeRmw
# Edit config in $EDITOR
prosey config
# List available languages
prosey read https://youtu.be/771PQEDeRmw --list
# Specify language
prosey read https://youtu.be/771PQEDeRmw --lang es
# Display JSON (no AI transcription)
prosey read 771PQEDeRmw
# Display plain text (no AI transcription)
prosey read 771PQEDeRmw
# Save transcript to file
prosey read 771PQEDeRmw -o transcript.txt
--json を使用すると、出力はオブジェクトの配列になります。
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
JSON モードでは timestamp は常に存在します。JSON は構造化データであるため、動画詳細は(暗黙的に)抑制されます。
このプロジェクトは開発に Bun を使用しています。
bun run typecheck # TypeScript check
bun run start # Run the CLI from source
bun run test # Run unit tests
bun run build # Compile Node bundle to bin/prosey
npm に公開する前に、prepack フックによって bun run build が自動実行され、bin/prosey に Node 互換の JS バンドルが生成されます。
Prosey は TOML ファイルから設定を読み取ります。場所は XDG Base Directory Specification に従います(~/.config/prosey/config.toml)。または、PROSEY_CONFIG_PATH 環境変数を設定してカスタムパスを使用することもできます。
設定ファイルは初回実行時にデフォルト値で自動生成されます。--reset-config を使用していつでもデフォルトに戻せます。
pager文字起こしと要約出力のページャーコマンド。デフォルトは "auto" で、次のうち最初に見つかったものを検出します: bat -lmd --style plain → glow -p → mdcat -l -p → less。カスタムコマンド(例: "less -R")に設定して上書きすることもできます。PROSEY_PAGER 環境変数はこの設定よりも優先されます。
[summarize][summarize] セクションは summarize コマンドを設定します。
| キー | 説明 |
|---|---|
prompt | 文字起こしの先頭に付加する指示 |
command | プロンプトを標準入力で受け取るシェルコマンド |
PROSEY_PAGERページャーコマンドを設定する環境変数。pager 設定値よりも優先されます。"auto" または空に設定すると自動検出になります。
文字起こしと要約は /tmp/prosey/ にキャッシュされます。同じ動画とオプションで繰り返し実行すると即座に結果が返り、オフラインでも動作します。--no-cache を使用するとキャッシュ読み取りをスキップし、強制的に新規取得します。
prosey summarize を実行すると、コマンドはその動画のキャッシュディレクトリ内で実行されます。これにより、AI エージェントがカレントフォルダのプロジェクト固有ファイル(AGENTS.md や CLAUDE.md など)を拾うのを防ぎ、そのディレクトリ外のファイルを変更する能力も制限されます。
| コード | 意味 |
|---|---|
0 | 成功 |
65 | 無効な動画 URL または ID |
Prosey は、youtube-transcript-plus ライブラリを介して YouTube の Innertube API を使用しています。API キーやブラウザ自動化は不要です。
このツールは、手動で作成されたキャプションと自動生成された文字起こし(YouTube の音声認識)の両方に対応しています。自動検出は、YouTube のプレイヤー応答が提供する順序で言語をフォールバックします。
| フラグ | 説明 |
|---|
--lang <code> | 言語コード(例: en, fr)。省略時は自動検出。 |
-t, --timestamps | テキスト出力の各行に [MM:SS] を先頭に付加。 |
--list | 動画で利用可能な文字起こし言語を一覧表示して終了。 |
-o, --output <path> | 出力をファイルに書き込み(stdout の代わり)。 |
--json | 文字起こしを JSON 配列で出力。各要素は text, offset(秒), duration, timestamp を含む。 |
--text | プレーンテキストで出力(prosey read のデフォルト)。 |
--details | 動画詳細(タイトル、チャンネル、再生時間、視聴回数、説明)を文字起こしの先頭に付加(デフォルト)。 |
--no-details | 動画詳細を付加せず、文字起こしのみ出力。 |
--no-decode-entities | HTML エンティティをそのまま保持(例: ')。テキストモードではデフォルトでデコードされる。 |
--no-cache | キャッシュ読み取りをスキップし、強制的に新規取得。 |
--no-format | 要約出力時の prettier Markdown 整形をスキップ。 |
-q, --quiet | すべての stderr ログを抑制。 |
-v, --verbose | デバッグ情報を stderr に出力。 |
--no-pager | stdout 出力のページャーを無効化(デフォルトは自動検出)。 |
--pager | stdout 出力にページャーを使用(デフォルト)。 |
--reset-config | 設定ファイルをデフォルトにリセットして終了。 |
--help | ヘルプメッセージを表示して終了。 |
--version | バージョン番号を表示して終了。 |