# Buzzsprout

> Connect your Buzzsprout account to manage your podcast from a workflow: publish and schedule episodes, upload audio, update show notes, and read episode details and play counts.

App · Music & Podcasts · 10 actions. Web page: https://docs.lodol.com/docs/integrations/buzzsprout

## Actions

### Create episode

Create an episode on a podcast, with its audio (an uploaded file, a file from an earlier step, or a public URL), show notes, artwork, tags and numbering. Set a publish date to schedule it, or leave it blank to save it as a draft.

**Inputs**

- Title (`title`, text, required): The episode title, as it appears in podcast apps.
- Audio file (`audio`, text): The episode audio: upload a file, pick an audio file produced by an earlier step, or paste a public URL for Buzzsprout to fetch.
- Show notes (`description`, text): The episode's show notes. Buzzsprout stores these as HTML, so basic tags such as <p> and <a href> are kept.
- Summary (`summary`, text): A short plain-text summary shown by some podcast apps.
- Publish date and time (`published_at`, date and time): When the episode goes live. A time in the future schedules it; leave blank to save it without a publication date.
- Episode number (`episode_number`, number): The episode's number within its season. From 0 to 100000.
- Season number (`season_number`, number): The season this episode belongs to. From 0 to 1000.
- Episode artwork (`artwork`, text): Artwork for this episode: upload an image, pick one from an earlier step, or paste a public image URL. Defaults to the podcast artwork.
- Tags (`tags`, text): Tags for the episode, separated by commas (e.g. 'baking, interviews').
- Artist (`artist`, text): The episode's artist/author, e.g. the host's name.
- Explicit (`explicit`, true/false): Mark the episode as containing explicit content.
- Private (`private`, true/false): Keep the episode out of the public RSS feed (Buzzsprout private podcasting).
- Duration (seconds) (`duration`, number): Episode length in seconds. Buzzsprout works this out from the audio once it finishes processing, so this is only needed to override it. From 0 to 360000.
- GUID (`guid`, text): The feed GUID. Only set this when migrating an episode from another host and you need podcast apps to treat it as the same episode.
- Remove from feed at (`inactive_at`, date and time): When to take the episode out of the RSS feed. Leave blank to keep it in the feed indefinitely.
- Email me when the audio finishes processing (`email_user_after_audio_processed`, true/false): Buzzsprout emails the account owner once the uploaded audio has finished processing (or if processing failed). On by default.
- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `episode` (object)
- `episode_id` (text): Id of the new episode, for later steps
- `podcast_id` (text)

**Example output**

```json
{
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "episode_id": "788881",
  "podcast_id": "140447"
}
```

### Find episode

Find an episode without knowing its id: by title, by episode and season number, or by feed GUID. Returns 'found: false' when nothing matches instead of failing the step, so a workflow can branch on it.

**Inputs**

- Title (`title`, text): Text to match against episode titles. Part of the title is enough unless you switch 'Title match' to exact.
- Title match (`match_mode`, text): How the title text should be matched. One of: `contains` (Title contains the text), `exact` (Title matches exactly).
- Episode number (`episode_number`, number): Match the episode with this number. From 0 to 100000.
- Season number (`season_number`, number): Only include episodes in this season. Leave blank for all seasons. From 0 to 1000.
- GUID (`guid`, text): Match the episode with this feed GUID exactly.
- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `episode` (object)
- `found` (true/false)
- `match_count` (number)
- `matches` (list): Every match, newest first, up to 20 of them; 'match_count' reports the true total
- `podcast_id` (text)

**Example output**

```json
{
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "found": true,
  "match_count": 1,
  "matches": [
    {
      "artist": "Muffin Man",
      "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
      "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
      "description": "<p>Sizing up the week.</p>",
      "duration": 12362,
      "duration_display": "3:26:02",
      "episode_number": 5,
      "explicit": false,
      "guid": "Buzzsprout788881",
      "hq": true,
      "id": "788881",
      "inactive_at": null,
      "is_published": true,
      "magic_mastering": true,
      "private": false,
      "published_at": "2019-09-12T03:00:00.000-04:00",
      "season_number": 5,
      "status": "published",
      "summary": "Sizing up the week.",
      "tags": [
        "baking",
        "sizes"
      ],
      "tags_text": "baking, sizes",
      "title": "Too small or too big?",
      "total_plays": 150
    }
  ],
  "podcast_id": "140447"
}
```

### Get episode

Get one episode by its Buzzsprout id: title, show notes, audio URL, artwork, length, tags, publication status and total plays.

**Inputs**

- Episode ID (`episode_id`, text, required): The Buzzsprout episode id, e.g. '788881'. Use 'List episodes' or 'Find episode' to get it from a title.
- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `episode` (object)
- `podcast_id` (text)

**Example output**

```json
{
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "podcast_id": "140447"
}
```

### Get latest episode

Get the most recently published episode of a podcast (the one live in the feed right now). Turn on 'Include scheduled' to consider episodes dated in the future as well.

**Inputs**

- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.
- Include scheduled episodes (`include_scheduled`, true/false): Also consider episodes scheduled to publish later. Off by default.

