Skip to content

Download the Video

When a render completes, the final MP4 is hosted on GEN’s CDN and accessible via a public URL. This page covers the practical patterns for pulling that MP4 somewhere useful.

After polling a render to completed, output_resources[0].url is the CDN URL:

{
"id": 56789,
"status": "completed",
"output_resources": [
{
"id": 4821,
"url": "https://cdn.gen.pro/outputs/render_xyz.mp4",
"thumbnail_url": "https://cdn.gen.pro/thumbnails/render_xyz.jpg",
"object_type": "video"
}
]
}
Terminal window
curl -L -o final_video.mp4 "https://cdn.gen.pro/outputs/render_xyz.mp4"

For integrations that post to a scheduler or mirror to your own CDN, skip local disk:

const src = await fetch(generation.output_resources[0].url);
const dest = await fetch('https://your-storage.example.com/upload', {
method: 'PUT',
body: src.body, // streams through
headers: { 'Content-Type': 'video/mp4' },
});

The Publishing API takes media_url and expects a publicly accessible URL at post time. The GEN CDN URL works directly — no need to re-upload:

{
"platform": "tiktok",
"media_url": "https://cdn.gen.pro/outputs/render_xyz.mp4",
"description": "caption #hashtags",
"schedule_type": "now"
}

Every render produces a thumbnail_url — a JPEG of the first frame. Use it for previews in your own UI without fetching the full MP4.

Rendered output resources persist indefinitely under your workspace. If you delete the engine, the output resources are detached but the files remain accessible until you explicitly delete them.

To delete a single output resource:

Terminal window
curl -X DELETE "https://api.gen.pro/v1/content_resources/$RESOURCE_ID?agent_id=$AGENT_ID" \
-H "X-API-Key: $GEN_API_KEY"

The render is the composite, but each layer also has a downloadable output. If you only need the voiceover MP3 or a single b-roll clip, fetch the layer’s default_user_job.output_resources[0].url instead.