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 transcripts (apihq skeleton)",
"nodes": [
{
"parameters": {},
"id": "trigger",
"name": "Run workflow",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
200,
300
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/apihq~youtube-transcript-scraper/run-sync-get-dataset-items",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_APIFY_TOKEN"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"videoIds\": [\n \"jNQXAC9IVRw\",\n \"dQw4w9WgXcQ\",\n \"00000000000\"\n ],\n \"language\": \"en\",\n \"metadata\": true\n}",
"options": {}
},
"id": "get-transcripts",
"name": "Get transcripts",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
430,
300
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "success-check",
"leftValue": "={{ $json.success }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "split-by-success",
"name": "Split by success",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
650,
300
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a0",
"name": "video_id",
"value": "={{ $json.video_id }}",
"type": "string"
},
{
"id": "a1",
"name": "title",
"value": "={{ $json.metadata?.title }}",
"type": "string"
},
{
"id": "a2",
"name": "text",
"value": "={{ $json.transcript.map(s => s.text).join(' ') }}",
"type": "string"
}
]
},
"options": {}
},
"id": "transcript-text",
"name": "Transcript text",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
880,
200
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a0",
"name": "video_id",
"value": "={{ $json.video_id }}",
"type": "string"
},
{
"id": "a1",
"name": "code",
"value": "={{ $json.code }}",
"type": "string"
},
{
"id": "a2",
"name": "request_id",
"value": "={{ $json.request_id }}",
"type": "string"
}
]
},
"options": {}
},
"id": "failure-row",
"name": "Failure row",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
880,
400
]
}
],
"connections": {
"Run workflow": {
"main": [
[
{
"node": "Get transcripts",
"type": "main",
"index": 0
}
]
]
},
"Get transcripts": {
"main": [
[
{
"node": "Split by success",
"type": "main",
"index": 0
}
]
]
},
"Split by success": {
"main": [
[
{
"node": "Transcript text",
"type": "main",
"index": 0
}
],
[
{
"node": "Failure row",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
YouTube transcripts (apihq skeleton). Uses httpRequest. Event-driven trigger; 5 nodes.
Source: https://github.com/slvDev/apihq-automations/blob/main/n8n/youtube-transcripts.n8n.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.
This n8n workflow allows users to submit a YouTube video URL, automatically fetches multiple MP4 and MP3 download links using YouTube Video Downloader Fast API. It logs all links into Google Sheets fo
Instagram Profile Scraper. Uses formTrigger, httpRequest, googleSheets. Event-driven trigger; 8 nodes.
Convert YouTube videos into SEO-friendly blog posts in just seconds using this fully automated n8n workflow. Perfect for content creators, marketers, educators, and bloggers looking to repurpose video
This workflow is for social media agencies, influencer marketers, and brand managers who need to automatically qualify TikTok creators based on their follower metrics. It’s especially useful for teams
Get Long Lived Facebook User Or Page Access Token. Uses manualTrigger, httpRequest, stickyNote. Event-driven trigger; 5 nodes.