**Outputs**

- `considered_count` (number)
- `episode` (object)
- `found` (true/false)
- `podcast_id` (text)

**Example output**

```json
{
  "considered_count": 12,
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "found": true,
  "podcast_id": "140447"
}
```

### Get play statistics

Total a podcast's plays and rank its best-performing episodes: lifetime plays across the catalogue, the average per episode, and the top episodes by play count. Narrow it to one season to compare seasons.

**Inputs**

- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.
- Season number (`season_number`, number): Only include episodes in this season. Leave blank for all seasons. From 0 to 1000.
- How many top episodes (`top_episodes`, number): How many of the best-performing episodes to list, from 1 to 100. Defaults to 5. From 1 to 100.

**Outputs**

- `average_plays` (number)
- `episode_count` (number)
- `most_played_episode` (object)
- `podcast_id` (text)
- `published_count` (number)
- `top_episodes` (list)
- `total_plays` (number)

**Example output**

```json
{
  "average_plays": 401.7,
  "episode_count": 12,
  "most_played_episode": {
    "id": "788881",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "podcast_id": "140447",
  "published_count": 11,
  "top_episodes": [
    {
      "episode_number": 5,
      "id": "788881",
      "published_at": "2019-09-12T03:00:00.000-04:00",
      "season_number": 5,
      "title": "Too small or too big?",
      "total_plays": 150
    }
  ],
  "total_plays": 4820
}
```

### Get podcast

Get one podcast's details: title, author, description, artwork, categories, language and contact email.

**Inputs**

- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `podcast` (object)
- `podcast_id` (text)

**Example output**

```json
{
  "podcast": {
    "artwork_url": "https://storage.buzzsprout.com/artworks_large.jpg",
    "author": "Motivational Mike",
    "background_url": null,
    "categories": [
      "Education",
      "Self-Improvement"
    ],
    "contact_email": "team+mike@buzzsprout.com",
    "description": "Let me tell you how to live your best life today!",
    "explicit": false,
    "id": "140447",
    "keywords": "motivation, life",
    "language": "en-us",
    "main_category": "Education",
    "sub_category": "Self-Improvement",
    "timezone": "Eastern Time (US & Canada)",
    "title": "Life Empowerment",
    "website_address": "https://www.buzzsprout.com/140447"
  },
  "podcast_id": "140447"
}
```

### List episodes

List a podcast's episodes, newest first, each with its title, audio URL, length, publication status and play count. Narrow the list by season, publication status, public/private, a publication date range, or text in the title and show notes.

**Inputs**

- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.
- Season number (`season_number`, number): Only include episodes in this season. Leave blank for all seasons. From 0 to 1000.
- Publication status (`status`, text): Only include episodes in this state. Defaults to any. One of: `any` (Any status), `published` (Published (live now)), `scheduled` (Scheduled (publishes later)), `unpublished` (Unpublished (no publish date)), `inactive` (Inactive (removed from the feed)).
- Visibility (`visibility`, text): Only include public episodes, or only private ones. Defaults to both. One of: `any`, `public` (Public only), `private` (Private only).
- Search text (`search`, text): Only include episodes whose title, show notes, summary, artist or tags contain this text.
- Published after (`published_after`, date and time): Only include episodes published on or after this moment.
- Published before (`published_before`, date and time): Only include episodes published on or before this moment.
- Sort by (`sort_order`, text): The order to return the episodes in. One of: `newest_first` (Newest first), `oldest_first` (Oldest first), `most_plays` (Most plays first), `episode_number` (By season and episode number).
- Maximum episodes (`limit`, number): How many episodes to return, from 1 to 500. Defaults to 50. From 1 to 500.

**Outputs**

- `episode_count` (number)
- `episodes` (list)
- `match_count` (number)
- `podcast_id` (text)
- `sort_order` (text)
- `total_episodes` (number)

**Example output**

```json
{
  "episode_count": 1,
  "episodes": [
    {
      "artist": "Muffin Man",
      "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
      "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
      "description": "<p>Sizing up the week.</p>",
      "duration": 12362,
      "duration_display": "3:26:02",
      "episode_number": 5,
      "explicit": false,
      "guid": "Buzzsprout788881",
      "hq": true,
      "id": "788881",
      "inactive_at": null,
      "is_published": true,
      "magic_mastering": true,
      "private": false,
      "published_at": "2019-09-12T03:00:00.000-04:00",
      "season_number": 5,
      "status": "published",
      "summary": "Sizing up the week.",
      "tags": [
        "baking",
        "sizes"
      ],
      "tags_text": "baking, sizes",
      "title": "Too small or too big?",
      "total_plays": 150
    }
  ],
  "match_count": 1,
  "podcast_id": "140447",
  "sort_order": "newest_first",
  "total_episodes": 1
}
```

### List podcasts

List every podcast on the connected Buzzsprout account, with each show's id, title, author, artwork and feed settings. Use it to find the podcast id the episode actions work with.

**Inputs**: None.

**Outputs**

- `podcast_count` (number)
- `podcasts` (list)

**Example output**

