Generate Riddle Shorts & Post on YouTube with Sonnet 3.5, Pinecone & Creatomate

Go to Workflow
474 views
Built by Joseph Joseph
Created on June 05, 2026

Description

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

Get copyright-free tracks from Royalty Free Music Library.
Ensure files are in .mp3 format for compatibility.

🎞️ 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:

Title (e.g., "Riddles4U #001")
Description
Video file binary
Category ID (find ID here: https://gist.github.com/dgp/1b24bf2961521bd75d6c)

🔄 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.

Nodes Used (11)

AI Agent
@n8n/n8n-nodes-langchain.agent
Anthropic Chat Model
@n8n/n8n-nodes-langchain.lmChatAnthropic
Code
n8n-nodes-base.code
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
Pinecone Vector Store
@n8n/n8n-nodes-langchain.vectorStorePinecone
Recursive Character Text Splitter
@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter
Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured