
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 index
prosey render
prosey config
prosey help
summarize がデフォルトのコマンドなので、prosey <id> は AI 要約を実行します。
prosey read <id> を使用すると、リッチに整形された文字起こしをダウンロードして表示します。
summarize コマンドは文字起こしを取得し、[summarize] 設定セクションのプロンプトを先頭に付加して、
設定された AI コマンドにパイプします。
read コマンドは文字起こしをダウンロードして stdout に出力します(プレーンテキスト、
Markdown、または JSON)。AI 処理が不要な場合に便利です。
info コマンドは動画のメタデータ(タイトル、チャンネル、再生時間、再生回数)を表示します。
index コマンドはドキュメントインデックスを再構築し、ブラウザで開きます。
インデックスには、データディレクトリに保存されているすべての要約と文字起こしが一覧表示され、
各 summarize/transcribe 実行後に自動的に再構築されます。コンテンツページの Prosey ロゴをクリックすると、
インデックスに戻ります。
render コマンドは、キャッシュされた Markdown からすべての HTML ページを再生成し
(ネットワークや AI 処理なし)、インデックスを書き換えます。
config コマンドは、設定ファイルを $EDITOR で開いて編集します。$EDITOR が
設定されていない場合は、設定ファイルのパスが出力されます。
help コマンドは --help と同じヘルプメッセージを表示します。
# 要約(AI 要約 + 整形 + シンタックスハイライト)
prosey 771PQEDeRmw
# 要約(上記と同じ)
prosey summarize 771PQEDeRmw
# 文字起こし(AI 要約 + 整形 + シンタックスハイライト)
prosey read 771PQEDeRmw
# 動画のメタデータを表示
prosey info 771PQEDeRmw
# $EDITOR で設定を編集
prosey config
# 利用可能な言語を一覧表示
prosey read https://youtu.be/771PQEDeRmw --list
# 言語を指定
prosey read https://youtu.be/771PQEDeRmw --lang es
# JSON を表示(AI 文字起こしなし)
prosey read 771PQEDeRmw
# プレーンテキストを表示(AI 文字起こしなし)
prosey read 771PQEDeRmw
# 文字起こしをファイルに保存
prosey read 771PQEDeRmw -o transcript.txt
--json を使用すると、出力はオブジェクトの配列になります:
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
timestamp は JSON モードでは常に存在します。動画の詳細は抑制されます
(JSON は構造化データであるため、黙って抑制されます)。
このプロジェクトは開発に Bun を使用しています。
bun run typecheck # TypeScript チェック
bun run start # ソースから CLI を実行
bun run test # ユニットテストを実行
bun run build # Node バンドルを bin/prosey にコンパイル
npm への公開前に、bun run build が prepack フックを介して自動的に実行され、
Node 互換の JS バンドルが bin/prosey に生成されます。
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 | stdin を介してプロンプトを受け取るシェルコマンド |
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 | summarize 出力の prettier Markdown 整形をスキップします。 |
-q, --quiet | すべての stderr ログを抑制します。 |
-v, --verbose | デバッグ情報を stderr に出力します。 |
--no-pager | stdout 出力のページャーを無効にします(デフォルトでは自動検出)。 |
--pager | stdout 出力にページャーを使用します(デフォルト)。 |
--reset-config | 設定ファイルをデフォルトにリセットして終了します。 |
--help | ヘルプメッセージを表示して終了します。 |
--version | バージョン番号を表示して終了します。 |