YouTube-Crawler
Dies ist ein Market Research-Bereich Automatisierungsworkflow mit 21 Nodes. Hauptsächlich werden Set, Sort, Wait, Limit, Filter und andere Nodes verwendet. Speichere qualitativ hochwertige YouTube-Videos in Google Sheets durch automatisches Filtern und Relevanzbewertung
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (21)
Kategorie
{
"id": "uFO3zp2bl5cqZqMS",
"meta": {
"instanceId": "159ec2e1d690fe685084d28de8ca73848642bf563457a19b94cfc00f23a0d9a9",
"templateCredsSetupCompleted": true
},
"name": "YouTube Crawler",
"tags": [],
"nodes": [
{
"id": "230d2269-6b2e-4915-82e8-b42c2a36746a",
"name": "Bei Klick auf 'Workflow ausführen'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
20,
-40
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2ffb8769-8769-4636-adff-f70a65df8fa5",
"name": "Notizzettel",
"type": "n8n-nodes-base.stickyNote",
"position": [
860,
140
],
"parameters": {
"color": 4,
"width": 340,
"height": 440,
"content": "This step is going to call YouTube's API and ask for it to return videos that match the query, looking only in the category of education, sorted by relevance, and no more than 50.\n\n**What you need to do**:\n\n- Enable the YouTube Data API v3: YouTube Data API v3 page in Google Cloud Console. Instructions can be found here: https://console.cloud.google.com/apis/library/youtube.googleapis.com\n\n- Add your youtube credentials to the workspace before starting. Instructions can be found here: https://developers.google.com/youtube/registering_an_application\n\n- Change the credentials in this \"Search YouTube\" node to use your new credentials you just added"
},
"typeVersion": 1
},
{
"id": "b0becf14-1e2b-47a4-83b0-2db297518479",
"name": "Notizzettel1",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
140
],
"parameters": {
"width": 340,
"height": 240,
"content": "This step is going to set the value of what you're going to be searching for in YouTube. It's optional, but easier to update and you can attach a chat to this if you want to update it outside of the node.\n\n**What you need to do**\n\n- Change the query to whatever you want to search for videos on"
},
"typeVersion": 1
},
{
"id": "d437a506-e2b8-48fa-98cf-940657d7a879",
"name": "Abfrage festlegen",
"type": "n8n-nodes-base.set",
"position": [
340,
-40
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "58609f1a-03c7-4e5a-8199-2fcdaf495325",
"name": "query",
"type": "array",
"value": "={{[\n\"AI agents tutorial step by step\",\n\"AI tools tutorial for beginners\",\n\"AI agent building tutorial\",\n\"AI prompt engineering techniques\",\n\"best AI tools training\",\n\"prompt engineering best practices\"]}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ea7e2dad-4f8f-40d8-9e77-25fbfe222f6f",
"name": "YouTube durchsuchen",
"type": "n8n-nodes-base.httpRequest",
"position": [
980,
-40
],
"parameters": {
"url": "https://www.googleapis.com/youtube/v3/search",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "part",
"value": "id,snippet"
},
{
"name": "q",
"value": "={{ $json.query }}"
},
{
"name": "type",
"value": "video"
},
{
"name": "maxResults",
"value": "50"
},
{
"name": "order",
"value": "relevance"
},
{
"name": "videoCategoryId",
"value": "27"
}
]
},
"nodeCredentialType": "youTubeOAuth2Api"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "kheqATZudwItRKpl",
"name": "YouTube account"
}
},
"typeVersion": 4.2
},
{
"id": "f68554af-5f38-4296-a38e-e917dba605f4",
"name": "Notizzettel2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1980,
220
],
"parameters": {
"color": 3,
"width": 440,
"height": 340,
"content": "This loop is going to collect all the metadata that we need from the videos, such as view and like count, and then filter based on those values as well as recency of publishing. Finally it will remove unnecessary fields before sending on to the final steps in the worfklow.\n\n**What you need to do**\n\n- Change the YouTube credentials in the \"Get Video Metadata\" node\n\n\n**Try Modifying**\n\n- The filter criteria to broaden, narrow, or change your aperture.\n\n"
},
"typeVersion": 1
},
{
"id": "62956d67-ee59-4131-8f4f-de263dafa7bc",
"name": "Notizzettel3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1380,
-320
],
"parameters": {
"color": 5,
"width": 340,
"height": 220,
"content": "This step is going to be the first quality and relevance filter, excluding anything that doesn't seem purely educational or that seems promotional or scammy.\n\n**Try Modifying**\n\n- The filter criteria to better reflect what you want to include or exclude.\n"
},
"typeVersion": 1
},
{
"id": "c0f112d7-99d3-487a-9def-71bf8a879fdd",
"name": "Warten",
"type": "n8n-nodes-base.wait",
"position": [
2920,
-340
],
"webhookId": "4318003c-dba4-43fb-a918-3225868d358a",
"parameters": {
"amount": 3
},
"typeVersion": 1.1
},
{
"id": "43bb3d2b-0022-4cb0-a13c-ba7df4d4d9f4",
"name": "Nach Qualität filtern",
"type": "n8n-nodes-base.filter",
"position": [
2280,
-40
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "0fe9a82c-6c5c-44c1-8da7-24e2f8783a0e",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.items[0].statistics.viewCount }}",
"rightValue": 10000
},
{
"id": "7eae8c9b-c85d-4f0f-92bd-01b047e05d0e",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.items[0].statistics.likeCount }}",
"rightValue": 100
},
{
"id": "51d609d3-0b04-476e-9abd-a68a1f9c095c",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.items[0].snippet.publishedAt }}",
"rightValue": "2023-12-01T00:00:00"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "f844dd50-6a38-4e9f-874b-885bddf52b4e",
"name": "Notizzettel5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2260,
-820
],
"parameters": {
"color": 3,
"width": 440,
"height": 440,
"content": "This final set of steps is going to remove duplicate videos, assign a relevance score based on keywords and quality metrics, and then send only the top one's to a google sheet. \n\n**What you need to do**\n\n- Create a new google sheet in your drive with the columns Title, Channel, Published At, Views, Likes, Description, URL. This is the sheet your workflow will write into.\n\n- Add your google sheet credentials to your workspace\n\n- Change out the credential values in the \"Send to Google Sheets\" node\n\n\n**Try Modifying**\n\n- The formula for the relevance score to reflect your criteria for quality\n"
},
"typeVersion": 1
},
{
"id": "40ec5dda-3c74-4203-b769-896cdb17c703",
"name": "Abfrage aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
660,
-40
],
"parameters": {
"options": {},
"fieldToSplitOut": "query"
},
"typeVersion": 1
},
{
"id": "0f3f6e07-b0ad-4558-a268-97b61094671a",
"name": "Ergebnisse aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
1240,
-40
],
"parameters": {
"options": {},
"fieldToSplitOut": "items"
},
"typeVersion": 1
},
{
"id": "c44d4550-3bcc-46e5-b294-65c5455b112f",
"name": "Nach Relevanz filtern",
"type": "n8n-nodes-base.filter",
"position": [
1480,
-40
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "051c8268-ace1-4d87-a57e-798ed9992331",
"operator": {
"type": "string",
"operation": "regex"
},
"leftValue": "={{ $json.snippet.title.toLowerCase() }}",
"rightValue": "tutorial|course|guide|training|learn|education|explained|masterclass|complete.*guide|step.*by.*step|beginners.*guide|how.*to.*build|fundamentals"
},
{
"id": "3bb11116-7ac6-4aa1-b1ac-3ebd1a6ceb82",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.snippet.title.toLowerCase() }}",
"rightValue": "money|rich|profit|earn|cash|income|\\$|💰|sell|agency|business|client|freelance|side.*hustle|make.*money"
},
{
"id": "5edc6bdd-514c-4cbd-bbbc-51da2f87c41e",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.snippet.title.toLowerCase() }}",
"rightValue": "autopilot|passive.*income|[\\d]+k.*subs|faceless.*videos|youtube.*automation.*money|100%.*automated.*money"
},
{
"id": "320ed472-8b8d-49bc-b830-e95c39017397",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.snippet.title.toLowerCase() }}",
"rightValue": "insane|crazy|ultimate.*secret|hack|trick|must.*do|steal.*these|best.*way.*to.*make|ways.*to.*make|you.*need.*to|[\\d]+.*ways|[\\d]+.*insane"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "74f3670e-e61a-4dd1-bde7-5fbf845e14ca",
"name": "Über Elemente iterieren",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1820,
-80
],
"parameters": {
"options": {},
"batchSize": 10
},
"executeOnce": false,
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "8ad9d1d8-83f7-4edc-bac3-3d7bffbc0c83",
"name": "Video-Metadaten abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
2060,
-40
],
"parameters": {
"url": "https://www.googleapis.com/youtube/v3/videos",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "part",
"value": "snippet,statistics"
},
{
"name": "id",
"value": "={{ $json.id.videoId }}"
}
]
},
"nodeCredentialType": "youTubeOAuth2Api"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "kheqATZudwItRKpl",
"name": "YouTube account"
}
},
"typeVersion": 4.2
},
{
"id": "040a4ed8-ec93-4461-acc1-5403154d3d61",
"name": "Unnötige Felder entfernen",
"type": "n8n-nodes-base.set",
"position": [
2480,
-40
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "bd1dfa28-997f-45e7-983f-06b4afdf2224",
"name": "Title",
"type": "string",
"value": "={{ $json.items[0].snippet.title }}"
},
{
"id": "9921ef02-a86d-42ae-a4df-9c2dd674505c",
"name": "Channel",
"type": "string",
"value": "={{ $json.items[0].snippet.channelTitle }}"
},
{
"id": "ec38edef-66e2-480f-9617-66123decfcef",
"name": "Published At",
"type": "string",
"value": "={{ $json.items[0].snippet.publishedAt }}"
},
{
"id": "9bb69372-553a-4c8d-8286-00f41c90a78c",
"name": "Views",
"type": "string",
"value": "={{ $json.items[0].statistics.viewCount }}"
},
{
"id": "80edec74-08c1-4d68-82f7-ba061cb2173e",
"name": "Likes",
"type": "string",
"value": "={{ $json.items[0].statistics.likeCount }}"
},
{
"id": "9700bbee-7f25-43fe-a653-42a7c8fade77",
"name": "Description",
"type": "string",
"value": "={{ $json.items[0].snippet.description }}"
},
{
"id": "9afaaa69-1afd-4f45-bfe6-24671651ac82",
"name": "URL",
"type": "string",
"value": "=https://www.youtube.com/watch?v={{ $json.items[0].id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "79b34b24-290f-43b7-8c45-990a5c30cdb0",
"name": "Doppelte Videos entfernen",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
2060,
-340
],
"parameters": {
"compare": "={{ $json.URL }}",
"options": {}
},
"typeVersion": 2
},
{
"id": "756fa598-ab05-46ff-aaea-be6c9533568d",
"name": "Relevanzwert berechnen",
"type": "n8n-nodes-base.set",
"position": [
2280,
-340
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d691e3bf-9fc4-406f-b6e7-d62487820ea1",
"name": "RelevanceScore",
"type": "number",
"value": "={{\n // Educational keywords (higher scores)\n (($json.Title.toLowerCase().includes('tutorial')) ? 15 : 0) +\n (($json.Title.toLowerCase().includes('course')) ? 15 : 0) +\n (($json.Title.toLowerCase().includes('guide')) ? 12 : 0) +\n (($json.Title.toLowerCase().includes('explained')) ? 12 : 0) +\n (($json.Title.toLowerCase().includes('beginner')) ? 10 : 0) +\n (($json.Title.toLowerCase().includes('step by step')) ? 15 : 0) +\n (($json.Title.toLowerCase().includes('complete')) ? 10 : 0) +\n \n // AI-specific terms\n (($json.Title.toLowerCase().includes('prompt engineering')) ? 20 : 0) +\n (($json.Title.toLowerCase().includes('ai agent')) ? 18 : 0) +\n (($json.Title.toLowerCase().includes('ai tools')) ? 15 : 0) +\n (($json.Title.toLowerCase().includes('prompting')) ? 15 : 0) +\n \n // Quality indicators\n ((parseInt($json.Views) > 100000) ? 10 : 0) +\n ((parseInt($json.Views) > 50000) ? 5 : 0) +\n ((parseInt($json.Likes) > 1000) ? 8 : 0) +\n \n // Penalty for monetization indicators\n (($json.Title.toLowerCase().includes('money') || \n $json.Title.toLowerCase().includes('rich') || \n $json.Title.toLowerCase().includes('earn')) ? -20 : 0)\n}}"
},
{
"id": "a9e446de-dc9c-4dba-ab0b-d5647a24ba39",
"name": "Title",
"type": "string",
"value": "={{ $json.Title }}"
},
{
"id": "1669b129-9e9a-45e6-925f-c5e41e6de692",
"name": "Channel",
"type": "string",
"value": "={{ $json.Channel }}"
},
{
"id": "3d45d0ce-3068-424c-80a3-06c11785846d",
"name": "Published at",
"type": "string",
"value": "={{ $json['Published At'] }}"
},
{
"id": "16e45f2b-1d0b-48e4-b86c-7e8ba82c5aef",
"name": "Views",
"type": "string",
"value": "={{ $json.Views }}"
},
{
"id": "86f2af64-27f9-4e3c-9883-c279edc938c6",
"name": "Likes",
"type": "string",
"value": "={{ $json.Likes }}"
},
{
"id": "d967b6c4-ab40-4f87-a84e-e0cb1bbb51d6",
"name": "Descriptoin",
"type": "string",
"value": "={{ $json.Description }}"
},
{
"id": "e0af7129-2215-4583-b236-63587a4974b6",
"name": "URL",
"type": "string",
"value": "={{ $json.URL }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "452016d9-50ce-49bb-bed8-d3213bd5bcec",
"name": "Nach Relevanz sortieren",
"type": "n8n-nodes-base.sort",
"position": [
2480,
-340
],
"parameters": {
"options": {
"disableDotNotation": false
},
"sortFieldsUi": {
"sortField": [
{
"order": "descending",
"fieldName": "RelevanceScore"
}
]
}
},
"typeVersion": 1
},
{
"id": "916ff54f-b7a3-472f-af8e-df2e501aef65",
"name": "Limit erzwingen",
"type": "n8n-nodes-base.limit",
"position": [
2700,
-340
],
"parameters": {
"maxItems": 50
},
"typeVersion": 1
},
{
"id": "b4007c9b-cf09-4292-b22d-2778bf7c03a6",
"name": "An Google Sheets senden",
"type": "n8n-nodes-base.googleSheets",
"position": [
3120,
-340
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $json.URL }}",
"Likes": "={{ $json.Likes }}",
"Title": "={{ $json.Title }}",
"Views": "={{ $json.Views }}",
"Channel": "={{ $json.Channel }}",
"Description": "={{ $json.Descriptoin }}",
"Published At": "={{ $json['Published at'] }}"
},
"schema": [
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Channel",
"type": "string",
"display": true,
"required": false,
"displayName": "Channel",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Published At",
"type": "string",
"display": true,
"required": false,
"displayName": "Published At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Views",
"type": "string",
"display": true,
"required": false,
"displayName": "Views",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Likes",
"type": "string",
"display": true,
"required": false,
"displayName": "Likes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LbV3_SHHrGiTm7h-4WjBlbaNXDcv7fzzvHhmrU_GY3c/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1LbV3_SHHrGiTm7h-4WjBlbaNXDcv7fzzvHhmrU_GY3c",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LbV3_SHHrGiTm7h-4WjBlbaNXDcv7fzzvHhmrU_GY3c/edit?usp=drivesdk",
"cachedResultName": "YouTube AI Resources"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "e6dWze7VEM4F98dD",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "cfed5f6c-f15f-4dfe-bf4a-11541a75fc71",
"connections": {
"c0f112d7-99d3-487a-9def-71bf8a879fdd": {
"main": [
[
{
"node": "b4007c9b-cf09-4292-b22d-2778bf7c03a6",
"type": "main",
"index": 0
}
]
]
},
"d437a506-e2b8-48fa-98cf-940657d7a879": {
"main": [
[
{
"node": "40ec5dda-3c74-4203-b769-896cdb17c703",
"type": "main",
"index": 0
}
]
]
},
"916ff54f-b7a3-472f-af8e-df2e501aef65": {
"main": [
[
{
"node": "c0f112d7-99d3-487a-9def-71bf8a879fdd",
"type": "main",
"index": 0
}
]
]
},
"40ec5dda-3c74-4203-b769-896cdb17c703": {
"main": [
[
{
"node": "ea7e2dad-4f8f-40d8-9e77-25fbfe222f6f",
"type": "main",
"index": 0
}
]
]
},
"0f3f6e07-b0ad-4558-a268-97b61094671a": {
"main": [
[
{
"node": "c44d4550-3bcc-46e5-b294-65c5455b112f",
"type": "main",
"index": 0
}
]
]
},
"ea7e2dad-4f8f-40d8-9e77-25fbfe222f6f": {
"main": [
[
{
"node": "0f3f6e07-b0ad-4558-a268-97b61094671a",
"type": "main",
"index": 0
}
]
]
},
"74f3670e-e61a-4dd1-bde7-5fbf845e14ca": {
"main": [
[
{
"node": "79b34b24-290f-43b7-8c45-990a5c30cdb0",
"type": "main",
"index": 0
}
],
[
{
"node": "8ad9d1d8-83f7-4edc-bac3-3d7bffbc0c83",
"type": "main",
"index": 0
}
]
]
},
"452016d9-50ce-49bb-bed8-d3213bd5bcec": {
"main": [
[
{
"node": "916ff54f-b7a3-472f-af8e-df2e501aef65",
"type": "main",
"index": 0
}
]
]
},
"43bb3d2b-0022-4cb0-a13c-ba7df4d4d9f4": {
"main": [
[
{
"node": "040a4ed8-ec93-4461-acc1-5403154d3d61",
"type": "main",
"index": 0
}
]
]
},
"8ad9d1d8-83f7-4edc-bac3-3d7bffbc0c83": {
"main": [
[
{
"node": "43bb3d2b-0022-4cb0-a13c-ba7df4d4d9f4",
"type": "main",
"index": 0
}
]
]
},
"c44d4550-3bcc-46e5-b294-65c5455b112f": {
"main": [
[
{
"node": "74f3670e-e61a-4dd1-bde7-5fbf845e14ca",
"type": "main",
"index": 0
}
]
]
},
"b4007c9b-cf09-4292-b22d-2778bf7c03a6": {
"main": [
[]
]
},
"79b34b24-290f-43b7-8c45-990a5c30cdb0": {
"main": [
[
{
"node": "756fa598-ab05-46ff-aaea-be6c9533568d",
"type": "main",
"index": 0
}
]
]
},
"756fa598-ab05-46ff-aaea-be6c9533568d": {
"main": [
[
{
"node": "452016d9-50ce-49bb-bed8-d3213bd5bcec",
"type": "main",
"index": 0
}
]
]
},
"040a4ed8-ec93-4461-acc1-5403154d3d61": {
"main": [
[
{
"node": "74f3670e-e61a-4dd1-bde7-5fbf845e14ca",
"type": "main",
"index": 0
}
]
]
},
"230d2269-6b2e-4915-82e8-b42c2a36746a": {
"main": [
[
{
"node": "d437a506-e2b8-48fa-98cf-940657d7a879",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Marktforschung
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Zach @BrightWayAI
@ajentaI’m Zach, founder of BrightWay and long-time product leader turned AI builder. I’ve led product teams at high-growth companies and now focus on helping mission-driven organizations automate repetitive tasks with n8n and AI. I believe in making automation accessible, starting small, and solving real-world problems with simple, smart systems.
Diesen Workflow teilen