YouTube 완성하기
고급
이것은AI, Marketing분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 If, Set, Code, YouTube, HttpRequest 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. 세분화된 분야 기반 AI YouTube 트렌드 발견기
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (18)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "XSyVFC1tsGSxNwX9",
"meta": {
"instanceId": "60ad864624415060d2d0a0e71acd8b3b40e4ee2e9ef4b439d9937d3d33537a96"
},
"name": "Complete Youtube",
"tags": [],
"nodes": [
{
"id": "fd74706b-609b-4723-b4a4-067e1b064194",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
300,
60
],
"parameters": {
"options": {
"systemMessage": "=You help youtube creators find trending videos based on a specific niche.\n\nVerify if the user informed a niche before doing anything. If not, then ask him for one by giving him suggestions for him to select from.\n\nAfter you know what type of content the user might produce, use the \"youtube_search\" tool up to 3 times with different search terms based on the user's content type and niche.\n\nThe tool will answer with a list of videos from the last 2 days that had the most amount of relevancy. It returns a list of json's covering each video's id, view count, like count, comment count, description, channel title, tags and channel id. Each video is separated by \"### NEXT VIDEO FOUND: ###\".\n\nYou should then proceed to understand the data received then provide the user with insightful data of what could be trending from the past 2 days. Provide the user links to the trending videos which should be in this structure:\n\nhttps://www.youtube.com/watch?v={video_id}\n\nto reach the channel's link you should use:\n\nhttps://www.youtube.com/channel/{channel_id}\n\nFind patterns in the tags, titles and especially in the related content for the videos found.\n\nYour mission isn't to find the trending videos. It's to provide the user with valuable information of what is trending in that niche in terms of content news. Remember to provide the user with the numbers of views, likes and comments while commenting about any video. So you should not talk about any particular video, focus rather in explaining the overall senario of all that was found.\n\nExample of response:\n\n\"It seems like what is trending in digital marketing right now is talking about mental triggers, since 3 of the most trending videos in the last 2 days were about...\""
}
},
"typeVersion": 1.6
},
{
"id": "ced4b937-b590-4727-b1f2-a5e88b96091a",
"name": "chat_message_received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
80,
60
],
"webhookId": "ff9622a4-a6ec-4396-b9de-c95bd834c23c",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "35a91359-5007-407d-a750-d6642e595690",
"name": "youtube_search",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
540,
180
],
"parameters": {
"name": "youtube_search",
"workflowId": {
"__rl": true,
"mode": "list",
"value": "N9DveO781xbNf8qs",
"cachedResultName": "Youtube Search Workflow"
},
"description": "Call this tool to search for trending videos based on a query.",
"jsonSchemaExample": "{\n\t\"search_term\": \"some_value\"\n}",
"specifyInputSchema": true
},
"typeVersion": 1.2
},
{
"id": "42f41096-531d-4587-833a-6f659ef78dd0",
"name": "openai_llm",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
260,
180
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "e4bda5b9-abd4-4cd6-8c95-126a01aa6e21",
"name": "window_buffer_memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
400,
180
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "f6d86c5a-393a-4bcf-bdaf-3b06c79fa51d",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 7,
"width": 693.2572054941234,
"height": 354.53098948245656,
"content": "Main Workflow"
},
"typeVersion": 1
},
{
"id": "4ddbc3f0-e3d7-4ce4-a732-d731c05024d2",
"name": "find_video_data1",
"type": "n8n-nodes-base.httpRequest",
"position": [
700,
720
],
"parameters": {
"url": "https://www.googleapis.com/youtube/v3/videos?",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "key",
"value": "={{ $env[\"GOOGLE_API_KEY\"] }}"
},
{
"name": "id",
"value": "={{ $json.id.videoId }}"
},
{
"name": "part",
"value": "contentDetails, snippet, statistics"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "fdb28635-801d-4ce0-8919-11446c6a7a82",
"name": "get_videos1",
"type": "n8n-nodes-base.youTube",
"position": [
280,
560
],
"parameters": {
"limit": 3,
"filters": {
"q": "={{ $json.query.search_term }}",
"regionCode": "US",
"publishedAfter": "={{ new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString() }}"
},
"options": {
"order": "relevance",
"safeSearch": "moderate"
},
"resource": "video"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "dCyrga3t1tlgQQy0",
"name": "YouTube account"
}
},
"typeVersion": 1
},
{
"id": "60e9e61d-0e5e-4212-8b55-71299aeec4d5",
"name": "response1",
"type": "n8n-nodes-base.set",
"position": [
1100,
500
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b9b9117b-ea14-482e-a13b-e68b8e6b441d",
"name": "response",
"type": "string",
"value": "={{ $input.all() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "254a6740-8b25-4898-9795-4c3f0009471f",
"name": "group_data1",
"type": "n8n-nodes-base.set",
"position": [
1160,
700
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "47c172ad-90c8-4cf6-a9f5-50607e04cc90",
"name": "id",
"type": "string",
"value": "={{ $json.items[0].id }}"
},
{
"id": "9e639efa-0714-4b06-9847-f7b4b2fbef59",
"name": "viewCount",
"type": "string",
"value": "={{ $json.items[0].statistics.viewCount }}"
},
{
"id": "93328f00-91b8-425b-ad0f-a330b2f95242",
"name": "likeCount",
"type": "string",
"value": "={{ $json.items[0].statistics.likeCount }}"
},
{
"id": "015b0fb2-2a98-464c-a21b-51100616f26a",
"name": "commentCount",
"type": "string",
"value": "={{ $json.items[0].statistics.commentCount }}"
},
{
"id": "cf1e1ec3-a138-42b8-8747-d249afa58dd3",
"name": "description",
"type": "string",
"value": "={{ $json.items[0].snippet.description }}"
},
{
"id": "c5c9a3a2-b820-4932-a38a-e21102992215",
"name": "title",
"type": "string",
"value": "={{ $json.items[0].snippet.title }}"
},
{
"id": "38216ead-1f8d-4f93-b6ad-5ef709a1ad2a",
"name": "channelTitle",
"type": "string",
"value": "={{ $json.items[0].snippet.channelTitle }}"
},
{
"id": "ff34194d-3d46-43a8-9127-84708987f536",
"name": "tags",
"type": "string",
"value": "={{ $json.items[0].snippet.tags.join(', ') }}"
},
{
"id": "e50b0f7b-3e37-4557-8863-d68d4fa505c8",
"name": "channelId",
"type": "string",
"value": "={{ $json.items[0].snippet.channelId }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "124c19a9-cbbd-4010-be37-50523c05f64b",
"name": "save_data_to_memory1",
"type": "n8n-nodes-base.code",
"position": [
1360,
700
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const workflowStaticData = $getWorkflowStaticData('global');\n\nif (typeof workflowStaticData.lastExecution !== 'object') {\n workflowStaticData.lastExecution = {\n response: \"\"\n };\n}\n\nfunction removeEmojis(text) {\n return text.replace(/[\\u{1F600}-\\u{1F64F}|\\u{1F300}-\\u{1F5FF}|\\u{1F680}-\\u{1F6FF}|\\u{2600}-\\u{26FF}|\\u{2700}-\\u{27BF}]/gu, '');\n}\n\nfunction cleanDescription(description) {\n return description\n .replace(/https?:\\/\\/\\S+/g, '')\n .replace(/www\\.\\S+/g, '')\n .replace(/ +/g, ' ')\n .trim();\n}\n\nconst currentItem = { ...$input.item };\n\nif (currentItem.description) {\n currentItem.description = cleanDescription(currentItem.description);\n}\n\nlet sanitizedItem = JSON.stringify(currentItem)\n .replace(/\\\\r/g, ' ')\n .replace(/https?:\\/\\/\\S+/g, '')\n .replace(/www\\.\\S+/g, '')\n .replace(/\\\\n/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\\\/g, '')\n .replace(/ +/g, ' ')\n .trim();\n\nif (workflowStaticData.lastExecution.response) {\n workflowStaticData.lastExecution.response += ' ### NEXT VIDEO FOUND: ### ';\n}\n\nworkflowStaticData.lastExecution.response += removeEmojis(sanitizedItem);\n\nreturn workflowStaticData.lastExecution;\n"
},
"typeVersion": 2
},
{
"id": "67f92ec4-71c0-49df-a0ea-11d2e3cf0f94",
"name": "retrieve_data_from_memory1",
"type": "n8n-nodes-base.code",
"position": [
780,
500
],
"parameters": {
"jsCode": "const workflowStaticData = $getWorkflowStaticData('global');\n\nconst lastExecution = workflowStaticData.lastExecution;\n\nreturn lastExecution;"
},
"typeVersion": 2
},
{
"id": "685820ba-b089-4cdc-984d-52f134754b5c",
"name": "loop_over_items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
500,
560
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "3d4d5a4b-d06b-41db-bb78-a64a266d5308",
"name": "if_longer_than_3_",
"type": "n8n-nodes-base.if",
"position": [
880,
720
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "08ba3db9-6bcf-47f8-a74d-9e26f28cb08f",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ \n (() => {\n const duration = $json.items[0].contentDetails.duration;\n\n // Helper function to convert ISO 8601 duration to seconds\n const iso8601ToSeconds = iso8601 => {\n const match = iso8601.match(/PT(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?/);\n const hours = parseInt(match[1] || 0, 10);\n const minutes = parseInt(match[2] || 0, 10);\n const seconds = parseInt(match[3] || 0, 10);\n return hours * 3600 + minutes * 60 + seconds;\n };\n\n // Convert duration to seconds\n const durationInSeconds = iso8601ToSeconds(duration);\n\n // Check if greater than 210 seconds (3 minutes 30 seconds)\n return durationInSeconds > 210;\n })() \n}}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7c6b8b82-fd6c-4f44-bccf-88c5a76f0319",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
420
],
"parameters": {
"color": 5,
"width": 1607,
"height": 520,
"content": "This part should be abstracted to another workflow and called inside the \"youtube_search\" tool of the main AI Agent."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "cea84238-2b82-4a32-85dd-0c71ad685d47",
"connections": {
"42f41096-531d-4587-833a-6f659ef78dd0": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"fdb28635-801d-4ce0-8919-11446c6a7a82": {
"main": [
[
{
"node": "685820ba-b089-4cdc-984d-52f134754b5c",
"type": "main",
"index": 0
}
]
]
},
"254a6740-8b25-4898-9795-4c3f0009471f": {
"main": [
[
{
"node": "124c19a9-cbbd-4010-be37-50523c05f64b",
"type": "main",
"index": 0
}
]
]
},
"35a91359-5007-407d-a750-d6642e595690": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"4ddbc3f0-e3d7-4ce4-a732-d731c05024d2": {
"main": [
[
{
"node": "3d4d5a4b-d06b-41db-bb78-a64a266d5308",
"type": "main",
"index": 0
}
]
]
},
"685820ba-b089-4cdc-984d-52f134754b5c": {
"main": [
[
{
"node": "67f92ec4-71c0-49df-a0ea-11d2e3cf0f94",
"type": "main",
"index": 0
}
],
[
{
"node": "4ddbc3f0-e3d7-4ce4-a732-d731c05024d2",
"type": "main",
"index": 0
}
]
]
},
"3d4d5a4b-d06b-41db-bb78-a64a266d5308": {
"main": [
[
{
"node": "254a6740-8b25-4898-9795-4c3f0009471f",
"type": "main",
"index": 0
}
],
[
{
"node": "685820ba-b089-4cdc-984d-52f134754b5c",
"type": "main",
"index": 0
}
]
]
},
"124c19a9-cbbd-4010-be37-50523c05f64b": {
"main": [
[
{
"node": "685820ba-b089-4cdc-984d-52f134754b5c",
"type": "main",
"index": 0
}
]
]
},
"e4bda5b9-abd4-4cd6-8c95-126a01aa6e21": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"ced4b937-b590-4727-b1f2-a5e88b96091a": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"67f92ec4-71c0-49df-a0ea-11d2e3cf0f94": {
"main": [
[
{
"node": "60e9e61d-0e5e-4212-8b55-71299aeec4d5",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 인공지능, 마케팅
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
브랜드화 AI 추동 웹사이트 채팅 로봇 생성
브랜드화된 AI 드라이브드 웹사이트 채팅 로봇 생성
If
Set
Code
+
If
Set
Code
24 노드Wayne Simpson
제품
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
⚡📽️ 최종 AI 추동 YouTube 요약 및 분석 챗봇
⚡📽️ YouTube 요약 및 분석에 사용되는 모든 기능을 갖춘 AI 채팅 로봇
Set
Code
Merge
+
Set
Code
Merge
29 노드Joseph LePage
인공지능
基于AI의MIS에이전트
基于AI의관리信息系统에이전트
If
Set
Code
+
If
Set
Code
129 노드Kumar Shivam
지원
✨🩷 자동화 소셜 미디어 콘텐츠 배포 공장 + 시스템 튜닝 조합
✨🩷 자동화 소셜 미디어 콘텐츠 배포 공장 + 시스템 튜링 조합
If
Set
Code
+
If
Set
Code
100 노드Joseph LePage
마케팅
자동화 뉴스-브리핑 AI 에이전트 v13
AI 뉴스 연구 팀: 24/7 브리핑 자동화, Perplexity 인용 포함
Set
Code
Gmail
+
Set
Code
Gmail
37 노드Derek Cheung
제품
워크플로우 정보
난이도
고급
노드 수18
카테고리2
노드 유형13
저자
Leonardo Grigorio
@leonardogrigI combine my full-stack development expertise with AI automation using n8n, creating scalable workflows and seamless integrations for smarter business solutions.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유