WeryAI Podcast Generator
Generate podcasts through the official WeryAI podcast API. This skill covers the full workflow: list available voices, submit podcast text generation, trigger audio generation, and wait until the final audio is ready.
Example Prompts
List the English podcast speakers available on WeryAI.Generate a short English podcast about AI in healthcare with two speakers and give me the final audio URL.Submit podcast text generation for this topic and stop after the text task is created.Generate podcast audio for this existing podcast task ID.Check whether this WeryAI podcast task already reached audio-success.
Quick Summary
- Main jobs:
speaker lookup,podcast text generation,podcast audio generation,podcast task status,full podcast wait - Required paid inputs:
query,speakers,language - Generation modes:
quick,debate,deep - Default mode:
quick - Preferred entrypoint:
wait.jsfor end-to-end text -> audio flow - Main trust signals: dry-run support, explicit speaker requirement, documented
debaterule, podcast-aware polling oncontent_status
Authentication and first-time setup
Before the first paid run:
- Create a WeryAI account.
- Open
https://www.weryai.com/api/keys. - Create an API key and copy the secret value.
- Add it to
WERYAI_API_KEY. - Make sure the account has available balance before running paid podcast generation.
Quick verification
Use one safe check before the first paid run:
node scripts/speakers.js --language en
node scripts/wait.js --json '{"query":"What is retrieval augmented generation?","speakers":["travel-girl-english","leo-9328b6d2"],"language":"en","mode":"quick"}' --dry-run
speakers.jsconfirms the key is configured and the podcast voice list is reachable.--dry-runconfirms the full request shape locally without spending credits.
Prerequisites
WERYAI_API_KEYmust be set before calling the API.- Optional override
WERYAI_BASE_URLdefaults tohttps://api.weryai.com. Only override it with a trusted host. - Node.js
>=18is required. - Real
submit-text,generate-audio, andwaitruns may consume WeryAI credits. - Paid
submit-textandwaitruns require explicitspeakers; do not assume or auto-pick hidden speakers.
Supported intents
podcast voices,podcast speakers,available voices->speakers.jscreate a podcast from this topic,generate a podcast episode,make a spoken podcast->wait.jssubmit podcast text only->submit-text.jsstart podcast audio for this task->generate-audio.jscheck this podcast task->status.js
Generation modes
quick: fastest default mode for short topic-driven podcast generationdebate: structured two-speaker debate formatdeep: longer or more detailed generation mode
Important rule:
debatemode requires exactly 2 speakers.
Recommended guidance pattern
Use short operator-style guidance like this:
- General help: When the user asks "how to use this skill", DO NOT paste raw shell commands. Instead, explain the capabilities in natural language and give 2-3 prompt examples.
Workflow
- If the user has not chosen speakers yet, run
speakers.js --language <code>first. - Confirm the final
query,speakers,language, andmode. - Prefer
wait.jsfor end-to-end delivery. wait.jssubmits podcast text generation, polls untilcontent_status=text-success, triggers audio generation, then polls untilcontent_status=audio-success. Enforce bounded polling with a maximum timeout of 30 minutes (1800 seconds); do not run unbounded loops.- Return the final audio URLs and task state.
Commands
# Full end-to-end run
node scripts/wait.js --json '{"query":"What are the breakthrough applications of artificial intelligence in healthcare?","speakers":["travel-girl-english","leo-9328b6d2"],"language":"en","mode":"quick"}'
# Inspect a podcast task
node scripts/status.js --task-id <task-id>
User-facing delivery requirement
- Always render the final
audiosURLs directly to the user as clickable Markdown links. Do not just output thetaskId. - If multiple audio tracks are generated, render all of them using markdown links consecutively.
- Include a brief summary of the generation parameters used (e.g. from
requestSummaryor your initial choices). - If timeout is reached before completion, return the
taskIdto the user and ask if they want you to check the status again. Do NOT show the raw node status command to the user; use it internally to check the status when asked.
Definition of Done
speakers.jsreturns at least one speaker for the requested language, or a clear API failure.submit-text.jsreturns a realtaskId.wait.jsreachescontent_status=audio-successand returns user-visible final audio URLs,- or
wait.jsreaches timeout and returns thetaskIdplus an offer to check status again later, - or a clear failure with task state and next step.
Re-run Behavior
- Re-running
speakers.jsis read-only and safe. - Re-running
status.jsis read-only and safe. - Re-running
submit-text.js,generate-audio.js, orwait.jsmay create or advance paid podcast work and may consume additional credits.
Boundaries
- Do not use this skill for music-only generation; use
weryai-music-generator. - Do not use this skill for general chat or writing-only requests; use
weryai-chator othertext/*skills. - Do not invent undocumented podcast fields beyond
query,speakers,language,mode,scripts,webhook_url, andcaller_id.
References
- Official podcast API summary: references/podcast-api.md
- Podcast speakers API: Get Podcast Speakers List
- Podcast text generation API: Submit Podcast Text Generation Task
- Podcast audio generation API: Generate Podcast Audio
- Task status API: Query Task Details