n8n YouTube Shorts automation: make a video, then upload it
Automate YouTube Shorts in n8n: start a vertical video with an HTTP Request node, download the finished MP4, and post it with the YouTube node's Upload.

To automate YouTube Shorts with n8n, chain three steps: start a vertical video from an HTTP Request node, download the finished MP4 as binary data when the job reports back, and post that file with n8n's YouTube node (Resource Video, Operation Upload) under a YouTube OAuth2 credential for your channel. YouTube counts an upload as a Short when it is square or vertical and up to three minutes long.
n8n behavior comes from its YouTube node docs and the node's source; YouTube rules from its Videos: insert reference and Shorts help; Sume behavior from Create a run and Runs and results. All read 2026-09-28. Sume has no n8n node or YouTube connector: it makes the file, and n8n posts it.
Which nodes does the workflow need?
One execution per Short, in this order:
- A trigger, such as a daily Schedule Trigger.
- HTTP Request:
POSTa run of your Format with a Bearer credential, a date-basedIdempotency-Key, and the Wait node's resume URL ascommunication.webhook_url. - Wait, resumed by the run's single signed webhook, then HTTP Request to read the run with your key (set up in this guide).
- If: continue only when the run is
completed. - HTTP Request:
GETthe run'sprimary_output_urlwith Response Format set to File and Put Output in Field set todata. The URL is a durable, publicmedia.sume.comfile, so no credential is needed. - Optional: a person approves the video first (n8n human in the loop).
- YouTube: Upload.
{
"instruction": "Make a 45-second vertical 9:16 tip video for YouTube Shorts.",
"generation_spend_cap_usd": 20,
"communication": { "webhook_url": "{{ $execution.resumeUrl }}" }
}How do I configure the YouTube node's upload?
Choose Resource Video and Operation Upload. The fields below come from the node's source; the docs page lists the operation but not its fields.
| Field | Notes |
|---|---|
| Title | Required. |
| Region Code | The category list depends on it. |
| Category Name or ID | Pick from the list or set an ID. |
| Input Binary Field | Required. Defaults to data, the field the download wrote. |
| Privacy Status (option) | Private, Public, or Unlisted. |
| Publish At (option) | Needs Privacy Status set to Private. |
| Notify Subscribers (option) | Off by default. |
| Also in Options | Description, Tags, Self Declared Made For Kids, Embeddable, License, Recording Date. |
How do I connect YouTube to n8n?
Create a Google credential with OAuth2 for your channel. n8n's compatibility table marks the YouTube node as OAuth only, with no Service Account support. On n8n Cloud, Managed OAuth2 covers the YouTube node, so you can sign in with Google without a Google Cloud Console setup.
Why did my Short upload as private?
Check your API project's verification. YouTube's API reference says videos uploaded through videos.insert, its upload method, from unverified API projects created after 28 July 2020 are restricted to private viewing until the project passes an audit. That page's file-size and daily quota limits are listed in automate YouTube Shorts with AI.
If the video arrives as a regular upload instead of a Short, check its shape: YouTube's help says a Short is up to 3 minutes with a square or vertical aspect ratio. File specs are in YouTube Shorts video specs.
How do I mark the Short as AI-generated?
The node's upload options in its source have no synthetic-media field. On YouTube's Videos resource, the status.containsSyntheticMedia flag lets the channel owner disclose realistic altered or synthetic content. n8n's docs say the YouTube credential also works in an HTTP Request node through Authentication, Predefined Credential Type, which is how you reach API fields the node does not expose.
Sources
- n8n Docs: YouTube node (read 2026-09-28)
- n8n source: YouTube VideoDescription.ts (read 2026-09-28)
- n8n Docs: Google credentials (read 2026-09-28)
- n8n Docs: HTTP Request node (read 2026-09-28)
- YouTube Data API: Videos: insert (read 2026-09-28)
- YouTube Data API: Videos resource (read 2026-09-28)
- YouTube Help: Upload YouTube Shorts (read 2026-09-28)
- YouTube Help: Understand three-minute YouTube Shorts (read 2026-09-28)
- Create a run
- Runs and results
Related posts
More in Integrations
- PowerShell Invoke-RestMethod POST JSON with a Bearer token
Convert a hashtable with ConvertTo-Json -Depth, then call Invoke-RestMethod -Method Post -ContentType 'application/json' with a Bearer header.
- Python requests retry: backoff, Retry-After, and POST
Requests doesn't retry by default. Mount urllib3's Retry on a Session with backoff and status_forcelist, and retry POST only with an Idempotency-Key.
- Rails webhooks: verify an HMAC signature in a controller
Read request.raw_post, skip CSRF for that action only, check OpenSSL::HMAC.hexdigest against each sume-v1 entry with secure_compare, then head 204.
- React Native API integration: call an AI video API safely
In React Native, call your own backend with fetch and let it hold the API key. React Native's docs warn that anything in the app bundle is readable.
Written by Sume