533 meetings recorded in Zoom. Hours of transcripts. All unused.


I built a fully automated pipeline: Zoom β†’ Python β†’ AI β†’ Obsidian.


πŸ”‘ Step 1 β€” Create a Zoom API app (5 min)


1. marketplace.zoom.us β†’ Develop β†’ Build App
2. Choose "Server-to-Server OAuth"
3. Add scopes: cloud_recording:read:list_recording_files:admin and cloud_recording:read:list_user_recordings:admin
4. Note down: account_id, client_id, client_secret


🐍 Step 2 β€” Python download script


The script handles:
1. OAuth auth β†’ access_token
2. GET /users/me/recordings (paginated, month by month)
3. Downloads the .vtt file (subtitles) + metadata for each meeting
4. state.json file to avoid re-downloading


Python dependencies: requests, python-dotenv. That's it.
Gotcha: Zoom meeting UUIDs must be double-URL-encoded.
Time: ~30 min for 533 meetings.


πŸ€– Step 3 β€” Claude Code summarizes each transcript


I asked Claude Code (Anthropic's CLI tool) to read each .vtt and generate a structured summary:
• Summary in 5-10 bullet points
• Decisions made
• Action items with owners
• Key points by topic
• Full raw transcript


Each 45-min meeting summarized in 30 seconds. 400 .md files in Obsidian.


⏰ Step 4 β€” Automation


A cron job runs the script every hour. New meetings are downloaded and summarized automatically.


Total cost: $0. The Zoom API is free. Claude Code is included in the subscription.


Next post: how AI scanned those 400 summaries to write my LinkedIn posts.


How many meetings have you recorded and never reviewed?