Audio Cleaner (Podcast) API - Complete Integration Guide
The Podcast API is used to automatically generate podcast results from multiple sources, using a two-step asynchronous task process: first generating the podcast script, then generating the final audio file based on the script. Suitable for news broadcasts, content explanations, interviews, and more.
Overview
Key Features
Multi-format and multi-channel support: supports text, web pages, YouTube, PDF, Word, audio, and video input formats and resource links.
AI intelligent polishing: intelligently improves storytelling, clarity, and engagement, making podcasts more vivid and natural. Suitable for news, interviews, explanations, and various scenarios.
Custom speech speed and style: supports customizable speech speed and style, multiple audio voices to meet diverse output needs.
Perfect support for speakers and segments: supports multiple speakers, automatically distinguishes roles, easy segmentation of complex flows.
High concurrency and fault tolerance: stable support for large-scale automated tasks, with status polling and clear error returns.
Developer-friendly: open API, unified structured response, comprehensive documentation, easy for secondary integration.
Authentication
All API requests require api-key. Include your API key in request headers:
API Host: https://audiocleaner.ai/
api-key: YOUR_API_KEY
Overall Process (Two Steps)
Call Step 1 create API to generate podcast script, return global_id
Poll Step 1 status API to obtain the script result (train_data, podcast_script, etc.)
Call Step 2 create API, input the script structure to generate the audio file, return global_id
Poll Step 2 status API to get the final audio address (file_url)
Your account is suspended. Status cannot be modified. Please contact the administrator
101006
API key not enabled
API key not enabled
Example
curl --location --request POST 'https://audiocleaner.ai/audio/api/v1/api-keys/podcast/audio/create' \
--header 'Content-Type: application/json' \
--header 'api-key: YOUR_API_KEY' \
--data-raw '{
"title": "Who is Shelby? A Power Game in a Conversation",
"processed_content": "In this episode, we explore the subtle moments of power encounters...",
"podcast_script": [
{
"role": "A",
"name": "Unrestrained Young Man",
"avatar": "",
"text": "Hi everyone! Today we’re going to talk about a very interesting conversation.",
"voice_id": "https://resource.audiocleaner.ai/acweb/minimax/zh/Chinese (Mandarin)_Unrestrained_Young_Man.mp3"
}
],
"hightlights": [
{
"highlight": "Power encounter moments and provocative tone",
"index": 0,
"script_start_index": 0,
"script_end_index": 3
}
],
"global_id": "ce2afb8f-7ccd-44a5-8bb0-8849098acfb7"
}'
4. Step 2 - Query Podcast Audio Task Status
Endpoint
POST /audio/api/v1/api-keys/podcast/audio/get
Credit Consumption Description
Credit consumption for audio generation tasks is billed according to the duration of the generated audio, as follows:
Only returns voice information visible/available to the current account.
Returns in JSON format and includes all required fields for business use, such as image/audio URLs and basic attributes (e.g. gender, age, language, etc).
Key fields in the returned content are described, such as gender and age.
After logging in, click the "Developer" menu, enter Playground, and select the "TAI Podcast Master" feature.
Call Step 1 create API according to the input source to get global_id
Poll Step 1 query API until status=success and get podcast_script
Use the script result as parameters to call Step 2 create API, get a new global_id
Poll Step 2 query API until status=success and get file_url
If resource or account-related data is needed, call the Podcast Voice Resource API
FAQ
Why split into two steps?
The first step produces a structured script, and the second step synthesizes the audio based on the script. Splitting makes retrying, debugging, and quality control easier.
After Step 1 succeeds, do I have to use the returned script structure for Step 2?
Yes, it is recommended to use the title, processed_content, podcast_script, hightlights, etc. returned by Step 1 directly to avoid inconsistency issues.
Why doesn’t the query API check if the key is enabled?
According to the current backend rules, the query API focuses on checking key validity, frequency, concurrency, task existence, and credit status.