AutomationFlowsSocial Media › Extract Youtube Channel Metadata to Google Docs Using Rapidapi

Extract Youtube Channel Metadata to Google Docs Using Rapidapi

ByEvoort Solutions @evoortsolutions on n8n.io

Description: This workflow leverages the powerful YouTube Metadata API to automatically extract detailed metadata from any YouTube channel URL. Using the YouTube Metadata API, it collects information like subscribers, views, keywords, and banners, reformats it for readability,…

Event trigger★★★★☆ complexity9 nodesForm TriggerGoogle DocsHTTP Request
Social Media Trigger: Event Nodes: 9 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7629 — we link there as the canonical source.

This workflow follows the Form Trigger → Google Docs 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 →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "73a62d48-7492-4ba2-bb94-c33382e9e561",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "YouTube Channel Metadata ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "url",
              "placeholder": "Channel url",
              "requiredField": true
            }
          ]
        },
        "formDescription": "YouTube Channel Metadata"
      },
      "typeVersion": 2.2
    },
    {
      "id": "060b798e-25de-4acf-b563-c299ce006f81",
      "name": "Reformat",
      "type": "n8n-nodes-base.code",
      "position": [
        460,
        0
      ],
      "parameters": {
        "jsCode": "// Get the first channel object from items array\nconst channel = $input.first().json.items[0];\n\nconst {\n  snippet,\n  statistics,\n  brandingSettings,\n} = channel;\n\nconst title = snippet.title || 'No title';\nconst description = snippet.description || 'No description available';\nconst customUrl = snippet.customUrl || 'No custom URL';\nconst publishedDate = new Date(snippet.publishedAt).toLocaleDateString();\nconst country = snippet.country || 'Not specified';\n\nconst subscriberCount = statistics.subscriberCount || '0';\nconst viewCount = statistics.viewCount || '0';\nconst videoCount = statistics.videoCount || '0';\n\nconst bannerUrl = brandingSettings.image?.bannerExternalUrl || 'No banner URL';\nconst keywords = brandingSettings.channel?.keywords || 'No keywords';\n\n// Prepare formatted string\nconst formatted = `\n\ud83d\udcfa **Channel:** ${title}  \n\ud83d\udd17 **Custom URL:** https://youtube.com/${customUrl}  \n\ud83d\uddd3\ufe0f **Published On:** ${publishedDate}  \n\ud83c\udf0d **Country:** ${country}\n\n\ud83d\udc65 **Subscribers:** ${subscriberCount}  \n\ud83d\udc41\ufe0f **Total Views:** ${viewCount}  \n\ud83c\udfa5 **Total Videos:** ${videoCount}\n\n\ud83d\udcdd **Description:**  \n${description}\n\n\ud83c\udff7\ufe0f **Keywords:** ${keywords}\n\n\ud83d\uddbc\ufe0f **Banner Image:**  \n${bannerUrl}\n`;\n\n// Return formatted string\nreturn [\n  {\n    json: {\n      docContent: formatted.trim(),\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "fca2fbf5-db93-4d05-8e70-c89f90edfaf0",
      "name": "Add Data in Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        720,
        0
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $json.docContent }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "",
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "cff9cbb2-6fc4-4a66-a0b0-16dae3c1fd38",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -240
      ],
      "parameters": {
        "width": 520,
        "height": 1300,
        "content": "# **YouTube Channel Metadata to Google Docs**\n\n# Workflow Description  \n\nThis workflow takes a YouTube channel URL submitted via a form, fetches detailed channel metadata using a RapidAPI service, reformats the data into a nicely structured text, and appends it to a Google Docs document.\n\n\n## Nodes Breakdown\n\n### 1. **On form submission** (Form Trigger)  \n*Triggers the workflow when a user submits a YouTube Channel URL via the web form.*\n\n- Collects user input (YouTube channel URL) to start the workflow.\n\n---\n\n### 2. **YouTube Channel Metadata** (HTTP Request)  \n*Calls the RapidAPI YouTube Channel Metadata API with the submitted URL.*\n\n- Sends a POST request with the channel URL to fetch channel data like title, subscribers, description, etc.\n\n---\n\n### 3. **Reformat** (Code)  \n*Transforms the raw API JSON response into a clean, human-readable formatted string.*\n\n- Extracts relevant fields (title, subscribers, keywords, etc.)  \n- Formats data with emojis and markdown-style layout for easy reading  \n- Outputs the formatted string as `docContent`\n\n---\n\n### 4. **Add Data in Google Docs** (Google Docs)  \n*Inserts the formatted channel metadata text into a specified Google Docs document.*\n\n- Uses Google Docs API with service account authentication  \n- Appends the formatted channel data into the doc for record-keeping or sharing\n\n# Summary  \n\nThis flow is designed to automate the process of collecting YouTube channel information from a URL, processing that data into a readable format, and storing it neatly in Google Docs \u2014 all triggered by a simple user form submission.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2fa66d15-6311-44ff-820a-7bdf42d3b711",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -220
      ],
      "parameters": {
        "height": 360,
        "content": "**On form submission** (Form Trigger)  \n*Triggers the workflow when a user submits a YouTube Channel URL via the web form.*\n\n- Collects user input (YouTube channel URL) to start the workflow.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f6b5cf9b-4bb1-43cb-b0b9-90fa777d913a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -260
      ],
      "parameters": {
        "height": 400,
        "content": "**YouTube Channel Metadata** (HTTP Request)  \n*Calls the RapidAPI YouTube Channel Metadata API with the submitted URL.*\n\n- Sends a POST request with the channel URL to fetch channel data like title, subscribers, description, etc.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "070451b2-9a0b-423b-bbd8-aa163d57178c",
      "name": "YouTube Channel Metadata",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        0
      ],
      "parameters": {
        "url": "https://youtube-metadata1.p.rapidapi.com/channel_metadata.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.url }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "youtube-metadata1.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9d71eabf-7243-47ce-aa41-9ca2d8bcade4",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -260
      ],
      "parameters": {
        "height": 400,
        "content": "**Reformat** (Code)  \n*Transforms the raw API JSON response into a clean, human-readable formatted string.*\n\n- Extracts relevant fields (title, subscribers, keywords, etc.)  \n- Formats data with emojis and markdown-style layout for easy reading  \n- Outputs the formatted string as `docContent`"
      },
      "typeVersion": 1
    },
    {
      "id": "62b9f2a3-2ecc-4a50-979e-e0aaddb24f7c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        -260
      ],
      "parameters": {
        "height": 400,
        "content": "**Add Data in Google Docs** (Google Docs)  \n*Inserts the formatted channel metadata text into a specified Google Docs document.*\n\n- Uses Google Docs API with service account authentication  \n- Appends the formatted channel data into the doc for record-keeping or sharing\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Reformat": {
      "main": [
        [
          {
            "node": "Add Data in Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "YouTube Channel Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube Channel Metadata": {
      "main": [
        [
          {
            "node": "Reformat",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Description: This workflow leverages the powerful YouTube Metadata API to automatically extract detailed metadata from any YouTube channel URL. Using the YouTube Metadata API, it collects information like subscribers, views, keywords, and banners, reformats it for readability,…

Source: https://n8n.io/workflows/7629/ — 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

Description: This workflow leverages the YouTube Metadata API to automatically extract detailed video information from any YouTube URL. It uses n8n to automate the entire process and stores the metada

Form Trigger, HTTP Request, Google Docs
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

Notion__DriveDropbox_Sync. Uses notionTrigger, googleDrive, dropbox, notion. Event-driven trigger; 47 nodes.

Notion Trigger, Google Drive, Dropbox +3
Social Media

Content creators, AI video enthusiasts, and digital marketers who want to analyze successful short-form videos and understand their production techniques. Perfect for anyone looking to reverse-enginee

Form Trigger, HTTP Request, Slack
Social Media

This n8n template demonstrates how to generate subtitle overlays for YouTube videos and save the final files to Google Drive. It is useful when you want accessible video outputs without manually editi

@Videodb/N8N Nodes Videodb, HTTP Request, Form Trigger +1