# Make Podcast

> Two saved characters recording a podcast in ONE room — the camera cuts to whoever is speaking, and each actor stays in their IDENTICAL seat, desk and mic position across every cut. Provide character_a and character_b (saved char_… ids from list_characters, or https image URLs) and an ordered `script` of A/B dialogue turns (each { speaker: "A" | "B", line: "…" }). The pipeline renders ONE shared two-shot, locks a close-up per actor, animates every turn with native lip-synced Seedance voice (each actor keeps a consistent look AND voice across the whole episode), and hard-cuts the turns together as a 9:16 vertical video. Long turns auto-split into ≤15s takes. Captions are OPT-IN — ask the user first, then set subtitles:true.

- Skill: `gitroomhq/make-podcast` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gitroomhq/make-podcast`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gitroomhq/make-podcast/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: gitroomhq (https://skillmd.com/u/gitroomhq)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/gitroomhq/make-podcast

---

# Make Podcast

Two saved characters recording a podcast in ONE room — the camera cuts to whoever is speaking, and each actor stays in their IDENTICAL seat, desk and mic position across every cut. Provide character_a and character_b (saved char_… ids from list_characters, or https image URLs) and an ordered `script` of A/B dialogue turns (each { speaker: "A" | "B", line: "…" }). The pipeline renders ONE shared two-shot, locks a close-up per actor, animates every turn with native lip-synced Seedance voice (each actor keeps a consistent look AND voice across the whole episode), and hard-cuts the turns together as a 9:16 vertical video. Long turns auto-split into ≤15s takes. Captions are OPT-IN — ask the user first, then set subtitles:true.

## When to use this

Call this skill when the user asks for the outcome described above. It runs on the agent-media vNext primitive runtime via the `mcp__agent-media__make_podcast` MCP tool. Authentication is the user's existing agent-media Bearer token (issued by `agent-media login`).

## How to call it

Preferred path: MCP tool `mcp__agent-media__make_podcast`. Schema is auto-published via `tools/list` against the same MCP server, so don't restate the schema here — trust the server's response.

Fallback path: REST.

```http
POST https://api.agent-media.ai/v1/skills/make_podcast/run
Authorization: Bearer $AGENT_MEDIA_API_KEY
Content-Type: application/json
Idempotency-Key: <any unique string per intent>

{
  "character_a": "char_… (a saved character_id from list_characters, or a character_sheet_url)",
  "character_b": "char_… (a DIFFERENT saved character)",
  "script": [
    {
      "speaker": "A",
      "line": "Welcome back to the show — today we are talking AI video."
    },
    {
      "speaker": "B",
      "line": "Honestly I have been waiting all week for this one."
    }
  ],
  "room": "a cozy wood-panelled podcast studio with warm lamps"
}
```

## What it costs and how long it takes

- Credits: `per-take: 140/280/420 per 5s/10s/15s take, summed across every A/B turn (+15 if subtitles); the master scene + both close-ups are free`
- Wall time (typical): `360–1400s`
- Deducted at submit.

## Polling the result

```http
GET https://api.agent-media.ai/v1/skills/runs/<skill_run_id>
Authorization: Bearer $AGENT_MEDIA_API_KEY
```

Returns per-step status with intermediate artifact URLs as each primitive completes.

## House rules baked into this skill

- See [reference/realism-rubric.md](../../reference/realism-rubric.md) for the realism doctrine baked into every prompt.
- See [reference/auth.md](../../reference/auth.md) for first-time install and `agent-media login`.

## Source of truth

This file is auto-generated by `scripts/generate-public-skill.ts` from the registry at `services/api-v2/src/skills/registry.ts`. Do not hand-edit; CI rejects drift.

