Skip to content

v1.2.0 — Podcast transcript UI pipeline

Choose a tag to compare

@surendranb surendranb released this 03 Aug 03:37
· 23 commits to main since this release

What's new

Verified end-to-end Apple Podcasts transcript pipeline (drives the native Podcasts app via Accessibility):

  • get_recent_podcast_episodes — now filters by fromDate/toDate (inclusive) and query (title substring). Fixed a silent date-filter bug: strftime returns TEXT and INTEGER >= TEXT is always false in SQLite comparisons — now uses unixepoch().
  • open_podcast_episode — rewritten from an unverified deep link to the proven UI flow: Cmd+F, clipboard-paste the title (keystroke typing corrupts punctuation), open the top search result.
  • play_podcast_episode (new) — AX-discovers the play pill (position varies per episode page), clicks it, polls the TTML cache up to 15s for the fresh transcript download, returns path + transcriptId.
  • pause_podcast_episode (new) — Controls → Pause with double-pause guard. Note: the DB play_state column is unreliable (stays 1 while paused); the playhead freeze is the source of truth.
  • get_podcast_transcript — group-container TTML cache paths (app-container paths are dead after a Podcasts app data migration).

Verified

  • Fresh download: searched → opened → played → transcript detected in ~1.5s → paused (Micky Malka / Ribbit Capital)
  • Replay correctly reports already-cached (no re-download)
  • Smoke suite 19/19 checks pass (40 tools)

Misc

  • Skill doc rewritten with the 5-step pipeline: ~/.config/opencode/skills/macos-podcast-transcript/SKILL.md
  • Linear: SUR-214 closed (work summary/RCA)