ECMAScript仕様輪読会のための、イベント管理、YouTube字幕取得およびGemini AIによる要約生成ツールです。
このツールは、輪読会のイベント情報をYAML形式で管理し、アーカイブから字幕をダウンロードし、Gemini CLIを使用して詳細な要約(Markdown形式)を生成します。
npm install -g @google/gemini-cliYouTube Data APIを使用するために、Google OAuth 2.0認証を設定します。
pnpm run auth
このコマンドを実行すると:
~/.local/esspec/ に保存されますConnpassイベントテンプレート生成に必要な環境変数を設定します。
export ESSPEC_ZOOM_URL="https://zoom.us/j/..."
export ESSPEC_DISCORD_URL="https://discord.gg/..."
これらの環境変数を永続化するには、シェルの設定ファイル(.bashrc, .zshrc など)に追加してください。
新しいイベントを一括でセットアップするには、以下のコマンドを使用します:
pnpm run setup-event <回数>
例:
pnpm run setup-event 93
このコマンドは以下を自動実行します:
create-event)create-broadcast)generate-connpass-texts)実行中に以下の情報を入力するプロンプトが表示されます:
必要に応じて、各ステップを個別に実行することもできます。
新しい輪読会のイベントを作成します。
pnpm run create-event <回数>
例:
pnpm run create-event 93
コマンドを実行すると、以下の情報を入力するプロンプトが表示されます:
y で提案を採用、n で手動入力、または直接カスタム日時を入力できますYYYY/MM/DD または YYYY/MM/DD HH:MM入力後、イベント情報が events/event-<回数>.yaml に保存されます。
イベント情報には以下が含まれます:
create-broadcast実行時に自動追加)YouTube Live配信を作成し、配信URLをイベントファイルに保存します。
pnpm run create-broadcast <回数>
例:
pnpm run create-broadcast 93
このコマンドは:
既にYouTube URLが設定されている場合は、更新または新規作成を選択できます。
Connpassイベントページ作成用のテンプレートファイルを生成します。
pnpm run generate-connpass-texts <回数>
例:
pnpm run generate-connpass-texts 93
このコマンドは tmp/connpass/ に以下のファイルを生成します:
event-<回数>-body.md - イベント本文(タイムテーブル、参加条件などを含む)event-<回数>-participant-info.md - 参加者への情報(Zoom、YouTube Live、Scrapbox、DiscordのURL)event-<回数>-message.md - 開催メッセージ(参加者への連絡用)event-<回数>-info.txt - イベント情報(タイトル、番号、日時)これらのファイルをConnpassイベントページの作成時にコピー&ペーストして使用します。
イベント配信後、アーカイブから字幕をダウンロードします。
pnpm run download-caption <回数>
例:
pnpm run download-caption 42
YouTube URLは、イベントファイルに保存されたURLから自動的に取得します(create-broadcast実行時に保存されます)。
ダウンロードされた字幕ファイルは以下に保存されます:
tmp/captions/caption-<回数>.srt - 元のSRT形式tmp/captions/caption-<回数>.txt - テキスト形式(タイムスタンプ除去済み)ダウンロードした字幕ファイルをもとに、Gemini AIを使って要約を生成します。
pnpm run generate-summary <回数>
例:
pnpm run generate-summary 42
生成された要約ファイルは summaries/summary-<回数>.md に保存されます。
# 型チェック
pnpm run typecheck