# Shownotes

> Extract transcripts from podcasts and YouTube videos, then create shareable show notes and summaries. Use when the user wants to: (1) Get transcripts from Apple Podcasts or podcast audio files, (2) Extract transcripts from YouTube videos, (3) Create show notes or summaries from audio/video content, (4) Search for podcast episodes or YouTube videos to transcribe, or (5) Turn any audio or video con…

- **Type:** Skill
- **Install:** `agentstack add skill-forcequit-shownotes-skill-shownotes`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [forcequit](https://agentstack.voostack.com/s/forcequit)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [forcequit](https://github.com/forcequit)
- **Source:** https://github.com/forcequit/shownotes-skill/tree/main/shownotes

## Install

```sh
agentstack add skill-forcequit-shownotes-skill-shownotes
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Shownotes

## Overview

Facilitate podcast discovery and transcription by helping users find, transcribe, and analyze podcast episodes from Apple Podcasts and YouTube. Extract transcripts using the shownotes.io API service, then create well-formatted show notes, summaries, and shareable content.

## Network Configuration Required

**IMPORTANT:** The shownotes.io API domain must be added to the allowed network domains before this skill can function. The user needs to add `plugins.shownotes.io` to their network settings.

If API calls fail with proxy or connection errors, inform the user they need to update their network settings to allow `plugins.shownotes.io`.

## Core Operations

### 1. Apple Podcast Search

**Purpose:** Search for podcast episodes on Apple Podcasts

**When to use:** User requests a podcast episode by name, topic, or show

**Workflow:**
1. Ask user what podcast episode they're looking for (if not already provided)
2. Use the helper script or make API call to `/apple.php` with query parameter
3. Present up to 3 matching episodes with:
   - Podcast name
   - Episode title
   - Release date
   - Episode description
   - Artwork (display if available, 160px)
   - Audio file URL (enclosure) - allow user to click to listen
4. Ask user to select which episode they want to transcribe
5. **CRITICAL:** Check `protect` field - if `true`, do NOT allow transcription

**Example API Call:**
```bash
python scripts/shownotes_api.py search-apple "Lex Fridman AI"
```

**Response handling:**
- Present search results in organized, scannable format
- Include visual elements (artwork) when available
- If no episodes found, suggest alternative search terms
- Provide clear call-to-action for next steps

### 2. Audio Transcription Request

**Purpose:** Request transcription of selected podcast episode

**When to use:** After user selects an episode from Apple Podcast Search results

**Workflow:**
1. Verify episode is not protected (`protect: false`)
2. Use parameters directly from the selected AppleSearch result:
   - `enclosure`: Audio file URL
   - `podcast`: Podcast name
   - `title`: Episode title
3. Make API call to `/airplugin.php` with these parameters
4. Inform user: "This may take a few minutes and you'll receive an email when ready"
5. Return the `audiolink` where transcript will appear
6. Guide user to check the link for their transcript

**Example API Call:**
```bash
python scripts/shownotes_api.py transcribe "https://audio-url.mp3" "Podcast Name" "Episode Title"
```

**Error handling:**
- If episode is protected, explain transcription is not available
- Set proper expectations about delivery time
- Provide helpful next steps

### 3. Search Existing Transcripts

**Purpose:** Search for existing transcripts on shownotes.io database

**When to use:** User asks if a transcript already exists or wants to retrieve a previously transcribed episode

**Workflow:**
1. Use show name as search parameter
2. Call `/captions-shownotes.php` endpoint
3. Transcript returns with two chunks: `chunk1` and `chunk2`
4. Combine chunks for full transcript

**Example API Call:**
```bash
python scripts/shownotes_api.py get-transcript "Show Name"
```

### 4. YouTube Video Search

**Purpose:** Search YouTube for podcast episodes or videos

**When to use:** User wants to transcribe content from YouTube

**Workflow:**
1. Ask user what show or video they're looking for (if not provided)
2. Use show name to search YouTube via `/search-youtube.php`
3. Return array of 3 video results with name and videoid
4. Present results to user
5. Ask user to select which video to transcribe

**Example API Call:**
```bash
python scripts/shownotes_api.py search-youtube "Huberman Lab"
```

### 5. YouTube Transcript Extraction

**Purpose:** Extract transcript from YouTube video

**When to use:** After user selects a video from YouTube search results, or provides a YouTube video ID directly

**Workflow:**
1. Verify video ID is exactly 11 characters
2. Call `/captions-youtube.php` with videoid parameter
3. Transcript returns in two chunks: `chunk1` and `chunk2`
4. Combine chunks for complete transcript
5. Inform user: "We've also sent an email summary to your inbox"

**CRITICAL RULES:**
- ONLY use the returned transcript content when making summaries or answering questions
- Do NOT embellish or add content beyond what's in the transcript
- Be factual and stick to the source material
- Acknowledge when working with chunked transcript structure

**Example API Call:**
```bash
python scripts/shownotes_api.py get-youtube "dQw4w9WgXcQ"
```

## Creating Show Notes and Summaries

Once transcript is obtained, create well-formatted content:

**Standard Show Notes Format:**
- Title and episode information
- Brief overview/summary (2-3 sentences)
- Key topics covered (bullet points)
- Notable quotes (if applicable)
- Timestamps for major sections (if available in transcript)
- Key takeaways
- Resources mentioned

**Alternative Formats:**
- Executive summary
- Detailed notes with sections
- Q&A format
- Topic-based breakdown
- Action items and insights

**Guidelines:**
- Only work with actual transcript content returned by API
- Do not create content beyond what the API provides
- Maintain professional but friendly tone
- Present information in organized, scannable format
- Be conversational and helpful

## Response Guidelines

**User Interaction:**
- Be conversational and helpful throughout
- Present search results in organized, scannable format
- Include visual elements (artwork) when available
- Provide clear calls-to-action for next steps
- Maintain professional but friendly tone

**Error Handling:**
- If no episodes/videos found, suggest alternative search terms
- If episode is protected, explain transcription is not available
- If transcript extraction fails, guide user to try alternative methods
- Always provide helpful next steps

**Formatting:**
- Use clear headers and sections
- Include relevant metadata (dates, names, etc.)
- Make content scannable with bullet points where appropriate
- Bold key information for emphasis

## API Helper Script

Use `scripts/shownotes_api.py` for all API interactions. The script provides convenience functions for:
- `search-apple ` - Search Apple Podcasts
- `transcribe   ` - Request transcription
- `get-transcript ` - Get existing transcript
- `search-youtube ` - Search YouTube
- `get-youtube ` - Get YouTube transcript

## Additional Resources

For complete API documentation, see `references/api_reference.md`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [forcequit](https://github.com/forcequit)
- **Source:** [forcequit/shownotes-skill](https://github.com/forcequit/shownotes-skill)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-forcequit-shownotes-skill-shownotes
- Seller: https://agentstack.voostack.com/s/forcequit
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
