Carousel to Video

Lilac carousel converter with slide dots; swap the slides[] array, cover copy, CTA toggle and handle.

Type
Video
Format
TikTok · 9:16
Orientation
Portrait
Duration
20.15s
Scenes
6
Render cost
$0.00504 / render
VariablesData-driven repeatConditional scenes
Open in editor

Free template · opens in the editor, no account required.

Customize Carousel to Video

Carousel to Video is a ready-to-render Content creator / social video design formatted for TikTok · 9:16 with 6 scenes and support for variables, data-driven repeat, conditional scenes. Open it in the editor to replace its copy and media, then render variations through the Zvid API.

15 variables: Every value below is a variable you can override — send them in the variables field of the render request (or edit them in the editor) to generate on-brand versions at scale.

handleText
@build.in.public
coverKickerText
SWIPE-FREE EDITION
coverTitleText
How I grew to<br>10k followers
coverSubText
The exact 4-step system — as a video, not a carousel.
coverImageMedia URL
inkColor
#1C1830
accentColor
#7C5CFF
accentSoftColor
#B7A6FF
paperColor
#EDE9F7
totalSlidesText
4
slidesList · 4
n1
titlePost one format only
bodyFor your first 30 days, repeat a single format until you're unmistakably good at it.
n2
titleHook in 3 words
bodyIf your opening line needs a warm-up, cut it. Lead with the boldest promise you can keep.
n3
titleReply for 30 minutes
bodyAfter every post, answer comments for half an hour. Early engagement compounds hard.
n4
titleShip daily, review weekly
bodyConsistency builds the muscle; a weekly review tells you which posts to double down on.
showCtaToggle
on
ctaTitleText
Want the full<br>playbook?
ctaTextText
Comment 'GROW' and I'll send it
musicUrlMedia URL

The exact JSON payload

This is the full render config — POST it to the API, or open it in the editor to tweak.

