Start here
Before you start
Gather the keys and a Google Sheet first. The first-time setup is mostly accounts; a later clip takes only a URL and an approval.
#What you need
- n8n 2.47.3, Cloud or self-hosted. The instance must reach
api.json2video.com,api.openai.comoropenrouter.ai,zernio.com, and Google. - A Google account that can own a Sheet, and a Google Sheets credential in n8n.
- A JSON2Video API key from json2video.com.
- An OpenAI API key from platform.openai.com or an OpenRouter key from openrouter.ai.
- A Zernio API key from zernio.com, with a YouTube channel connected.
- A public HTTPS URL for each test clip (a direct MP4, or a signed URL that stays valid for the whole render).
#What this kit is not
This v1 is clip to captioned Short. It is not a faceless topic-to-video factory (no text-to-speech or stock b-roll) and not a long-video-to-many-clips editor.
It does not use Execute Command or FFmpeg on the n8n host (Execute Command is disabled by default on 2.47.3 and is not available on n8n Cloud).
A ChatGPT Plus or Claude Pro subscription is not an API key. Plus does not include OpenAI API usage. Use a real API key, or OpenRouter.
#Keys and paid plans
JSON2Video new accounts get 600 free credits. Those renders are watermarked and non-commercial, and capped at 1080p / 60 s. Paid plans bill 1 credit per second at any resolution; failed renders are not billed. Commercial YouTube posting needs a paid plan so the file is not watermarked. See JSON2Video pricing.
Zernio’s published social pricing includes two accounts free, then a per-account monthly fee. You connect YouTube inside Zernio — you do not create a Google Cloud OAuth client for YouTube posting.
On n8n Cloud, Google Sheets can use Managed OAuth. On self-hosted n8n you create a Google Cloud OAuth client. Testing-mode Google tokens expire in 7 days unless the app is published or you re-consent.
#Files that came with the pack
Keep these next to this guide:
| File | Role |
|---|---|
auto-shorts-error-handler.json |
Import this one first |
auto-shorts-submit-form.json |
Hosted form → queued row |
auto-shorts-ingest-render.json |
Render + draft metadata |
auto-shorts-post-approved.json |
Posts only approved rows |
sample-queue.csv |
Header + three fictional example rows |
error-log-header.csv |
Header for the error_log tab |
All four workflows ship inactive. Credentials in the JSON are placeholder names with id REPLACE_ME — never paste keys into node parameters.
When you are ready, go to Step-by-step setup.