```json
{
  "podcast_count": 1,
  "podcasts": [
    {
      "artwork_url": "https://storage.buzzsprout.com/artworks_large.jpg",
      "author": "Motivational Mike",
      "background_url": null,
      "categories": [
        "Education",
        "Self-Improvement"
      ],
      "contact_email": "team+mike@buzzsprout.com",
      "description": "Let me tell you how to live your best life today!",
      "explicit": false,
      "id": "140447",
      "keywords": "motivation, life",
      "language": "en-us",
      "main_category": "Education",
      "sub_category": "Self-Improvement",
      "timezone": "Eastern Time (US & Canada)",
      "title": "Life Empowerment",
      "website_address": "https://www.buzzsprout.com/140447"
    }
  ]
}
```

### Publish or schedule episode

Publish a draft episode now, or schedule it for a date and time. Also takes the episode out of private mode unless you turn that off, so it appears in the public feed.

**Inputs**

- Episode ID (`episode_id`, text, required): The Buzzsprout episode id, e.g. '788881'. Use 'List episodes' or 'Find episode' to get it from a title.
- Publish at (`published_at`, date and time): When the episode should go live. Leave blank to publish immediately; a time in the future schedules it.
- Make it public (`make_public`, true/false): Also clear the episode's 'private' flag so it appears in the public RSS feed. On by default; turn it off to publish inside a private podcast.
- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `episode` (object)
- `podcast_id` (text)
- `published_at` (text)
- `scheduled` (true/false): True when the date is in the future

**Example output**

```json
{
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "podcast_id": "140447",
  "published_at": "2026-09-12T15:00:00Z",
  "scheduled": false
}
```

### Update episode

Update an existing episode. Only the fields you fill in are changed (everything else is left as it is), so this can retitle an episode, rewrite its show notes, replace its audio or artwork, or make it public or private.

**Inputs**

- Episode ID (`episode_id`, text, required): The Buzzsprout episode id, e.g. '788881'. Use 'List episodes' or 'Find episode' to get it from a title.
- Title (`title`, text): A new title for the episode. Leave blank to keep the current one.
- Show notes (`description`, text): The episode's show notes. Buzzsprout stores these as HTML, so basic tags such as <p> and <a href> are kept.
- Summary (`summary`, text): A short plain-text summary shown by some podcast apps.
- Audio file (`audio`, text): The episode audio: upload a file, pick an audio file produced by an earlier step, or paste a public URL for Buzzsprout to fetch.
- Episode artwork (`artwork`, text): Artwork for this episode: upload an image, pick one from an earlier step, or paste a public image URL. Defaults to the podcast artwork.
- Publish date and time (`published_at`, date and time): When the episode goes live. A time in the future schedules it; leave blank to save it without a publication date.
- Episode number (`episode_number`, number): The episode's number within its season. From 0 to 100000.
- Season number (`season_number`, number): The season this episode belongs to. From 0 to 1000.
- Tags (`tags`, text): Tags for the episode, separated by commas (e.g. 'baking, interviews').
- Artist (`artist`, text): The episode's artist/author, e.g. the host's name.
- Explicit (`explicit`, true/false): Mark the episode as containing explicit content.
- Private (`private`, true/false): Keep the episode out of the public RSS feed (Buzzsprout private podcasting).
- Duration (seconds) (`duration`, number): Episode length in seconds. Buzzsprout works this out from the audio once it finishes processing, so this is only needed to override it. From 0 to 360000.
- GUID (`guid`, text): The feed GUID. Only set this when migrating an episode from another host and you need podcast apps to treat it as the same episode.
- Remove from feed at (`inactive_at`, date and time): When to take the episode out of the RSS feed. Leave blank to keep it in the feed indefinitely.
- Email me when the audio finishes processing (`email_user_after_audio_processed`, true/false): Buzzsprout emails the account owner once the uploaded audio has finished processing (or if processing failed). On by default.
- Podcast (`podcast_id`, text): Which podcast to act on. Leave it blank if the account has only one podcast; it is then used automatically.

**Outputs**

- `episode` (object)
- `podcast_id` (text)
- `updated_fields` (list): The fields this step changed

**Example output**

```json
{
  "episode": {
    "artist": "Muffin Man",
    "artwork_url": "https://storage.buzzsprout.com/variants/abc123",
    "audio_url": "https://www.buzzsprout.com/140447/788881-filename.mp3",
    "description": "<p>Sizing up the week.</p>",
    "duration": 12362,
    "duration_display": "3:26:02",
    "episode_number": 5,
    "explicit": false,
    "guid": "Buzzsprout788881",
    "hq": true,
    "id": "788881",
    "inactive_at": null,
    "is_published": true,
    "magic_mastering": true,
    "private": false,
    "published_at": "2019-09-12T03:00:00.000-04:00",
    "season_number": 5,
    "status": "published",
    "summary": "Sizing up the week.",
    "tags": [
      "baking",
      "sizes"
    ],
    "tags_text": "baking, sizes",
    "title": "Too small or too big?",
    "total_plays": 150
  },
  "podcast_id": "140447",
  "updated_fields": [
    "title"
  ]
}
```
