This workflow allows you to generate riddle-themed vertical videos (9:16), render them using Creatomate, and upload them directly to YouTube — all automatically. It's optimized for low-cost operation while still integrating AI and automation at key stages.
Here is a sample: https://youtube.com/shorts/svhgti9L6Fw?feature=share
🔄 Workflow Overview
This is a schedule-triggered workflow that:
- Generates riddles with answers using an AI agent.
- Checks Pinecone vector store to avoid repeating riddles.
- Inserts new riddles into Pinecone under a namespace structured by
month/year
for easier indexing.
- Fetches an unused music track URL for video background.
- Generates a video using Creatomate with the riddles and audio.
- Uploads the video to YouTube via a custom HTTP request with OAuth.
- Updates the worksheet and riddle numbering, and notifies via email.
🔗 Integration Guide
🔎 Pinecone Setup
- You need an active Pinecone account with an index created.
- The vector index should be accessible from n8n.
- Follow [n8n's Pinecone Node Documentation] for help setting up credentials and connecting.
📝 Google Sheet Setup
- Open the sheets template provided in the Gumroad documentation pdf.
- Make a copy to your Google Drive.
- Set up the required credentials in n8n and link the Google Sheets node to your new copy.
🎧 Audio Tracks
🎞️ Background Videos (Optional)
- For optional background visuals, use free stock videos from Pexels.
💡 Creatomate Setup
- Create a Creatomate account at [creatomate.com].
- Create a 9:16 aspect ratio template.
- Press F12 to open the source editor.
- Download the Creatomate JSON file from the Gumroad page and paste its contents into the source editor.
- Refresh the page and click "Use Template" > API Integration.
- Copy the cURL.
- From the cURL, extract your
Bearer Token
and Template ID
.
- Paste them in the respective fields in the
Creatomate Render Node
inside n8n.
📉 YouTube Upload Configuration
-
Inside n8n, set up a YouTube OAuth credential.
-
Search for "YouTube" in the credentials list and select the OAuth type.
-
Use the Custom HTTP Request node with multipart/form-data
to upload the video using:
🔄 Workflow Logic Detail
-
Riddle Generation
- Checks Pinecone vector store for existing riddles (to avoid duplicates).
- Generates 4 new riddles with answers.
- Stores them in Pinecone under
month/year
namespace.
- Extracts a numbered title for current riddle post (e.g., Riddles4U #001).
- Prepares next riddle title counter (but only updates after YouTube post succeeds).
-
Track URL Fetching
- Pulls the first unused track from Google Sheets.
-
Render & Upload
- Sends the riddles + track to Creatomate for rendering.
- Fetches binary video and uploads it directly to YouTube via HTTP.
- Note: For video source url, I downloaded a video, uploaded it to drive and used that video drive link. You can add a new sheet and rotate videos too, although youtube likes consistency in shorts so I think it is best to have one very beautiful and calm background video then change to a new one after some months or when you generate like 50 shorts.
-
Post Actions
- Sends email with YouTube video link.
- Marks used audio row as "used".
- Updates to next riddle title.
- If all tracks have been used, resets them to "unused".
🚀 Customization Ideas
- Add AI-generated voiceover to the riddles.
- Replace riddles with trivia, quotes, or jokes.
- Integrate TikTok or Instagram upload APIs for multichannel publishing.
✉️ Support
Refer to the comprehensive setup guide included in the Gumroad download folder to configure your template, credentials, and API keys correctly.
This is a beginner-friendly, low-cost automation you can build on for more advanced content pipelines. Happy building!
You can find me on twitter and via email incase you need any custom n8n workflows or wanna chat.