팟캐스트 대본 가져오기 도구
5개 지원 팟캐스트의 대본(트랜스크립트)을 가져옵니다. Tier 2(RSS+Groq Whisper)가 권장 방식입니다. 빠르고 무료이며 모든 팟캐스트에서 가장 안정적입니다. Tier 1 무료 소스는 최선의 방식(best-effort)이며 가용성이 제한됩니다. 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의 25 MB 제한 대응 — 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" |
| 특정 팟캐스트 내 검색 | 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 frontmatter 헤더를 포함합니다:
---
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"}
}
}
문제 해결
| 문제 | 해결 방법 |
|---|---|
| "대본을 찾을 수 없음" | Tier 2(RSS+Whisper)가 권장 방식입니다. 자동 모드가 실패하면 --method whisper로 강제해 보세요. |
| RSS 가져오기 실패 | RSS 피드가 변경될 수 있습니다. scripts/podcasts.json에서 현재 URL을 확인하세요. |
| 오디오 다운로드 느림 | 큰 MP3 파일은 느린 연결에서 몇 분 걸릴 수 있습니다. |
| Groq 속도 제한 | 기다리거나 로컬 faster-whisper로 전환하세요. |
| Taddy가 대본 반환 안 함 | 일부 에피소드에 대본이 없을 수 있습니다. --method whisper를 시도해 보세요. |
| 레지스트리에 없는 팟캐스트 | scripts/podcasts.json에 추가하세요. |
| Windows에서 유니코드 오류 | 수정됨: 스크립트가 자동으로 stdout을 UTF-8로 재구성하며, 저장된 파일은 UTF-8 인코딩을 사용합니다. |
| Groq용 오디오 > 25 MB | ffmpeg 설치: winget install ffmpeg (Windows) 또는 brew install ffmpeg (macOS) |
RSS 피드 상태 (2026-06 기준)
| 팟캐스트 | 이전 피드 (깨짐) | 현재 피드 |
|---|---|---|
| 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 키를 잊는 경우: 환경 변수나
.env파일에GROQ_API_KEY를 설정하세요. - Tier 1 무료 소스에만 의존하는 경우: Tier 1은 최선의 방식이며 제한적입니다. 항상 권장 방식인 Tier 2(RSS+Whisper)로 대체하세요.
- Lenny's 저장소를 먼저 클론하지 않는 경우: Tier 1이 작동하려면 GitHub 아카이브를 로컬에 클론해야 합니다.
TADDY_API_KEY없이--method taddy를 사용하는 경우: 조용히 실패합니다. 키를 설정하거나 자동 모드를 사용하세요.