ポッドキャスト文字起こし取得ツール
5つのサポートポッドキャストから文字起こしを取得します。Tier 2(RSS+Groq Whisper)が推奨アプローチです。高速・無料で、すべてのポッドキャストで最も信頼性が高いです。Tier 1の無料ソースはベストエフォート(利用可能なものに限る)です。Tier 3のTaddy APIはプレミアム/商用オプションです。
クイックリファレンス
# 最新エピソードの文字起こしを取得(最適な方法を自動検出)
python scripts/get_transcript.py "Lenny's Podcast" --latest
# エピソードタイトルまたは番号で検索
python scripts/get_transcript.py 20vc --episode "Marc Andreessen"
python scripts/get_transcript.py dwarkesh --episode 15
# 特定の方法を強制
python scripts/get_transcript.py "cheeky pint" --latest --method whisper
python scripts/get_transcript.py a16z --latest --method taddy
# ファイルに保存
python scripts/get_transcript.py lennys --latest --output transcript.md
# サポートされているポッドキャスト一覧
python scripts/get_transcript.py --list-podcasts
サポートされているポッドキャスト
| ポッドキャスト | Tier 1(ベストエフォート) | Tier 2 RSS+Whisper [推奨] | Tier 3 Taddy(プレミアム) |
|---|---|---|---|
| Lenny's Podcast | GitHub アーカイブ(269件の文字起こし) | ✅ Substack RSS | ✅ 対応 |
| Dwarkesh Podcast | ウェブサイトスクレイピング + Substack PDF | ✅ Substack RSS | ✅ 対応 |
| Cheeky Pint | (なし) | ✅ Transistor.fm RSS | ✅ 対応 |
| 20VC | Substack PDF | ✅ Libsyn RSS | ✅ 対応 |
| A16z Podcast | ウェブサイトスクレイピング | ✅ Simplecast RSS | ✅ 対応 |
実装
1. 依存関係のインストール
# コア(常に必要)
pip install requests
# クラウド文字起こし(推奨 — 高速、無料枠あり)
pip install groq
export GROQ_API_KEY="your-key" # https://console.groq.com で取得
# ローカル文字起こし(無料、約5GBのRAMが必要)
pip install faster-whisper
# 音声圧縮(Groqの25MB制限対応 — Windows: winget/scoop)
# winget install ffmpeg または scoop install ffmpeg
# Taddy API(商用、オプション)
export TADDY_API_KEY="your-key" # https://taddy.org で取得
2. 文字起こしを取得する
スクリプトは自動で最適な方法を選択します。Tier 2がデフォルトの推奨方法です:
Tier 1 → Tier 2(推奨) → Tier 3
(ベストエフォート) (Whisper) (Taddy APIプレミアム)
Tier 1: 無料直接ソース(ベストエフォート、限定的な利用可能性)
- Lenny's:
ChatPRD/lennys-podcast-transcriptsをクローンし、タイトルで検索 - Dwarkesh: Substack PDFスクレイピング
- 20VC: Substack PDFスクレイピング
- A16z: ウェブサイトスクレイピング
- Cheeky Pint: Tier 1ソースは利用不可
- 注: Tier 1ソースはベストエフォートかつ限定的です。Tier 2(RSS+Whisper)が推奨アプローチです。
Tier 2: RSS + Whisper文字起こし [推奨]
- ポッドキャストRSSフィードからMP3をダウンロード
- 25MBを超える場合は圧縮(ffmpeg)
- Groq Whisper APIで文字起こし(無料枠、音声1時間あたり約10秒)
- 高速、無料、登録されているすべてのポッドキャストで動作
- すべてのユースケースでデフォルト推奨
Tier 3: Taddy API(商用/プレミアム)
TADDY_API_KEYが必要(月額75ドル以上)- 大規模またはプロダクションの文字起こしニーズ向け
- 自動文字起こしで5つのポッドキャストすべてに対応
3. AIで分析する
文字起こしを取得したら、エージェントに渡して分析できます:
この [ポッドキャスト] の文字起こしがあります。以下のことはできますか?
1. 主な議論の要約
2. 実用的な洞察を3つ抽出
3. 議論の余地のある主張を特定
4. 同じトピックの [他のポッドキャスト] と比較
サポートされているワークフロー
単一エピソード
| シナリオ | コマンド |
|---|---|
| 最新エピソード | get_transcript.py "Lenny's Podcast" --latest |
| タイトル指定の特定エピソード | get_transcript.py 20vc --episode "Sam Altman" |
| 番号指定のエピソード | get_transcript.py dwarkesh --episode 42 |
| Whisper文字起こしを強制(Tier 2、推奨) | get_transcript.py a16z --latest --method whisper |
| Taddy APIを強制(プレミアム) | get_transcript.py lennys --latest --method taddy |
| Markdownに保存 | get_transcript.py cheeky-pint --latest --output episode.md |
| JSON出力 | get_transcript.py dwarkesh --latest --json |
クロスポッドキャスト検索とバッチ
| シナリオ | コマンド |
|---|---|
| 全ポッドキャストをキーワード検索 | get_transcript.py --search "Marc Andreessen" |
| ゲスト名で検索 | get_transcript.py --guest "Sam Altman" |
| 1つのポッドキャスト内を検索 | get_transcript.py "Lenny's Podcast" --search "vibe coding" |
| 直近Nエピソードをバッチ文字起こし | get_transcript.py "Dwarkesh Podcast" --last 5 |
| 検索して上位マッチを文字起こし | get_transcript.py --search "AI safety" --transcribe |
| カスタム数のパイプライン | get_transcript.py --search "scaling laws" --transcribe --transcribe-count 5 |
| フィルタリング検索パイプライン | get_transcript.py "A16z Podcast" --search "crypto" --transcribe |
出力構造
バッチ文字起こしは output/ にポッドキャストごとのサブディレクトリで保存されます:
output/dwarkesh-podcast/Dwarkesh Podcast_2024-01-15_agi-is-still-30-years-away.md
output/20vc/20 Minutes VC (20VC)_2024-03-10_funding-round-analysis.md
各ファイルはYAMLフロントマターのヘッダーを含みます:
---
podcast: Dwarkesh Podcast
episode: AGI is still 30 years away
date: 2024-01-15
url: https://...
source: whisper
---
ポッドキャストレジストリ
scripts/podcasts.json にあるレジストリは、各ポッドキャストのRSSフィード、文字起こしソース、APIエンドポイントをマッピングします。新しいポッドキャストを追加するには:
{
"id": "new-podcast",
"name": "New Podcast",
"rss": "https://example.com/feed.xml",
"transcript_sources": {
"primary": {"type": "website_scrape", "url": "https://example.com"}
}
}
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| "No transcript found"(文字起こしが見つからない) | Tier 2(RSS+Whisper)が推奨アプローチです。自動モードが失敗した場合は --method whisper で強制してみてください。 |
| RSS取得失敗 | RSSフィードは変更される可能性があります。scripts/podcasts.json で現在のURLを確認してください。 |
| 音声ダウンロードが遅い | 大きなMP3は低速回線では数分かかることがあります。 |
| Groqのレート制限 | 待機するか、ローカルの faster-whisper に切り替えてください。 |
| Taddyが文字起こしを返さない | 一部のエピソードに文字起こしがない場合があります。--method whisper を試してください。 |
| ポッドキャストがレジストリにない | scripts/podcasts.json に追加してください。 |
| WindowsでのUnicodeエラー | 修正済み: スクリプトは自動でstdoutをUTF-8に再設定します。保存ファイルはUTF-8エンコーディングを使用します。 |
| Groq用の音声が25MBを超える | ffmpegをインストール: winget install ffmpeg(Windows)または brew install ffmpeg(macOS) |
RSSフィードステータス(2026年6月現在)
| ポッドキャスト | 古いフィード(壊れている) | 現在のフィード |
|---|---|---|
| Cheeky Pint | feeds.transistor.fm/the-cheeky-pint(404) | feeds.transistor.fm/cheeky-pint-with-john-collison |
| 20VC | feeds.simplecast.com/3GxrMqOd(404) | feeds.libsyn.com/61840/rss |
| A16z | feeds.simplecast.com/0cJfpoz2(404) | feeds.simplecast.com/JGE3yC0V |
よくある間違い
- APIキーを忘れる:
GROQ_API_KEYを環境変数または.envファイルに設定してください。 - Tier 1の無料ソースに依存する: Tier 1はベストエフォートかつ限定的です。常にTier 2(RSS+Whisper)にフォールバックしてください。これが推奨される方法です。
- 最初にLenny'sリポジトリをクローンしない: Tier 1が動作するには、GitHubアーカイブをローカルにクローンする必要があります。
TADDY_API_KEYなしで--method taddyを使用する: サイレントにフォールスルーします。キーを設定するか、自動モードを使用してください。