This workflow follows the Google Drive → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "YouTube Thumbnail Automation \u2014 ThumbAPI",
"nodes": [
{
"parameters": {
"url": "https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID",
"pollTimes": {
"item": [
{
"mode": "everyMinute",
"value": 15
}
]
}
},
"name": "RSS Feed \u2014 YouTube Channel",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.thumbapi.dev/v1/generate",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"title\": \"{{ $json.title }}\",\n \"format\": \"youtube\",\n \"imageStyle\": \"faceless\",\n \"outputFormat\": \"webp\"\n}"
},
"name": "ThumbAPI \u2014 Generate Thumbnail",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
670,
300
],
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const base64String = $input.item.json.image;\nconst base64Data = base64String.includes(',') ? base64String.split(',')[1] : base64String;\nconst outputFormat = $input.item.json.outputFormat || 'webp';\n\nreturn {\n json: {\n title: $input.item.json.title,\n format: $input.item.json.format,\n outputFormat\n },\n binary: {\n data: {\n data: base64Data,\n fileName: `thumbnail-${Date.now()}.${outputFormat}`,\n mimeType: `image/${outputFormat}`\n }\n }\n};"
},
"name": "Decode Base64 Image",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
890,
300
]
},
{
"parameters": {
"operation": "upload",
"name": "{{ $json.title }}.webp",
"parents": {
"folderId": "YOUR_GOOGLE_DRIVE_FOLDER_ID"
},
"binaryPropertyName": "data"
},
"name": "Google Drive \u2014 Upload",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1110,
300
]
}
],
"connections": {
"RSS Feed \u2014 YouTube Channel": {
"main": [
[
{
"node": "ThumbAPI \u2014 Generate Thumbnail",
"type": "main",
"index": 0
}
]
]
},
"ThumbAPI \u2014 Generate Thumbnail": {
"main": [
[
{
"node": "Decode Base64 Image",
"type": "main",
"index": 0
}
]
]
},
"Decode Base64 Image": {
"main": [
[
{
"node": "Google Drive \u2014 Upload",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
YouTube Thumbnail Automation — ThumbAPI. Uses rssFeedRead, httpRequest, googleDrive. Manual trigger; 4 nodes.
Source: https://github.com/dinalllll/thumbapi-examples/blob/main/n8n/youtube-rss-to-drive.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Automação Tiktok - Full Pipeline. Uses rssFeedRead, httpRequest, writeBinaryFile, executeCommand. Event-driven trigger; 13 nodes.
This template is for advanced users, content teams, and data analysts who need a robust, automated system for capturing YouTube transcripts. It’s ideal for those who monitor multiple channels and want
This workflow is for content creators, marketers, researchers, and anyone who needs to quickly get text transcripts from YouTube videos. If you analyze video content, repurpose it for blogs or social
Auto-translate YouTube uploads to Japanese and post to Slack (DeepL + Slack)
You are in the bad habit of always checking your feed to see if there are new videos? This workflow will help you get rid of this habit by delivering an email notification for each new video posted fr