typetext
{
"podcast_style": "a boy toddler professional studio podcast with a single host speaking into a microphone, modern setup, warm lighting",
"story_prompt": "a toddler giving questionable advice based on an experience at a playground",
"voice_id": "Casual_Guy"
}npm install replicate
REPLICATE_API_TOKEN environment variable:export REPLICATE_API_TOKEN=r8_2E2**********************************
This is your API token. Keep it to yourself.
import Replicate from "replicate";
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN,
});
Run avocado/podcast-generator-wan using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const input = {
podcast_style: "a boy toddler professional studio podcast with a single host speaking into a microphone, modern setup, warm lighting",
story_prompt: "a toddler giving questionable advice based on an experience at a playground",
voice_id: "Casual_Guy"
};
const output = await replicate.run("avocado/podcast-generator-wan", { input });
console.log(output);
To learn more, take a look at the guide on getting started with Node.js.
pip install replicate
REPLICATE_API_TOKEN environment variable:export REPLICATE_API_TOKEN=r8_2E2**********************************
This is your API token. Keep it to yourself.
import replicate
Run avocado/podcast-generator-wan using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run(
"avocado/podcast-generator-wan",
input={
"podcast_style": "a boy toddler professional studio podcast with a single host speaking into a microphone, modern setup, warm lighting",
"story_prompt": "a toddler giving questionable advice based on an experience at a playground",
"voice_id": "Casual_Guy"
}
)
print(output)
To learn more, take a look at the guide on getting started with Python.
REPLICATE_API_TOKEN environment variable:export REPLICATE_API_TOKEN=r8_2E2**********************************
This is your API token. Keep it to yourself.
Run avocado/podcast-generator-wan using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \
-H "Authorization: Bearer $REPLICATE_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Prefer: wait" \
-d $'{
"input": {
"podcast_style": "a boy toddler professional studio podcast with a single host speaking into a microphone, modern setup, warm lighting",
"story_prompt": "a toddler giving questionable advice based on an experience at a playground",
"voice_id": "Casual_Guy"
}
}' \
https://api.replicate.com/v1/models/avocado/podcast-generator-wan/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Object output with 4 properties
So yesterday I was at the playground, right? And I learned something super important that I think all grown-ups need to know. I was on the big twisty slide, the really tall one that makes your tummy feel funny, when this kid Tyler started crying because he was scared to go down. And you know what I did? I told him the secret. You just gotta close your eyes, hold your breath, and think about cookies the whole way down. Works every time! Tyler tried it and guess what happened? He went flying down that slide laughing his head off. Now here's the thing - I think this works for everything scary that grown-ups do too. Like when my mom has to talk to mean people on the phone, or when dad has to fix the scary noise the car makes. Just close your eyes, hold your breath, and think about cookies. I mean, it got Tyler down the slide, and last week it helped me eat my vegetables, so basically I'm pretty sure I've figured out life. You're welcome, everybody.
{
"id": "mb8gymk7vnrme0ct3q4aakvnt0",
"model": "avocado/podcast-generator-wan",
"version": "hidden",
"input": {
"podcast_style": "a boy toddler professional studio podcast with a single host speaking into a microphone, modern setup, warm lighting",
"story_prompt": "a toddler giving questionable advice based on an experience at a playground",
"voice_id": "Casual_Guy"
},
"logs": "Generating podcast script...\nScript generated (963 characters)\nGenerating speech audio...\nAudio generated: /tmp/cog-runner-tmp-3494772783/2636c3b8baac5a52/tmp6kbjz4_9.mp3\nGenerating podcast host image...\nImage generated: /tmp/cog-runner-tmp-3494772783/bf48b9294ee1f048/out-0.webp\nGetting audio duration...\nAudio duration: 52.67 seconds\nSplitting audio into 4 chunks...\nffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers\n built with gcc 13.2.1 (Alpine 13.2.1_git20240309) 20240309\n configuration: --pkg-config-flags=--static --extra-cflags=-fopenmp --extra-ldflags='-fopenmp -Wl,--allow-multiple-definition -Wl,-z,stack-size=2097152' --toolchain=hardened --disable-debug --disable-shared --disable-ffplay --enable-static --enable-gpl --enable-version3 --enable-fontconfig --enable-gray --enable-iconv --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libdav1d --enable-libdavs2 --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librabbitmq --enable-librav1e --enable-librsvg --enable-librtmp --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxevd --enable-libxeve --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-openssl\n libavutil 59. 39.100 / 59. 39.100\n libavcodec 61. 19.101 / 61. 19.101\n libavformat 61. 7.100 / 61. 7.100\n libavdevice 61. 3.100 / 61. 3.100\n libavfilter 10. 4.100 / 10. 4.100\n libswscale 8. 3.100 / 8. 3.100\n libswresample 5. 3.100 / 5. 3.100\n libpostproc 58. 3.100 / 58. 3.100\n[mp3 @ 0x796df42abac0] Estimating duration from bitrate, this may be inaccurate\nInput #0, mp3, from '/tmp/cog-runner-tmp-3494772783/2636c3b8baac5a52/tmp6kbjz4_9.mp3':\n Metadata:\n encoder : Lavf58.29.100\n Duration: 00:00:52.67, start: 0.000000, bitrate: 128 kb/s\n Stream #0:0: Audio: mp3 (mp3float), 32000 Hz, mono, fltp, 128 kb/s\nStream mapping:\n Stream #0:0 -> #0:0 (copy)\nOutput #0, mp3, to '/tmp/audio_chunk_0.mp3':\n Metadata:\n TSSE : Lavf61.7.100\n Stream #0:0: Audio: mp3, 32000 Hz, mono, fltp, 128 kb/s\nPress [q] to stop, [?] for help\n[out#0/mp3 @ 0x796df42a8580] video:0KiB audio:235KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.258127%\nsize= 235KiB time=00:00:15.01 bitrate= 128.3kbits/s speed=2.24e+03x \nCreated chunk 1/4: /tmp/audio_chunk_0.mp3\nffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers\n built with gcc 13.2.1 (Alpine 13.2.1_git20240309) 20240309\n configuration: --pkg-config-flags=--static --extra-cflags=-fopenmp --extra-ldflags='-fopenmp -Wl,--allow-multiple-definition -Wl,-z,stack-size=2097152' --toolchain=hardened --disable-debug --disable-shared --disable-ffplay --enable-static --enable-gpl --enable-version3 --enable-fontconfig --enable-gray --enable-iconv --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libdav1d --enable-libdavs2 --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librabbitmq --enable-librav1e --enable-librsvg --enable-librtmp --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxevd --enable-libxeve --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-openssl\n libavutil 59. 39.100 / 59. 39.100\n libavcodec 61. 19.101 / 61. 19.101\n libavformat 61. 7.100 / 61. 7.100\n libavdevice 61. 3.100 / 61. 3.100\n libavfilter 10. 4.100 / 10. 4.100\n libswscale 8. 3.100 / 8. 3.100\n libswresample 5. 3.100 / 5. 3.100\n libpostproc 58. 3.100 / 58. 3.100\n[mp3 @ 0x7d9c15d3aac0] Estimating duration from bitrate, this may be inaccurate\nInput #0, mp3, from '/tmp/cog-runner-tmp-3494772783/2636c3b8baac5a52/tmp6kbjz4_9.mp3':\n Metadata:\n encoder : Lavf58.29.100\n Duration: 00:00:52.67, start: 0.000000, bitrate: 128 kb/s\n Stream #0:0: Audio: mp3 (mp3float), 32000 Hz, mono, fltp, 128 kb/s\nStream mapping:\n Stream #0:0 -> #0:0 (copy)\nOutput #0, mp3, to '/tmp/audio_chunk_1.mp3':\n Metadata:\n TSSE : Lavf61.7.100\n Stream #0:0: Audio: mp3, 32000 Hz, mono, fltp, 128 kb/s\nPress [q] to stop, [?] for help\n[out#0/mp3 @ 0x7d9c15d37580] video:0KiB audio:235KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.257509%\nsize= 236KiB time=00:00:15.02 bitrate= 128.5kbits/s speed=2.24e+03x \nCreated chunk 2/4: /tmp/audio_chunk_1.mp3\nffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers\n built with gcc 13.2.1 (Alpine 13.2.1_git20240309) 20240309\n configuration: --pkg-config-flags=--static --extra-cflags=-fopenmp --extra-ldflags='-fopenmp -Wl,--allow-multiple-definition -Wl,-z,stack-size=2097152' --toolchain=hardened --disable-debug --disable-shared --disable-ffplay --enable-static --enable-gpl --enable-version3 --enable-fontconfig --enable-gray --enable-iconv --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libdav1d --enable-libdavs2 --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librabbitmq --enable-librav1e --enable-librsvg --enable-librtmp --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxevd --enable-libxeve --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-openssl\n libavutil 59. 39.100 / 59. 39.100\n libavcodec 61. 19.101 / 61. 19.101\n libavformat 61. 7.100 / 61. 7.100\n libavdevice 61. 3.100 / 61. 3.100\n libavfilter 10. 4.100 / 10. 4.100\n libswscale 8. 3.100 / 8. 3.100\n libswresample 5. 3.100 / 5. 3.100\n libpostproc 58. 3.100 / 58. 3.100\n[mp3 @ 0x710708f4cac0] Estimating duration from bitrate, this may be inaccurate\nInput #0, mp3, from '/tmp/cog-runner-tmp-3494772783/2636c3b8baac5a52/tmp6kbjz4_9.mp3':\n Metadata:\n encoder : Lavf58.29.100\n Duration: 00:00:52.67, start: 0.000000, bitrate: 128 kb/s\n Stream #0:0: Audio: mp3 (mp3float), 32000 Hz, mono, fltp, 128 kb/s\nStream mapping:\n Stream #0:0 -> #0:0 (copy)\nOutput #0, mp3, to '/tmp/audio_chunk_2.mp3':\n Metadata:\n TSSE : Lavf61.7.100\n Stream #0:0: Audio: mp3, 32000 Hz, mono, fltp, 128 kb/s\nPress [q] to stop, [?] for help\n[out#0/mp3 @ 0x710708f49580] video:0KiB audio:235KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.258127%\nsize= 235KiB time=00:00:15.00 bitrate= 128.4kbits/s speed=1.92e+03x \nCreated chunk 3/4: /tmp/audio_chunk_2.mp3\nffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers\n built with gcc 13.2.1 (Alpine 13.2.1_git20240309) 20240309\n configuration: --pkg-config-flags=--static --extra-cflags=-fopenmp --extra-ldflags='-fopenmp -Wl,--allow-multiple-definition -Wl,-z,stack-size=2097152' --toolchain=hardened --disable-debug --disable-shared --disable-ffplay --enable-static --enable-gpl --enable-version3 --enable-fontconfig --enable-gray --enable-iconv --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libdav1d --enable-libdavs2 --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librabbitmq --enable-librav1e --enable-librsvg --enable-librtmp --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxevd --enable-libxeve --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-openssl\n libavutil 59. 39.100 / 59. 39.100\n libavcodec 61. 19.101 / 61. 19.101\n libavformat 61. 7.100 / 61. 7.100\n libavdevice 61. 3.100 / 61. 3.100\n libavfilter 10. 4.100 / 10. 4.100\n libswscale 8. 3.100 / 8. 3.100\n libswresample 5. 3.100 / 5. 3.100\n libpostproc 58. 3.100 / 58. 3.100\n[mp3 @ 0x7cdc5efebac0] Estimating duration from bitrate, this may be inaccurate\nInput #0, mp3, from '/tmp/cog-runner-tmp-3494772783/2636c3b8baac5a52/tmp6kbjz4_9.mp3':\n Metadata:\n encoder : Lavf58.29.100\n Duration: 00:00:52.67, start: 0.000000, bitrate: 128 kb/s\n Stream #0:0: Audio: mp3 (mp3float), 32000 Hz, mono, fltp, 128 kb/s\nStream mapping:\n Stream #0:0 -> #0:0 (copy)\nOutput #0, mp3, to '/tmp/audio_chunk_3.mp3':\n Metadata:\n TSSE : Lavf61.7.100\n Stream #0:0: Audio: mp3, 32000 Hz, mono, fltp, 128 kb/s\nPress [q] to stop, [?] for help\n[out#0/mp3 @ 0x7cdc5efe8580] video:0KiB audio:120KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.505347%\nsize= 120KiB time=00:00:07.66 bitrate= 128.6kbits/s speed=3.14e+03x \nCreated chunk 4/4: /tmp/audio_chunk_3.mp3\nStarting 4 video generation jobs in parallel...\nStarting video generation for chunk 1/4...\nChunk 1/4 job started\nStarting video generation for chunk 2/4...\nChunk 2/4 job started\nStarting video generation for chunk 3/4...\nChunk 3/4 job started\nStarting video generation for chunk 4/4...\nChunk 4/4 job started\nWaiting for all 4 videos to complete...\nWaiting for chunk 1/4...\nChunk 1/4 completed: /tmp/cog-runner-tmp-3494772783/1a1a665addce1a35/output.mp4\nWaiting for chunk 2/4...\nChunk 2/4 completed: /tmp/cog-runner-tmp-3494772783/fd4891c5b91e728d/output.mp4\nWaiting for chunk 3/4...\nChunk 3/4 completed: /tmp/cog-runner-tmp-3494772783/24ece0ea582576c5/output.mp4\nWaiting for chunk 4/4...\nChunk 4/4 completed: /tmp/cog-runner-tmp-3494772783/6bd8919b98f40a43/output.mp4\nMerging video chunks together...\nFinal video merged: /tmp/cog-runner-tmp-3494772783/6f484fc5965778a1/output.mp4\nAdding captions to video...\nCaptions added: /tmp/cog-runner-tmp-3494772783/f2a7f2a728db9acc/output.mp4\nPipeline complete!",
"output": {
"audio": "https://replicate.delivery/xezq/vWaeZAj304TWAiwft6HxBB80xgDFUN8YvQeeBd1NVUr7vFLWB/tmp6kbjz4_9.mp3",
"image": "https://replicate.delivery/xezq/Og0Ei5m5epSZGCYfe9hoYjuV4bDXCLIDhXfQyOLgjP45vFLWB/out-0.webp",
"script": "So yesterday I was at the playground, right? And I learned something super important that I think all grown-ups need to know. I was on the big twisty slide, the really tall one that makes your tummy feel funny, when this kid Tyler started crying because he was scared to go down. \n\nAnd you know what I did? I told him the secret. You just gotta close your eyes, hold your breath, and think about cookies the whole way down. Works every time! Tyler tried it and guess what happened? He went flying down that slide laughing his head off.\n\nNow here's the thing - I think this works for everything scary that grown-ups do too. Like when my mom has to talk to mean people on the phone, or when dad has to fix the scary noise the car makes. Just close your eyes, hold your breath, and think about cookies. \n\nI mean, it got Tyler down the slide, and last week it helped me eat my vegetables, so basically I'm pretty sure I've figured out life. You're welcome, everybody.",
"video": "https://replicate.delivery/xezq/Y1uSOyThPyJNMZuYSQVsmN48ZPNWgfpxps93KTtZ1RAfbxiVA/output.mp4"
},
"data_removed": false,
"error": null,
"source": "web",
"status": "succeeded",
"created_at": "2025-10-25T23:51:04.413Z",
"started_at": "2025-10-25T23:51:04.797816Z",
"completed_at": "2025-10-26T00:02:06.794157Z",
"urls": {
"cancel": "https://api.replicate.com/v1/predictions/mb8gymk7vnrme0ct3q4aakvnt0/cancel",
"children": "https://api.replicate.com/v1/predictions/mb8gymk7vnrme0ct3q4aakvnt0/children",
"get": "https://api.replicate.com/v1/predictions/mb8gymk7vnrme0ct3q4aakvnt0",
"root": "https://api.replicate.com/v1/predictions/mb8gymk7vnrme0ct3q4aakvnt0",
"web": "https://replicate.com/p/mb8gymk7vnrme0ct3q4aakvnt0"
},
"metrics": {
"predict_time": 661.99634142,
"total_time": 662.381157434
}
}