Cover for Turn a carousel into video for Shorts, TikTok and Reels

Turn a carousel into video for Shorts, TikTok and Reels

Animate your carousel slides into a 9:16 MP4 with Claude Code and Remotion, then post a Short, TikTok and Reel plus the carousel itself from one session.

Nov 2, 202610 min readAlexandroAlexandro
Table of Contents

To turn a carousel into a video, export the slides as images (or make them in PublishQ's carousel generator), ask Claude Code to animate them into a 9:16 video with Remotion, giving each slide a few seconds and a transition, with music if you want it, and render the MP4. Then, in one PublishQ session, post the video as a YouTube Short, a TikTok and an Instagram Reel, and post the original slides as a carousel on Instagram and LinkedIn.

how to turn a carousel into a video for TikTok and Reels

What you need

  • Your slides as JPEG files, 5 to 10 of them, all the same size
  • Node.js and Claude Code on your computer
  • A PublishQ account with your YouTube, TikTok, Instagram and LinkedIn accounts connected
  • A music file, if you want one

Pick the slide size before you design anything. Instagram only takes feed images between 4:5 and 1.91:1,1 so a 9:16 slide cannot go into an Instagram carousel as it is. Carousel images are also all cropped to match the first one.2 Make the deck at 4:5 portrait, which the carousel generator exports at 1080 x 1350, and let the video put each slide on a taller 1080 x 1920 canvas. The 570 pixels left over give you room for a title band and a background color.

The recipe

  1. Download the slides. In the carousel generator, choose the 4:5 portrait size, write your slides and download them. Each slide comes out as a numbered JPEG, which is the format TikTok, Instagram and LinkedIn all take. Slides from another tool work too: export JPEGs named slide-01.jpg, slide-02.jpg and so on.

  2. Start a Remotion project. Remotion's docs describe making videos by prompting a coding agent, starting from a blank project.3

    npx create-video --yes --blank slides-video
    cd slides-video
    npx remotion skills add

    Copy the JPEGs and your music into the project's public/ folder. Remotion loads files from that folder with staticFile(), and its <Img> component waits for each image to load before it renders a frame, so slides do not flicker.4 Then run claude in the same folder.

  3. Ask Claude Code for the composition. Paste a prompt like this, with your own slide count and timing from the table further down:

    Build a 1080x1920 composition at 30 fps called SlidesVideo.
    Show public/slide-01.jpg to slide-08.jpg in order with <Img> and staticFile(),
    each one 1080 wide, centered, a little above the middle of the frame.
    Background color #111827. Put the title "5 pricing mistakes I made" in the top band.
    Use <TransitionSeries> from @remotion/transitions: 75 frames per slide and a
    15-frame slide() transition between slides. Add a slow zoom from 100% to 104%
    on each slide so the frame is never static.
    Add public/music.mp3 with <Audio> from @remotion/media at volume 0.2.
    Work out the composition length from the transition math and tell me the total.

    <TransitionSeries> puts a transition between two sequences, and both scenes play at once while it runs.5 The music line follows Remotion's own example of a background track at a lower volume.6

  4. Preview it. Run npm run dev and scrub through the preview in your browser.3 If you cannot finish reading a slide before it moves, ask Claude Code to add frames to that slide only.

  5. Render the MP4. npx remotion render SlidesVideo out/slides.mp4 writes the file, and Remotion uses the H.264 encoder when you do not pass a codec.7 A 30 fps H.264 MP4 at 1080 x 1920 fits Reels (23 to 60 fps, 9:16 recommended)1 and TikTok (23 to 60 fps, 360 to 4096 pixels per side).8

  6. Post both formats from PublishQ. One more prompt to Claude Code does the uploads and two posts. The step is described in its own section below.

animate carousel slides into a 9:16 video with Claude Code and Remotion

Seconds per slide for 5, 8 and 10 slides

Every transition overlaps two slides, so it takes its length off the total. Remotion's docs give the formula: add up the slide durations and subtract each transition.5 The table uses 30 fps and a 0.5 second (15 frame) transition. "Light" means a headline and a line of text. "Dense" means a list or a paragraph.

SlidesLight text: seconds per slideLight: total lengthDense text: seconds per slideDense: total length
53 (90 frames)13 seconds5 (150 frames)23 seconds
82.5 (75 frames)16.5 seconds4 (120 frames)28.5 seconds
102.5 (75 frames)20.5 seconds3.5 (105 frames)30.5 seconds

For any other deck: total frames = slides x frames per slide - (slides - 1) x 15. Give the first slide an extra second if it carries your hook, and the last one an extra second if it asks for a follow.

Every row stays well under a minute. That matters on YouTube: a vertical video up to three minutes counts as a Short, but a Short over one minute with an active copyright claim gets blocked.9 If you want music without the risk, the tracks in YouTube's own Audio Library are royalty-free and do not get Content ID claims.9

Step 6: two posts from one session

Connect PublishQ to Claude Code once:

claude mcp add --transport http publishq https://publishq.com/mcp

Type /mcp, pick Authenticate and approve the login in your browser. Your YouTube channel is the one you connected in PublishQ, so you never create a Google Cloud project or wait for API access. Then:

Upload out/slides.mp4 and public/slide-01.jpg to slide-08.jpg to PublishQ, all in the
folder "Carousels/Pricing mistakes".
Post 1, the video: my YouTube, TikTok and Instagram accounts. YouTube title
"5 pricing mistakes I made in year one", unlisted for now. Give TikTok and Instagram
their own captions with postOverrides. Call publishq_get_tiktok_creator_info first and
use a privacy level it returns.
Post 2, the slides in order: my Instagram and LinkedIn accounts, one caption each.
Schedule post 1 for tomorrow 09:00 UTC and post 2 for Thursday 09:00 UTC.
Show me both posts before you create them.

Claude Code uses publishq_upload_media and publishq_create_post to do it, and the files stay grouped in a media folder for the next time you reuse the deck. A vertical video under three minutes becomes a Short with no extra setting, and a single video on Instagram publishes as a Reel. The eight JPEGs become an Instagram carousel and a multi-image LinkedIn post. Both posts can be edited or cancelled until they go out. The Instagram MCP guide has more prompts for the carousel side, and the YouTube API docs list the settings the Short accepts, like description and tags.

Before you post, put one frame of the video into the Shorts safe zone checker and the TikTok safe zone checker. Each app lays its buttons and caption over part of the frame, and the checkers show you which part, so you can tell Claude Code to nudge the slide up or shrink it.

Skip the video: a TikTok photo post

TikTok has its own answer to carousels. A photo post holds up to 35 images, and with auto_add_music turned on TikTok adds recommended music that the creator can change later in the app.10 TikTok takes JPEG or WebP images up to 1080p.8

In PublishQ that is the same 8 JPEGs posted to your TikTok account with autoAddMusic: true in the TikTok settings, and photoCoverIndex if a slide other than the first should be the cover. Add TikTok to post 2 in the prompt above and you have three carousels and three videos from one deck. The TikTok MCP prompts cover the TikTok settings in more detail.

Nothing stops you from posting both on TikTok, a photo post one day and the video another.

No code: AI video creation

If you would rather not touch a terminal, AI video creation in the PublishQ dashboard goes from a prompt or a template to a short vertical video. AI makes the scene images, a template renders the video, and you preview and edit it before scheduling it to YouTube Shorts, TikTok and Reels. It suits a video that starts from an idea rather than from slides you already have.

post the same carousel as a Short TikTok Reel and Instagram LinkedIn carousel

Doing this with Cursor, Codex or another agent

Remotion's prompting guide names Claude Code and Codex,3 and Cursor runs the same terminal commands, so steps 2 to 5 do not change. Only the PublishQ connection does. In Cursor, add {"mcpServers":{"publishq":{"url":"https://publishq.com/mcp"}}} to ~/.cursor/mcp.json. In Codex, run npx @publishq/cli@latest login, then codex mcp add publishq -- npx -y @publishq/mcp@latest.

For any other agent, open https://publishq.com/agents and paste the line at the top of that page into your agent. It sets itself up and sends you a link to approve the login in your browser.

The MCP server, CLI and API are on every plan, the Free plan included. One license note on the Remotion side: it is free for individuals and companies with up to three employees, and bigger for-profit companies need a company license.11

Post your next carousel twice

Create a PublishQ account, connect your channels, and post the slides and the Short from the same session.

Footnotes

  1. IG User Media reference, Meta for Developers (2026-11) - feed images must be between 4:5 and 1.91:1; Reels at 23 to 60 fps with 9:16 recommended ↩ ↩2

  2. Content Publishing, Instagram Platform, Meta for Developers (2026-11) - carousel images are all cropped based on the first image, 1:1 by default ↩

  3. Prompting videos with coding agents, Remotion (2026-11) - npx create-video --yes --blank, npx remotion skills add, npm run dev, works with Claude Code and Codex ↩ ↩2 ↩3

  4. Img, Remotion (2026-11) - images in public/ referenced with staticFile(), loaded before the frame renders to avoid flicker ↩

  5. TransitionSeries, Remotion (2026-11) - transitions between sequences, both scenes render during a transition, total duration is the sum of sequences minus transitions ↩ ↩2

  6. Video and Audio, Remotion (2026-11) - Audio from @remotion/media with a file in public/, volume and loop ↩

  7. npx remotion render, Remotion (2026-11) - render command with composition ID and output location, H.264 when no codec is given ↩

  8. Content Posting API media transfer guide, TikTok for Developers (2026-11) - video 23 to 60 fps, 360 to 4096 pixels per side; images WebP or JPEG up to 1080p ↩ ↩2

  9. Understand three-minute YouTube Shorts, YouTube Help (2026-11) - square or vertical videos up to three minutes are Shorts; Shorts over one minute with an active claim are blocked; YouTube Audio Library music gets no Content ID claim ↩ ↩2

  10. Content Posting API photo post reference, TikTok for Developers (2026-11) - photo posts with up to 35 images, auto_add_music adds recommended music the user can change later ↩

  11. Remotion License, remotion-dev/remotion on GitHub (2026-11) - free for individuals and for-profit organizations with up to 3 employees; larger companies need a company license ↩

Frequently Asked Questions

Direct answers extracted from this article.

Export the slides as JPEGs, put them in a Remotion project and ask Claude Code to show each slide for 2.5 to 5 seconds with a short transition on a 1080 x 1920 canvas, then render the MP4. Post that file as a YouTube Short, TikTok and Instagram Reel, and post the original slides as a carousel.
About 2.5 to 3 seconds for a slide with a headline and one line, and 3.5 to 5 seconds for a slide with a list or a paragraph. An 8 slide deck lands between roughly 16 and 29 seconds once the half-second transitions are taken off the total.
Make them 4:5 portrait at 1080 x 1350. Instagram feed images must be between 4:5 and 1.91:1, so 9:16 slides will not work as an Instagram carousel. The video then places each 4:5 slide on a 1080 x 1920 canvas with room for a title.
Yes. TikTok photo posts take up to 35 images, and with auto add music turned on TikTok picks background music the creator can change later. In PublishQ you post the same slides to TikTok with autoAddMusic set to true.
Yes. PublishQ AI video creation turns a prompt or a template into a short vertical video that you preview, edit and schedule to YouTube Shorts, TikTok and Reels from the dashboard.
Start for Free

No credit card required • Set up in under 3 minutes