AutomationFlowsSocial Media › Youtube Transcripts (apihq Skeleton)

Youtube Transcripts (apihq Skeleton)

YouTube transcripts (apihq skeleton). Uses httpRequest. Event-driven trigger; 5 nodes.

Event trigger★★☆☆☆ complexity5 nodesHTTP Request
Social Media Trigger: Event Nodes: 5 Complexity: ★★☆☆☆ Added:

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 →

Download .json
{
  "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"
  }
}
Pro

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 →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

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

HTTP Request, Form Trigger, Google Sheets
Social Media

Instagram Profile Scraper. Uses formTrigger, httpRequest, googleSheets. Event-driven trigger; 8 nodes.

Form Trigger, HTTP Request, Google Sheets
Social Media

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

Form Trigger, Google Docs, HTTP Request
Social Media

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

Airtable Trigger, HTTP Request, Airtable
Social Media

Get Long Lived Facebook User Or Page Access Token. Uses manualTrigger, httpRequest, stickyNote. Event-driven trigger; 5 nodes.

HTTP Request