Claude-skill-registry delete-episode
Delete podcast episodes from the TTS system. Use when asked to delete, remove, or clean up an episode from a podcast feed.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/delete-episode" ~/.claude/skills/majiayu000-claude-skill-registry-delete-episode && rm -rf "$T"
manifest:
skills/data/delete-episode/SKILL.mdsource content
Delete Episode
Deleting an episode requires cleanup in three places.
Where Episodes Live
- Hub database - Source of truth. Query via Kamal console from the hub directory.
- Google Cloud Storage - MP3 file, manifest.json, feed.xml
- RSS feed - Regenerate after manifest update so podcast apps reflect the change
Key Relationships
From a Hub Episode record:
→ GCS folder name (e.g.,episode.podcast.podcast_id
)podcast_106f7e1301ae9fc2
→ MP3 filename (without .mp3 extension)episode.gcs_episode_id
GCS Structure
gs://verynormal-tts-podcast/podcasts/{podcast_id}/ ├── episodes/{gcs_episode_id}.mp3 ├── manifest.json └── feed.xml
RSS Regeneration
After updating manifest.json, regenerate feed.xml using:
class from the tts lib directoryRSSGenerator- Podcast config from
config/podcast.yml - Episodes array from the updated manifest
Constraints
- Confirm before deleting - Show episode title, podcast, date, and ask for confirmation
- Multiple matches - If search finds multiple episodes, list all with details and ask which one
- Stop on failure - If any step fails, report what succeeded and what failed. Don't continue.
Deletion Order
- Delete MP3 from GCS
- Update manifest.json (remove episode entry)
- Regenerate and upload feed.xml
- Delete episode from Hub database