plugins/wwdc-plugin/skills/wwdc-transcript/SKILL.md
Extract timestamped transcripts from WWDC session videos. Use this skill whenever the user wants to read, search, or get the transcript of a WWDC session or Apple developer video — even if they just say something like "what did they say about concurrency in that talk" or "get me the transcript for session 230". Also use this when the user provides a developer.apple.com/videos URL and wants to know what the video covers.
npx skillsauth add memfrag/apparata-plugins wwdc-transcriptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill extracts timestamped transcripts from WWDC session pages on developer.apple.com. Each transcript line includes the time offset in seconds and the spoken text.
WWDC session pages embed transcripts as HTML with <span data-start="N"> elements inside a #transcript-content section. The bundled script fetches the page and parses these into a clean JSON array.
Run the bundled script with a session URL:
# Human-readable with timestamps
python3 <skill-dir>/scripts/wwdc_transcript.py https://developer.apple.com/videos/play/wwdc2025/230/
# JSON output
python3 <skill-dir>/scripts/wwdc_transcript.py https://developer.apple.com/videos/play/wwdc2025/230/ --json
Or import as a module:
import sys; sys.path.insert(0, '<skill-dir>/scripts')
from wwdc_transcript import get_transcript
transcript = get_transcript("https://developer.apple.com/videos/play/wwdc2025/230/")
# Returns: [{"time": 7.0, "text": "Hey, I'm Anton..."}, ...]
Replace <skill-dir> with the actual path to this skill's directory.
--json)[
{"time": 7.0, "text": "Hey, I'm Anton, an engineer on the system experience team."},
{"time": 11.0, "text": "In this session, you'll meet AlarmKit,"},
{"time": 13.0, "text": "a framework that allows you to create alarms in your app."}
]
time — seconds from the start of the video (float)text — the spoken text for that line[0:07] Hey, I'm Anton, an engineer on the system experience team.
[0:11] In this session, you'll meet AlarmKit,
[0:13] a framework that allows you to create alarms in your app.
Use the wwdc-catalog skill to find session URLs, then extract transcripts:
# Get the webPermalink from a catalog content item
url = session["webPermalink"] # e.g. https://developer.apple.com/videos/play/wwdc2025/230
transcript = get_transcript(url)
ValueError if no transcript section is found.time field can be used to link directly to that point in the video by appending ?time=N to the session URL.testing
Download WWDC session videos in HD or SD quality. Use this skill whenever the user wants to download a WWDC video, save a session video to disk, or get the video file for a specific WWDC talk. Supports lookup by URL, session ID (e.g. "wwdc2025/230"), session number, or title. Also use when the user says things like "download the AlarmKit session" or "grab the HD video for session 287".
development
Fetch the WWDC session catalog from Apple's CDN by extracting the catalog URL from the Developer.app's WWDCCore binary. Use this skill whenever the user asks about WWDC sessions, WWDC videos, WWDC catalog, Apple developer conference content, or wants to browse, search, list, or look up any WWDC session or talk — even if they just say something like "what sessions are there about SwiftUI" or "find me that WWDC video about concurrency". Also use this when the user wants to download or work with WWDC session metadata.
tools
Generate a blog-post-style HTML page from a WWDC session, interleaving transcript text with slide screenshots. Use when the user wants to create a blog post, readable page, or visual summary from a WWDC talk — e.g. "create blog post from WWDC session 230", "generate HTML for that WWDC talk", "make a readable version of the AlarmKit session".
testing
Control Spotify playback and check what's currently playing. Use when the user asks what music or song is playing, wants to play/pause/stop music, skip tracks, or interact with Spotify in any way.