Recolector inteligente de canales de YouTube

Intermedio

Este es unMarketingflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como Set, Code, HttpRequest, GoogleSheets, GoogleSheetsTrigger. Recolección de estadísticas y contactos de canales de YouTube usando Google Sheets y SerpAPI

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets

Categoría

Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "vSYWa1hSKAvedWWp",
  "meta": {
    "instanceId": "84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db",
    "templateCredsSetupCompleted": true
  },
  "name": "Youtube Channel Intelligence Collector",
  "tags": [],
  "nodes": [
    {
      "id": "c59d8ffd-f78e-4ac5-ae00-19075db988a8",
      "name": "Nuevo Canal Agregado",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ/edit?usp=drivesdk",
          "cachedResultName": "Youtube Channel Intelligence Collector"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "AO0UQdc9V05KNPDB",
          "name": "Google Sheets Trigger account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4cd2932b-953c-4ece-af21-6b68e7c7fc7c",
      "name": "Obtener información del canal",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        0
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/channels?part=statistics,snippet&id=UC_x5XG1OV2P6uZZ5FSM9Ttw&key=YOUR_KEY"
      },
      "typeVersion": 4.2
    },
    {
      "id": "57841966-eedc-4ac5-b699-1c8241409880",
      "name": "Obtener Estadísticas del Canal",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        0
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/search",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "channelId",
              "value": "={{ $json.items[0].id }}"
            },
            {
              "name": "part",
              "value": "snippet"
            },
            {
              "name": "order",
              "value": "date"
            },
            {
              "name": "maxResults",
              "value": "5"
            },
            {
              "name": "key",
              "value": "YOUR_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "86b1b984-aa03-4aed-b4d8-3eb861408e1b",
      "name": "Obtener Vistas de Videos Recientes",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        740,
        0
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/youtube/v3/videos?part=statistics&id={{ $json.items[0].id.videoId }},{{ $json.items[1].id.videoId }},{{ $json.items[2].id.videoId }},{{ $json.items[3].id.videoId }},{{ $json.items[4].id.videoId }},def456,ghi789&key=YOUR_KEY",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "edbac4ab-c0c6-402a-b579-45ddb9ee7a87",
      "name": "Preparar vistas para suma",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9aaec402-4a0a-4908-a416-35dbe86f4278",
              "name": "Video 1 views",
              "type": "number",
              "value": "={{ $json.items[0].statistics.viewCount }}"
            },
            {
              "id": "5d5eec14-2ca7-41d7-b447-4784de1d77b5",
              "name": "Video 2 views",
              "type": "number",
              "value": "={{ $json.items[1].statistics.viewCount }}"
            },
            {
              "id": "02b2879b-e0bb-4a1e-a0c0-ce59a03bc2de",
              "name": "Video 3 views",
              "type": "number",
              "value": "={{ $json.items[2].statistics.viewCount }}"
            },
            {
              "id": "75d4f2f3-5b07-48d1-b22a-dda29140426e",
              "name": "Video 4 views",
              "type": "number",
              "value": "={{ $json.items[3].statistics.viewCount }}"
            },
            {
              "id": "83e29b86-bb0e-4661-a1a3-6907d46dbc0d",
              "name": "Video 5 views",
              "type": "number",
              "value": "={{ $json.items[4].statistics.viewCount }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "94c8c406-ab91-44f1-aba4-74df7bf2e347",
      "name": "Sumar Vistas de Videos",
      "type": "n8n-nodes-base.code",
      "position": [
        1180,
        0
      ],
      "parameters": {
        "jsCode": "// Get the first item (your input object)\nconst data = items[0].json;\n\nlet totalViews = 0;\n\nfor (const key in data) {\n  if (data.hasOwnProperty(key) && key.includes('views')) {\n    totalViews += data[key];\n  }\n}\n\nreturn [\n  {\n    json: {\n      ...data,\n      totalViews\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "58f38623-d210-45da-9eb3-71f7914859da",
      "name": "Obtener Email del Canal (SerpAPI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1460,
        0
      ],
      "parameters": {
        "url": "=https://serpapi.com/search.json?engine=youtube_channel_about&channel_url=https://www.youtube.com/channel/{{ $('New Channel Added').item.json['Channel ID'] }}&api_key=YOUR_SERPAPI_KEY",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "a8f1aab2-ad08-4711-9a2c-2d4e953407af",
      "name": "Preparar Datos de la Hoja",
      "type": "n8n-nodes-base.set",
      "position": [
        1680,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9ab4a9fc-15ed-459a-96b6-22d4b8fb05bd",
              "name": "Recent Views",
              "type": "string",
              "value": "={{ $('Sum Video Views').item.json.totalViews }}"
            },
            {
              "id": "4681d235-d066-4d09-9c79-54f2395a6750",
              "name": "Total Subscribers",
              "type": "string",
              "value": "={{ $('Get info about channel').item.json.items[0].statistics.subscriberCount }}"
            },
            {
              "id": "351ec081-ea7f-4ceb-a1f6-038a4747b754",
              "name": "Email",
              "type": "string",
              "value": "={{ $json.channel_about_page.email }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ac7a8ddc-3347-4860-a080-70efcaded6b6",
      "name": "Actualizar Información del Canal",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1980,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Email": "={{ $json.Email }}",
            "Channel ID": "={{ $('New Channel Added').item.json['Channel ID'] }}",
            "Recent Views": "={{ $json['Recent Views'] }}",
            "Total Subscribers": "={{ $json['Total Subscribers'] }}"
          },
          "schema": [
            {
              "id": "Channel ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Channel ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Recent Views",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Recent Views",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Total Subscribers",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Total Subscribers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Channel ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TpaJAx7eM1XogAZWPSHls4H1AhYsrQ_FTcohkoZyedQ/edit?usp=drivesdk",
          "cachedResultName": "Youtube Channel Intelligence Collector"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "K5yYfUnKFTqaRn6A",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "300c814f-fca0-439e-8b4f-3d7031644b42",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -760
      ],
      "parameters": {
        "color": 3,
        "width": 640,
        "height": 960,
        "content": "### 🔹 SECTION 1: **Channel Identification & Stats Fetching**\n\n🔔 It all begins when a new channel URL is added to Google Sheets. The `New Channel Added` trigger detects this input and passes it to the next node.\n\n🔎 The `Get Channel ID from URL` node uses YouTube’s Data API to convert the given channel username or custom URL into a valid `channelId`.\n\n📊 Once the channel ID is resolved, the `Get Channel Stats` node fetches vital metrics like subscriber count, total video count, and overall view count — giving you an immediate sense of the channel’s reach and authority.\n\nThis section acts as the \"identity and reputation layer\" — establishing who the channel is and how large its audience might be.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c4da8233-ca33-4f73-b9dc-034216af6a78",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        -720
      ],
      "parameters": {
        "color": 5,
        "width": 640,
        "height": 920,
        "content": "## 🔹 SECTION 2: **Recent Video Intelligence**\n\n🆕 The `Get Recent Video IDs` node fetches the 5 most recent uploads by the channel using the `search` endpoint, ordered by date. This helps focus on the freshest content for engagement analysis.\n\n🧹 Next, the `Prepare Video Views to Sum` node extracts and organizes the returned video IDs into a structured format ready for bulk analysis.\n\n➕ The `Sum Video Views` node — a custom Code block — takes each video ID, fetches its statistics, and aggregates the `viewCount`. You can either sum or average these views to calculate recent performance.\n\nThis section is your \"engagement tracker,\" offering insight into how actively viewers are interacting with the channel’s newest content — critical for B2B qualification or influencer assessment.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7a4f720e-380b-4557-bbcc-8cf864b32117",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        -840
      ],
      "parameters": {
        "color": 6,
        "width": 400,
        "height": 1040,
        "content": "### 🔹 SECTION 3: **Contact Intelligence**\n\n✉️ The `Get Channel Email (SerpAPI)` node attempts to retrieve the public email address listed on the channel’s “About” page. Since this action requires bypassing CAPTCHA (which APIs like YouTube don't support), we use SerpAPI to simulate and extract the result.\n\n⚠️ If no email is available due to protection or limitations, fallback logic can be added later to log this for manual review.\n\nThis section aims to uncover the **real outreach opportunity**, pulling direct contact information when available — making it a powerful lead-gen component.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c3c77b39-7d8b-4f9e-9f4c-d8ea5c990f06",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        -960
      ],
      "parameters": {
        "color": 4,
        "width": 340,
        "height": 1160,
        "content": "### 🔹 SECTION 4: **Data Assembly & Sheet Update**\n\n🧩 The `Prepare Sheet Data` node cleanly formats all collected insights — channel statistics, recent video performance, and email — into one tidy object.\n\n📤 Finally, the `Update Channel Insights` node updates the original Google Sheet row with the newly enriched data. This makes your sheet a live intelligence dashboard, auto-updated every time a new channel is added.\n\nThis last section is the \"insight publishing engine,\" ensuring all collected intelligence is centralized, structured, and ready for decision-making or follow-up.\n\n---\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3d4d8722-e423-4941-8413-4953ec41487c",
      "name": "Nota Adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        -760
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9d04bc2b-eea5-4d93-9b43-044011b99876",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        -420
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 1938,
        "content": "## 🎯 **YouTube Channel Intelligence Collector — Grouped Workflow Overview**\n\n---\n\n### 🔹 SECTION 1: **Channel Identification & Stats Fetching**\n\n🔔 It all begins when a new channel URL is added to Google Sheets. The `New Channel Added` trigger detects this input and passes it to the next node.\n\n🔎 The `Get Channel ID from URL` node uses YouTube’s Data API to convert the given channel username or custom URL into a valid `channelId`.\n\n📊 Once the channel ID is resolved, the `Get Channel Stats` node fetches vital metrics like subscriber count, total video count, and overall view count — giving you an immediate sense of the channel’s reach and authority.\n\nThis section acts as the \"identity and reputation layer\" — establishing who the channel is and how large its audience might be.\n\n---\n\n### 🔹 SECTION 2: **Recent Video Intelligence**\n\n🆕 The `Get Recent Video IDs` node fetches the 5 most recent uploads by the channel using the `search` endpoint, ordered by date. This helps focus on the freshest content for engagement analysis.\n\n🧹 Next, the `Prepare Video Views to Sum` node extracts and organizes the returned video IDs into a structured format ready for bulk analysis.\n\n➕ The `Sum Video Views` node — a custom Code block — takes each video ID, fetches its statistics, and aggregates the `viewCount`. You can either sum or average these views to calculate recent performance.\n\nThis section is your \"engagement tracker,\" offering insight into how actively viewers are interacting with the channel’s newest content — critical for B2B qualification or influencer assessment.\n\n---\n\n### 🔹 SECTION 3: **Contact Intelligence**\n\n✉️ The `Get Channel Email (SerpAPI)` node attempts to retrieve the public email address listed on the channel’s “About” page. Since this action requires bypassing CAPTCHA (which APIs like YouTube don't support), we use SerpAPI to simulate and extract the result.\n\n⚠️ If no email is available due to protection or limitations, fallback logic can be added later to log this for manual review.\n\nThis section aims to uncover the **real outreach opportunity**, pulling direct contact information when available — making it a powerful lead-gen component.\n\n---\n\n### 🔹 SECTION 4: **Data Assembly & Sheet Update**\n\n🧩 The `Prepare Sheet Data` node cleanly formats all collected insights — channel statistics, recent video performance, and email — into one tidy object.\n\n📤 Finally, the `Update Channel Insights` node updates the original Google Sheet row with the newly enriched data. This makes your sheet a live intelligence dashboard, auto-updated every time a new channel is added.\n\nThis last section is the \"insight publishing engine,\" ensuring all collected intelligence is centralized, structured, and ready for decision-making or follow-up.\n\n---\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Get Channel Email (SerpAPI)": [
      {
        "json": {
          "channel_about_page": {
            "email": "contact@googledevs.com",
            "location": "United States",
            "channel_url": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw",
            "description": "Welcome to Google Developers!"
          }
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7a80e42b-85b9-4bb9-8f43-adea423f228d",
  "connections": {
    "94c8c406-ab91-44f1-aba4-74df7bf2e347": {
      "main": [
        [
          {
            "node": "58f38623-d210-45da-9eb3-71f7914859da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57841966-eedc-4ac5-b699-1c8241409880": {
      "main": [
        [
          {
            "node": "86b1b984-aa03-4aed-b4d8-3eb861408e1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c59d8ffd-f78e-4ac5-ae00-19075db988a8": {
      "main": [
        [
          {
            "node": "4cd2932b-953c-4ece-af21-6b68e7c7fc7c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a8f1aab2-ad08-4711-9a2c-2d4e953407af": {
      "main": [
        [
          {
            "node": "ac7a8ddc-3347-4860-a080-70efcaded6b6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "edbac4ab-c0c6-402a-b579-45ddb9ee7a87": {
      "main": [
        [
          {
            "node": "94c8c406-ab91-44f1-aba4-74df7bf2e347",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "86b1b984-aa03-4aed-b4d8-3eb861408e1b": {
      "main": [
        [
          {
            "node": "edbac4ab-c0c6-402a-b579-45ddb9ee7a87",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4cd2932b-953c-4ece-af21-6b68e7c7fc7c": {
      "main": [
        [
          {
            "node": "57841966-eedc-4ac5-b699-1c8241409880",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "58f38623-d210-45da-9eb3-71f7914859da": {
      "main": [
        [
          {
            "node": "a8f1aab2-ad08-4711-9a2c-2d4e953407af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Marketing

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos15
Categoría1
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Yaron Been

Yaron Been

@yaron-nofluff

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34