🎬 Create daily faceless YouTube Shorts with Groq, SamAutomation and Google Sheets
⚡ 492 views · 🎬 Content Creation & Video
💡 Pro Tip — YouTube’s API quotas can be a bottleneck when you’re pulling data at scale. ScraperNode is a community node with dedicated scrapers for channels, videos, and comments — no quota limits, just structured data.
Description
Quick Overview
This workflow runs daily to generate a YouTube Shorts topic and script with Groq, render a faceless vertical video via SamAutomation (images, voiceover, subtitles), upload it to YouTube, and track status in Google Sheets.
How it works
- Runs every day at 10:00 on a schedule.
- Reads niche, sub-niche, and voice settings from a Google Sheets “Config” tab.
- Calls the Groq Chat Completions API to generate three Shorts topic ideas and selects the first topic.
- Appends the selected topic to a Google Sheets “Topic Bank” tab with status set to “scripting,” then calls Groq again to generate a scene-based script plus YouTube metadata.
- Builds a SamAutomation render payload that generates Flux images, adds TTS voiceover, and burns word-level subtitles into a 1080Ă—1920 video.
- Starts a SamAutomation render job and polls until the status is “done,” then captures the hosted MP4 URL.
- Uploads the video to YouTube with the generated title, description, and tags, and updates the Google Sheets “Topic Bank” row to “published” with a timestamp.
Setup
- Create credentials for Groq (HTTP Header Auth with
Authorization: Bearer <GROQ_API_KEY>) and SamAutomation (HTTP Header Auth withX-API-Key: <SAM_AUTOMATION_KEY>). - Connect Google Sheets OAuth2 and update the spreadsheet URL/ID in the Google Sheets nodes, with tabs named “Config” (selected_niche, selected_sub_niche, voice_id) and “Topic Bank” (date, niche, topic_title, hook_line, angle, target_emotion, status, published_at).
- Connect YouTube OAuth2, enable the YouTube Data API v3 in Google Cloud, and ensure your OAuth scopes allow uploading (for example
youtube.upload). - Review the YouTube upload settings (privacy status, categoryId, language) and adjust the daily cron schedule time if needed.
đź”— Nodes Used
Google Sheets, HTTP Request, Schedule Trigger
📥 Import
Download workflow.json and import into n8n:
Workflow menu → Import from File