spaces-listener
Record, transcribe, and summarize X/Twitter Spaces — live or replays. Auto-downloads audio via yt-dlp, transcribes with Whisper, and generates AI summaries.
install
source · Clone the upstream repo
git clone https://github.com/jamesalmeida/spaces-listener
Claude Code · Install into ~/.claude/skills/
git clone --depth=1 https://github.com/jamesalmeida/spaces-listener ~/.claude/skills/jamesalmeida-spaces-listener-spaces-listener
manifest:
SKILL.mdsource content
spaces-listener
Record, transcribe, and summarize X/Twitter Spaces — live or replays. Supports multiple concurrent recordings.
Commands
# Start recording (runs in background) spaces listen <url> # Record multiple Spaces at once spaces listen "https://x.com/i/spaces/1ABC..." spaces listen "https://x.com/i/spaces/2DEF..." # List all active recordings spaces list # Check specific recording status spaces status 1 # Stop a recording spaces stop 1 spaces stop all # Clean stale pid/meta files spaces clean # Transcribe when done spaces transcribe ~/Desktop/space.m4a --model medium # Summarize an existing transcript spaces summarize ~/Desktop/space_transcript.txt # Skip summarization spaces transcribe ~/Desktop/space.m4a --no-summarize
Requirements
brew install yt-dlp ffmpeg openai-whisper
For summaries, set
OPENAI_API_KEY (transcription still works without it).
How It Works
- Each
starts a new background recording with a unique IDspaces listen - Recordings persist even if you close terminal
- Run
to see all active recordingsspaces list - When done,
orspaces stop <id>spaces stop all - Transcribe with
spaces transcribe <file> - Summaries are generated automatically after transcription (skip with
)--no-summarize
Output
Each space gets its own folder under
~/Dropbox/ClawdBox/XSpaces/:
~/Dropbox/ClawdBox/XSpaces/ space_username_2026-02-03_1430/ recording.m4a — audio recording.log — progress log transcript.txt — transcript summary.txt — summary
Critical: Agent Usage Rules
NEVER set a timeout on Space downloads. Spaces can be hours long. yt-dlp stops automatically when the Space ends — don't kill it early.
The correct workflow:
- Run
— it starts a background process and returns immediatelyspaces listen <url> - Set a cron job (every 5–10 min) to check
spaces list - When recording shows "No active recordings", it's done
- Transcribe the audio file, summarize, notify the user
- Delete the cron job
Do NOT:
- Use
with a timeout for downloadsexec - Run competing download processes for the same Space
- Kill the download process manually (unless the user asks)
Audio is staged in
/tmp/spaces-listener-staging/ during recording, then
automatically copied to the final Dropbox output dir when complete. This
avoids Dropbox file-locking issues during long downloads.
Whisper Models
| Model | Speed | Accuracy |
|---|---|---|
| tiny | ⚡⚡⚡⚡ | ⭐ |
| base | ⚡⚡⚡ | ⭐⭐ |
| small | ⚡⚡ | ⭐⭐⭐ |
| medium | ⚡ | ⭐⭐⭐⭐ |
| large | 🐢 | ⭐⭐⭐⭐⭐ |