Generate and Publish YouTube Shorts in Bulk
You want to post one YouTube Short per day. Or ten per week. Each Short needs a vertical video, a title, a description, the right privacy settings, and optionally a custom thumbnail and playlist assignment. Doing this manually takes 15-20 minutes per video. At scale, it becomes a full-time job.
On the Make.com forum, users ask about generating 1,000+ YouTube Shorts with tools like InVideo and bulk-uploading them. On the n8n forum, users build short-form video pipelines that create content with AI and push it to YouTube, TikTok, and Instagram in parallel. The bottleneck is always the same: generating videos at scale and handling YouTube's metadata requirements (titles, descriptions, playlists, thumbnails, privacy status) for each upload.
Here is a workflow that generates AI videos and publishes them to YouTube with full metadata control.
What YouTube Shorts requires
A YouTube Short is a vertical video (9:16 aspect ratio) under 60 seconds. YouTube classifies videos as Shorts automatically based on these properties. You do not need a separate API or upload flow -- publish through the standard YouTube Data API and YouTube handles the categorization.
When publishing through the Blotato API, these are the YouTube-specific fields:
title
Yes
Video title. Appears on the Shorts player.
privacyStatus
Yes
public, private, or unlisted
shouldNotifySubscribers
Yes
Send a notification to subscribers
isMadeForKids
No
Defaults to false
containsSyntheticMedia
No
Flag AI-generated content
playlistIds
No
Add the video to one or more playlists
thumbnailUrl
No
Custom thumbnail (requires a verified YouTube account)
The video description comes from the content.text field. YouTube does not support tags through the API -- YouTube recommends against relying on tags for discovery.
The three-step pipeline
Step 1: Generate a batch of video topics
Use the Create Source endpoint with sourceType: "perplexity-query" to research topics in your niche:
Poll GET /v2/source-resolutions-v3/{id} until status is completed. The response contains 10 video topics ready to feed into the next step.
For a content library approach, store topics in a Google Sheet or Airtable. Each row contains a topic, a target title, and a description. Your workflow reads one row at a time and creates a video from it.
Step 2: Generate each video
Use the Create Visual endpoint with the "AI Video with AI Voice" template. This template generates a script, AI images, AI voiceover, and captions, then renders the final video:
Poll GET /v2/videos/{id} until status is done. The response includes mediaUrl with the rendered video.
For bulk generation, loop through your topic list and create one video per topic. Each Create Visual call is independent -- you run them in parallel or sequentially depending on your plan's rate limits (30 requests per minute).
Step 3: Publish to YouTube with full metadata
Pass the rendered video URL to the Publish Post endpoint with YouTube-specific fields:
Key details:
containsSyntheticMedia: trueflags the video as AI-generated, which YouTube requires for transparency.playlistIdsassigns the Short to a playlist. Fetch playlist IDs fromGET /v2/users/me/accounts/{accountId}/subaccounts(docs).useNextFreeSlot: trueschedules the Short at the next open slot in your content calendar instead of publishing immediately. This spaces out your uploads so YouTube does not flag bulk posting.The
content.textfield becomes the YouTube description. Include hashtags here --#shortsis optional (YouTube auto-detects Shorts by video dimensions).
Adding a custom thumbnail
If your YouTube account supports custom thumbnails, pass a public image URL in the thumbnailUrl field:
Generate thumbnails with the Create Visual endpoint using an image template (such as the Quote Card or Image Slideshow template) and pass the resulting imageUrls[0] as the thumbnailUrl.
Step-by-step: n8n workflow for daily Shorts
Install the Blotato community node in n8n.
Add a Schedule Trigger node. Set it to run once per day.
Add a Google Sheets node (or Airtable node) to read the next topic from your content spreadsheet.
Add a Blotato Create Visual node. Select the "AI Video with AI Voice" template. Pass the topic from the spreadsheet into the
promptfield.Add a Blotato Get Visual Status node. Enable polling until status is
done.Add a Blotato Publish Post node. Set the platform to
youtube. Map the fields:mediaUrls: themediaUrlfrom the Get Visual Status responsetext: your YouTube description (from the spreadsheet or generated by an LLM node)title: your Short's titletarget.privacyStatus:publictarget.shouldNotifySubscribers:truetarget.containsSyntheticMedia:truetarget.playlistIds: your playlist ID
Set
useNextFreeSlot: trueon the Publish node.Add a Google Sheets Update node to mark the row as "published" so the next run picks the next topic.
Activate the workflow.
One video per day. No manual work.
Step-by-step: Make.com scenario for bulk Shorts
Add a Schedule trigger module.
Add a Google Sheets module to get the next row from your topic spreadsheet.
Add an HTTP module to call
POST https://backend.blotato.com/v2/videos/from-templateswith the "AI Video with AI Voice" template ID and the topic asprompt.Add a polling loop (Repeater + HTTP GET) to check
GET https://backend.blotato.com/v2/videos/{id}until status isdone.Add an HTTP module to call
POST https://backend.blotato.com/v2/postswith the YouTube-specific request body (title, privacyStatus, playlistIds, etc.).Add a Google Sheets module to update the row status to "published."
Activate the scenario.
Scaling: 10 Shorts per week
To generate multiple Shorts per run:
Read 10 rows from your spreadsheet at once using a Google Sheets "Search Rows" query.
Use a SplitInBatches node (n8n) or Iterator module (Make) to process each row.
Create one video per row and publish each with
useNextFreeSlot: true.
Blotato's scheduling system spaces out the posts across your configured calendar slots. If you have one YouTube slot per day, 10 videos get spread across the next 10 days.
Rate limits: the Create Visual and Publish Post endpoints allow 30 requests per minute. For 10 videos, the create step takes 10-30 minutes total (1-3 minutes per video for rendering). Run the workflow during off-hours to avoid interfering with other Blotato API usage.
Cross-posting Shorts to TikTok and Instagram Reels
A YouTube Short is the same format as a TikTok video and an Instagram Reel (vertical, under 60 seconds). After generating the video, add parallel Publish Post calls for each platform:
One generated video. Three platforms. See Post Videos to TikTok, Reels, and YouTube Shorts from One Workflow for the full cross-posting setup.
Forum threads referenced
These are the community discussions that prompted this post:
Last updated