Open in editor ↗
{
  "name": "social-carousel-to-video",
  "resolution": "tiktok",
  "frameRate": 30,
  "backgroundColor": "#EDE9F7",
  "outputFormat": "mp4",
  "variables": {
    "handle": "@build.in.public",
    "coverKicker": "SWIPE-FREE EDITION",
    "coverTitle": "How I grew to<br>10k followers",
    "coverSub": "The exact 4-step system — as a video, not a carousel.",
    "coverImage": "https://images.pexels.com/photos/8490673/pexels-photo-8490673.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
    "ink": "#1C1830",
    "accent": "#7C5CFF",
    "accentSoft": "#B7A6FF",
    "paper": "#EDE9F7",
    "totalSlides": "4",
    "slides": [
      {
        "n": "1",
        "title": "Post one format only",
        "body": "For your first 30 days, repeat a single format until you're unmistakably good at it."
      },
      {
        "n": "2",
        "title": "Hook in 3 words",
        "body": "If your opening line needs a warm-up, cut it. Lead with the boldest promise you can keep."
      },
      {
        "n": "3",
        "title": "Reply for 30 minutes",
        "body": "After every post, answer comments for half an hour. Early engagement compounds hard."
      },
      {
        "n": "4",
        "title": "Ship daily, review weekly",
        "body": "Consistency builds the muscle; a weekly review tells you which posts to double down on."
      }
    ],
    "showCta": true,
    "ctaTitle": "Want the full<br>playbook?",
    "ctaText": "Comment 'GROW' and I'll send it",
    "musicUrl": "https://cdn.pixabay.com/audio/2025/03/19/audio_56ae1dae5f.mp3"
  },
  "scenes": [
    {
      "id": "cover",
      "duration": 3.8,
      "backgroundColor": "#EDE9F7",
      "transition": "slideleft",
      "transitionId": "slide",
      "transitionDuration": 0.45,
      "visuals": [
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 3.8,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='carCover' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='#EDE9F7'/><stop offset='1' stop-color='#E0D8F7'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#carCover)'/><circle cx='920' cy='260' r='220' fill='rgba(124,92,255,0.1)'/><circle cx='140' cy='1720' r='260' fill='rgba(124,92,255,0.08)'/></svg>"
        },
        {
          "type": "IMAGE",
          "src": "{{coverImage}}",
          "x": 540,
          "y": 1420,
          "width": 900,
          "height": 640,
          "anchor": "center-center",
          "resize": "cover",
          "zoom": true,
          "radius": {
            "tl": 40,
            "tr": 40,
            "bl": 40,
            "br": 40
          },
          "track": 1,
          "enterBegin": 0,
          "enterEnd": 0.5,
          "enterAnimation": "smoothup",
          "exitEnd": 3.8
        },
        {
          "type": "TEXT",
          "x": 90,
          "y": 160,
          "anchor": "top-left",
          "track": 2,
          "enterBegin": 0.2,
          "enterEnd": 0.6,
          "enterAnimation": "smoothleft",
          "exitEnd": 3.8,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='display:inline-block; background:{{accent}}; color:{{paper}}; border-radius:999px; padding:12px 30px; font-size:26px; font-weight:800; letter-spacing:4px;'>{{coverKicker}}</div>"
        },
        {
          "type": "TEXT",
          "x": 90,
          "y": 330,
          "width": 920,
          "anchor": "top-left",
          "track": 3,
          "enterBegin": 0.4,
          "enterEnd": 0.9,
          "enterAnimation": "smoothup",
          "exitEnd": 3.8,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='color:{{ink}}; font-size:104px; line-height:0.98; font-weight:800; letter-spacing:-3px;'>{{coverTitle}}</div><div style='margin-top:24px; color:#5A5273; font-size:34px; line-height:1.35; font-weight:500;'>{{coverSub}}</div>"
        }
      ]
    },
    {
      "id": "slide",
      "iterate": "slides",
      "iterateAs": "sl",
      "duration": 3.6,
      "backgroundColor": "#EDE9F7",
      "transition": "slideleft",
      "transitionId": "cta",
      "transitionDuration": 0.45,
      "visuals": [
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 3.6,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><rect width='1080' height='1920' fill='#EDE9F7'/><rect x='72' y='420' width='936' height='1080' rx='48' fill='#FFFFFF' stroke='rgba(28,24,48,0.08)' stroke-width='1.5'/><rect x='72' y='420' width='936' height='16' rx='8' fill='#7C5CFF'/><circle cx='240' cy='1720' r='16' fill='rgba(124,92,255,0.35)'/><circle cx='420' cy='1720' r='16' fill='rgba(124,92,255,0.35)'/><circle cx='600' cy='1720' r='16' fill='rgba(124,92,255,0.35)'/><circle cx='780' cy='1720' r='16' fill='rgba(124,92,255,0.35)'/></svg>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 300,
          "anchor": "center-center",
          "track": 2,
          "enterBegin": 0.1,
          "enterEnd": 0.5,
          "enterAnimation": "fade",
          "exitEnd": 3.6,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='color:#8B82A8; font-size:28px; font-weight:800; letter-spacing:5px;'>SLIDE {{sl.n}} / {{totalSlides}}</div>"
        },
        {
          "type": "TEXT",
          "x": 150,
          "y": 520,
          "anchor": "top-left",
          "track": 3,
          "enterBegin": 0.2,
          "enterEnd": 0.6,
          "enterAnimation": "smoothleft",
          "exitEnd": 3.6,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='color:{{accent}}; font-size:200px; line-height:0.9; font-weight:800; letter-spacing:-6px;'>{{sl.n}}</div>"
        },
        {
          "type": "TEXT",
          "x": 150,
          "y": 880,
          "width": 780,
          "anchor": "top-left",
          "track": 4,
          "enterBegin": 0.4,
          "enterEnd": 0.85,
          "enterAnimation": "smoothup",
          "exitEnd": 3.6,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='color:{{ink}}; font-size:66px; line-height:1.02; font-weight:800; letter-spacing:-1px;'>{{sl.title}}</div><div style='margin-top:28px; color:#5A5273; font-size:38px; line-height:1.44; font-weight:500;'>{{sl.body}}</div>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 1810,
          "anchor": "center-center",
          "track": 1,
          "enterBegin": 0,
          "exitEnd": 3.6,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='color:#8B82A8; font-size:24px; font-weight:700; letter-spacing:3px;'>{{handle}}</div>"
        }
      ]
    },
    {
      "id": "cta",
      "duration": 4.2,
      "backgroundColor": "#1C1830",
      "visuals": [
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 4.2,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><radialGradient id='carCta' cx='0.5' cy='0.4' r='0.95'><stop offset='0' stop-color='#2A2350'/><stop offset='1' stop-color='#1C1830'/></radialGradient></defs><rect width='1080' height='1920' fill='url(#carCta)'/><path d='M420 560 h240 a36 36 0 0 1 36 36 v150 a36 36 0 0 1 -36 36 h-140 l-80 70 v-70 h-20 a36 36 0 0 1 -36 -36 v-150 a36 36 0 0 1 36 -36 z' fill='none' stroke='#7C5CFF' stroke-width='5' stroke-linejoin='round'/></svg>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 900,
          "width": 920,
          "anchor": "top-center",
          "track": 1,
          "enterBegin": 0.25,
          "enterEnd": 0.75,
          "enterAnimation": "smoothup",
          "exitEnd": 4.2,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='text-align:center; color:#FFFFFF; font-size:88px; line-height:1.02; font-weight:800; letter-spacing:-2px;'>{{ctaTitle}}</div>"
        },
        {
          "type": "TEXT",
          "condition": "{{showCta}}",
          "x": 540,
          "y": 1200,
          "anchor": "top-center",
          "track": 2,
          "enterBegin": 0.7,
          "enterEnd": 1.15,
          "enterAnimation": "circleopen",
          "exitEnd": 4.2,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='display:inline-block; background:{{accent}}; color:#FFFFFF; border-radius:999px; padding:26px 62px; font-size:36px; font-weight:800;'>{{ctaText}}</div>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 1380,
          "anchor": "top-center",
          "track": 3,
          "enterBegin": 1.05,
          "enterEnd": 1.45,
          "enterAnimation": "fade",
          "exitEnd": 4.2,
          "style": {
            "fontFamily": "Bricolage Grotesque"
          },
          "html": "<div style='text-align:center; color:{{accentSoft}}; font-size:30px; font-weight:800; letter-spacing:3px;'>{{handle}}</div>"
        }
      ]
    }
  ],
  "audios": [
    {
      "src": "{{musicUrl}}",
      "volume": 0.18,
      "track": 0
    }
  ]
}

More Content creator / social templates

View all ↗

Ready to ship video at scale?

Start free — your first render is only a JSON payload away.