---
title: "POST /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/createVideo"
method: POST
path: "/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/createVideo"
tags: ["Podcast Bot"]
---

# POST /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/createVideo

`POST /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/createVideo`

Create a video (CREATE_VIDEO job) for an episode. Uses the given video config, or the stored one if the body is omitted.

## Path parameters

- `podcastKey` string, required
- `episodeKey` string, required

## Request body

- PBVideoConfig — Video rendering config (CREATE_VIDEO renderer) — used by CREATE_VIDEO and AUTO_CLIP jobs
  - `style` 'waveformBars' | 'equalizer' | 'radialPulse' | 'hostSplit' | 'hostCentered' | 'podcastCardDotted' — Template design
  - `font` 'inter' | 'oswald' | 'bebasNeue' | 'montserrat' | 'anton' | 'poppins' — Font family
  - `showEqualizer` boolean — Show the audio-reactive visualizer
  - `fps` integer — Frames per second; 24/30 typical
  - `colors` Colors
    - `accent` string — Accent color (hex). Default "#D0021B"
    - `background` string — Background color (hex). Default "#F7F7F8"
    - `text` string — Text / caption color (hex). Default "#111111"
    - `barGradientFrom` string — Bar gradient start color (hex). Default "#D0021B"
    - `barGradientTo` string — Bar gradient end color (hex). Default "#8A0000"
  - `text` Text
    - `episodeLabel` string — Episode label, e.g. "EPISODE 42"
    - `title` string — Main title
    - `subtitle` string — Subtitle, e.g. guest name
    - `caption` string — Static caption line; shown when captions.synced == false. Ignored in synced mode.
  - `assets` Assets
    - `primaryLogo` string — Square podcast artwork
    - `secondaryLogo` string — Wordmark / corner logo
    - `hostPhoto` string — Host photo, used by hostSplit / hostCentered
  - `captions` Captions
    - `show` boolean — Master on/off for captions
    - `synced` boolean — true = word-timed karaoke captions synced to audio; false = show the static text.caption line the whole time. Only takes effect when show == true.
    - `embedded_srt_file` boolean — true = burn captions into the video frames; false = don't burn (SRT sidecar still uploaded). Applies to synced captions when show == true.
  - `aspect_ratios` string[] — One output MP4 per ratio

## Response `200`

OK

---

[API](https://skmtc.net/zeno/apis/aggregators-api-service.md) · [All operations](https://skmtc.net/zeno/apis/aggregators-api-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zeno/aggregators-api-service/versions/cf4d10f16c63/schema)
