Apple Podcasts Transcript
@vcjdeboer/apple-podcasts-transcriptv2026.08.14.1
01README
Headless Apple Podcasts transcript fetcher. Reads the local Apple Podcasts library (MTLibrary.sqlite) to find episodes, and downloads their TTML transcripts via the FetchTranscript binary (Apple's private frameworks) with a Podcasting 2.0 <podcast:transcript> RSS fallback. Pure subprocess + HTTP; no GUI. Two methods: search — MTLibrary substring lookup returning matching episodes; fetch — by store_id, tries FetchTranscript then RSS, writes TTML + plaintext to the output directory and records episode metadata as data.
02Models
@vcjdeboer/apple-podcasts-transcriptv2026.08.14.1apple_podcasts_transcript.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| mtlibraryPath | string | |
| fetchTranscriptBin | string | |
| outputDir | string | |
| feedTimeoutSec | number | |
| keepTtml | boolean |
fn search(podcast: string, episode: string, limit: number, source: enum)
Find episodes by podcast and/or episode title. source=library (default) reads local MTLibrary.sqlite; source=catalog queries Apple's public catalog (no app/library/sign-in needed, finds un-synced episodes)
| Argument | Type | Description |
|---|---|---|
| podcast | string | |
| episode | string | |
| limit | number | |
| source | enum |
fn fetch(storeId: string)
Fetch an episode's transcript by Apple store_id: FetchTranscript binary first, RSS `<podcast:transcript>` fallback; writes TTML + plaintext to outputDir
| Argument | Type | Description |
|---|---|---|
| storeId | string |
Resources
matches(infinite)— Result of a search (local library or public Apple catalog): candidate episodes with store_id, feed and enclosure URLs
episode(infinite)— A fetched episode: metadata + on-disk paths to the TTML and plaintext transcript
03Previous Versions
2026.07.14.1
2026.07.10.4
2026.07.10.3
2026.07.10.2
2026.07.10.1
04Stats
A
100 / 100
Downloads
0
Archive size
18.7 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
05Platforms
06Labels