Collecteur intelligent de chaînes YouTube

Intermédiaire

Ceci est unMarketingworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme Set, Code, HttpRequest, GoogleSheets, GoogleSheetsTrigger. Collecter les statistiques et les coordonnées des chaînes YouTube avec Google Sheets et SerpAPI

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API

Catégorie

Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "vSYWa1hSKAvedWWp",
  "meta": {
    "instanceId": "84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db",
    "templateCredsSetupCompleted": true
  },
  "name": "Youtube Channel Intelligence Collector",
  "tags": [],
  "nodes": [
    {
      "id": "c59d8ffd-f78e-4ac5-ae00-19075db988a8",
      "name": "Nouvelle Chaîne Ajoutée",
      "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": "Obtenir les infos sur la chaîne",
      "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": "Obtenir les Statistiques de la Chaîne",
      "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": "Obtenir les Vues des Vidéos Récents",
      "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": "Préparer les vues pour sommation",
      "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": "Somme des Vues des Vidéos",
      "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": "Obtenir l'E-mail de la Chaîne (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": "Préparer les Données de la Feuille",
      "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": "Mettre à jour les Insights de la Chaîne",
      "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": "Note Adhésive",
      "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": "Note Adhésive1",
      "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": "Note Adhésive2",
      "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": "Note Adhésive3",
      "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": "Note Adhésive9",
      "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": "Note Adhésive4",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Marketing

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds15
Catégorie1
Types de nœuds6
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34