# Create podcast generation task

Submit a podcast generation task; returns a task ID immediately. Podcast generation is an async operation --
poll task status via `GET /v1/audio/podcasts/{taskId}`.

The system analyzes and summarizes input text to generate a two-person dialogue podcast. Four modes are supported:
- **Long text summary**: Pass `input_text` to analyze and summarize long text into a podcast
- **URL parsing**: Pass `input_url` to generate a podcast from webpage content
- **Web search**: Pass `prompt_text` to search the web for a topic and generate a podcast
- **Dialogue text**: Pass `nlp_texts` to directly synthesize podcast audio from pre-written dialogue

Billing: per token (input text tokens + output audio tokens). Estimated amount is frozen at submission; settled by actual usage on completion.

## POST /v1/audio/podcasts

> Create podcast generation task

Submit a podcast generation task; returns a task ID immediately. Podcast generation is an async operation --
poll task status via `GET /v1/audio/podcasts/{taskId}`.

The system analyzes and summarizes input text to generate a two-person dialogue podcast. Four modes are supported:
- **Long text summary**: Pass `input_text` to analyze and summarize long text into a podcast
- **URL parsing**: Pass `input_url` to generate a podcast from webpage content
- **Web search**: Pass `prompt_text` to search the web for a topic and generate a podcast
- **Dialogue text**: Pass `nlp_texts` to directly synthesize podcast audio from pre-written dialogue

Billing: per token (input text tokens + output audio tokens). Estimated amount is frozen at submission; settled by actual usage on completion.

### Authentication

`Authorization: Bearer tr-xxx`

### Request Body

Content-Type: `application/json`

- **model** `string` **(required)**  
  Podcast model ID. Filter by `type: podcast` via `GET /v1/models`
- **input_text** `string`  
  Long text for podcast synthesis (mutually exclusive with `input_url`, `prompt_text`, `nlp_texts`). Max 32K characters
- **input_url** `string`  
  Web page or file link (supports PDF, DOC, TXT). The system automatically extracts content to generate a podcast
- **prompt_text** `string`  
  Topic keyword for web search. The system searches the web and generates a podcast based on the results
- **nlp_texts** `object[]`  
  Pre-written dialogue text list. Each turn specifies the speaker and text, directly synthesized into podcast audio
- **nlp_texts[].text** `string` **(required)**  
  Dialogue text (max 300 characters per turn)
- **nlp_texts[].speaker** `string` **(required)**  
  Speaker voice ID
- **speakers** `string[]`  
  Specify two speaker voice IDs. Recommended to use paired voices from the same series:
- **audio_format** ``mp3` | `ogg_opus` | `pcm` | `aac`` (default: `mp3`)  
  Output audio format
- **sample_rate** ``16000` | `24000` | `48000`` (default: `24000`)  
  Sample rate
- **speech_rate** `integer` (default: `0`)  
  Speech rate, range [-50, 100]. 100 = 2.0x speed, -50 = 0.5x speed
- **use_head_music** `boolean` (default: `true`)  
  Whether to include intro music
- **use_tail_music** `boolean` (default: `false`)  
  Whether to include outro music

### Response

- **id** `string` **(required)**  
  Task ID (used for status polling)
- **model** `string` **(required)**  
  Model ID used
- **status** ``processing`` **(required)**  
  Initial task status, fixed value `processing`
- **created_at** `string` **(required)**  
  Task creation time

### Error Codes

- `400`: 
- `401`: 
- `402`: 
- `429`: 
- `502`:
