Written by Hector Garcia

@hex.gar

Estimated reading time: 18 min read

Shorts Studio Setup Guide

AI Consultant

SystemsReading time: 18 min read

This is for anyone posting Shorts who's tired of scripting, recording, editing, and uploading by hand. Shorts Studio turns a single topic into a finished, captioned YouTube Short, script, AI voice, AI generated scenes, and a live upload, all from one local app. Setup is one time, after that every new Short is just type a topic, hit Generate, then Publish. Start with Step 1 below and work through Setup until all four connections show Ready.

What you'll set up

By the end of this guide, Shorts Studio will take a single topic and turn it into a finished, captioned YouTube Short, script, narration, AI generated scenes, and a published upload, without touching CapCut or uploading anything by hand.

Along the way you'll install Node.js and ffmpeg, connect ElevenLabs for narration, connect Kling for AI images and video, and connect your YouTube channel through Google Cloud. All of it is one time setup. After that, every Short is just type a topic, hit Generate, then Publish.

Step 1: Install Node.js

Node.js is the engine that runs Shorts Studio on your computer. Install the LTS version, that's the stable release meant for regular use, not the experimental one.

Download it from nodejs.org.

Open a new terminal and verify it installed correctly:

Terminal
node -v
npm -v

Both commands should print a version number. If either one says command not found, close and reopen your terminal, then try again.

Screenshot 81

Step 2: Install ffmpeg

ffmpeg is what actually stitches your narration and AI generated scenes into one finished video file. Without it, Shorts Studio can build everything else but can't assemble the final MP4.

Windows:

Code
winget install ffmpeg

Mac:

Terminal
brew install ffmpeg

Linux:

Terminal
sudo apt install ffmpeg

Open a new terminal after installing, then verify:

Code
ffmpeg -version

Step 3: Start Shorts Studio

In the Shorts Studio project folder, install dependencies once, then start the app:

Terminal
npm install
npm run dev

Leave that terminal window open and running, Shorts Studio needs it active the whole time you're using the app. Open localhost:3000 in your browser, that's the Shorts Studio interface.

Screenshot 83

Step 4: Connect ElevenLabs (voice)

This is the fastest connection, about 2 minutes. ElevenLabs generates the narration voice for every Short.

Sign up or log in at ElevenLabs, then create an API key: open Developers, then Profile and API key, then Create API key. Copy it somewhere safe.

Paste it into Shorts Studio's Setup panel, under ElevenLabs, then click Save.

Voice ID is optional, the default voice works fine to start.

Screenshot 82

Step 5: Connect Kling (images and video)

This one takes longer, about 10 minutes, and it's the step most people get wrong: a normal Kling membership does not pay for API access. The API runs on a separate credit system called developer packs, so even if you're already subscribed to Kling, you still need to buy these separately.

Create an API key at Kling dev API key and copy it, you'll only see it once.

At Kling dev pricing, buy a small Image pack and a small Video pack, you need both, Shorts Studio uses Kling for still images and for the short video clips.

Paste the key into Setup, under Kling, then Save.

Important: If Generate says "Not enough Kling API units," don't check Order History, check Expense Center, then Quotas / Resource Packages instead, that's where your actual remaining balance shows.

Screenshot 84

Step 6: Create a Google Cloud project

Connecting YouTube is the longest step, about 15 minutes, but it's one time only. After this, publishing a Short is a single button click.

Open Google Cloud Console and create a new project, or pick an existing one, the name doesn't matter, Shorts Studio works fine.

Enable the YouTube Data API v3 for that project, this is what lets Shorts Studio upload videos to your channel on your behalf.

Screenshot 85

Step 7: Create an OAuth client

The next tool you'll use, Google's OAuth Playground, specifically needs a Web application client, not a Desktop client and not a plain API key. Using the wrong type here is the most common setup mistake.

In Google Cloud Console, go to APIs & Services, then Credentials. If it asks you to configure a consent screen first, choose External, that's fine for your own channel, and add yourself as a Test user while it's in Testing mode.

Click Create credentials, then OAuth client ID. For Application type, choose Web application.

Under Authorized redirect URIs, add this exactly:

Code
https://developers.google.com/oauthplayground

Click Create, then copy the Client ID and Client Secret, you'll need both in the next step.

Note: If you already created a Desktop client by accident, either edit it to add the redirect URI above if Google allows it, or just create a new Web application client instead.

Step 8: Get your refresh token

Open the Google OAuth Playground.

Click the gear icon in the top right, then enable "Use your own OAuth credentials." Paste in the Web application Client ID and Client Secret you just copied, then close the panel.

Warning: Don't skip that step. If you leave it off, Google uses its own Playground app instead of yours, and you'll get errors later that trace back to this exact spot.

In the API list on the left, find YouTube Data API v3 and select https://www.googleapis.com/auth/youtube.upload.

Click Authorize APIs, sign in with the Google account that owns your YouTube channel, then Allow.

Click Exchange authorization code for tokens, then copy the Refresh token that appears.

Note: If you see "Error 400: redirecturimismatch," your Web client is missing the oauthplayground redirect URI from Step 7, add it, wait about a minute for it to take effect, then try again.

Screenshot 86

Step 9: Finish YouTube setup

Back in Shorts Studio's Setup panel, under YouTube, paste in your Client ID, Client Secret, and Refresh Token, then Save. YouTube should switch to Ready.

Ready is Shorts Studio's way of confirming a connection actually works. Once all four items, ElevenLabs, Kling, ffmpeg, and YouTube, show Ready, you're fully set up and Generate and Publish will work end to end.

Screenshot 87

Make and publish your first Short

  1. Go to Create and type a topic, something like "The telegram that almost started WW3"
  2. Click Generate short, then stay on the episode page until the status changes to Ready
  3. While it runs, Shorts Studio writes the script, narrates it, builds five AI scenes, and stitches everything into a captioned vertical video. This can take several minutes, keep the tab open and keep npm run dev running
  4. Preview it with the phone player on the left. If it's black, hard refresh (Ctrl+Shift+R) and press play, or just use Open/download video instead
  5. Click Publish to YouTube and wait for the upload to finish
  6. Open YouTube Studio, your Short is there, set to unlisted by default, review it, then switch it to Public when you're ready
Screenshot 88

Everyday checklist

Once Setup is fully Ready, this is the entire loop for every new Short.

Good to know

You only need to top up Kling when your units actually run out, there's no ongoing subscription cost beyond that.

Want the same Short on TikTok or Reels too? Download the same MP4 from Shorts Studio and upload it directly, no extra generation needed.

Cost per Short

ServiceWhat you use
KlingAbout 5 images plus five 5 second video clips, from your Image and Video packs
ElevenLabsAbout 45 to 60 seconds of narration
YouTubeFree, uploading to your own channel doesn't cost anything

Troubleshooting

ProblemWhat to try
Publish button disabledFinish the YouTube section in Setup, all three fields need to be filled in
YouTube upload failedGenerate a new refresh token in OAuth Playground, confirm you're added as a consent screen test user, and confirm the YouTube Data API is enabled
Not enough Kling API unitsBuy an Image pack and a Video pack, then check Quotas under Expense Center
ffmpeg missingReinstall ffmpeg, check it's on your PATH, open a new terminal, then restart npm run dev
Player is black but status says ReadyHard refresh and press play, or just download the MP4 directly
Generate seems stuckKeep the episode page open, check your Kling units, and check the terminal running npm run dev for errors

Useful links

Keep your keys private

Warning: Your keys stay on your own computer, in data/secrets.json or .env.local. Never share them or commit them to git.

Shorts Studio Setup Guide | Software & AI Consulting