8
n8n 한국어amn8n.com

AI 기반 YouTube 자동 태그 워크플로우(SEO 자동화)

고급

이것은AI Summarization, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 Set, Slack, YouTube, Telegram, Agent 등의 노드를 사용하며. GPT 및 Slack 알림을 사용한 YouTube 동영상 SEO 태그 자동화

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • Telegram Bot Token
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "iR5Qxsd2rQKs553F",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateCredsSetupCompleted": true
  },
  "name": "AI-Powered YouTube Auto-Tagging Workflow (SEO Automation)",
  "tags": [
    {
      "id": "yZoudEzYFVwawRWb",
      "name": "youtube",
      "createdAt": "2025-08-26T06:37:09.894Z",
      "updatedAt": "2025-08-26T06:37:09.894Z"
    }
  ],
  "nodes": [
    {
      "id": "eeb9e588-5a0c-4f88-9816-73c7e1e084b2",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        192
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a18a582a-ba79-4e23-b39a-7e3d4f37f610",
      "name": "Youtube Video Auto Tagging Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        384,
        -32
      ],
      "parameters": {
        "text": "=Here is my YouTube video information:\n\nTitle: {{ $json.snippet.title }}\nDescription: {{ $json.snippet.description }}\nChannel Name: {{ $json.snippet.channelTitle }}\n\nPlease analyze this information and provide me with the most relevant and SEO-friendly tags (15–20, comma-separated). \nFocus on tags that increase reach, match viewer search intent, and balance between trending keywords and niche keywords. ",
        "options": {
          "systemMessage": "You are an expert YouTube SEO strategist. \nYour goal is to generate a list of highly relevant, diverse, and SEO-friendly tags for a YouTube video based on its title, description, and channel name. \nThe tags should:\n- Improve discoverability and ranking on YouTube search and recommendations\n- Cover both specific keywords (directly related to the video) and broader categories (general niche)\n- Include variations (short-tail and long-tail keywords)\n- Avoid duplicates, irrelevant terms, or hashtags (#)\n- Be limited to 15–20 tags, formatted as a clean comma-separated list\n- Prioritize high-search-intent keywords that align with the channel’s theme"
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "a568f816-976c-476d-90ce-2e3833d5a53b",
      "name": "주간 스케줄 트리거",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -496,
        -32
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "12932cab-a1c4-4703-8f3b-8acf297a50bf",
      "name": "지난주 업로드된 모든 동영상 가져오기",
      "type": "n8n-nodes-base.youTube",
      "position": [
        -64,
        -32
      ],
      "parameters": {
        "filters": {
          "channelId": "={{ $json.Channel_Id }}",
          "publishedAfter": "={{ $today.minus(1,'days') }}"
        },
        "options": {
          "order": "date"
        },
        "resource": "video",
        "returnAll": true
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "QCcCcX4vK4jmKpJz",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d6cabd43-deb2-40ba-bd57-fea53b848f0a",
      "name": "동영상 상세 정보 가져오기",
      "type": "n8n-nodes-base.youTube",
      "position": [
        160,
        -32
      ],
      "parameters": {
        "options": {},
        "videoId": "={{ $json.id.videoId }}",
        "resource": "video",
        "operation": "get"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "QCcCcX4vK4jmKpJz",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5603be02-d036-4c04-91dc-a7f4bde972af",
      "name": "AI 생성 태그로 동영상 업데이트",
      "type": "n8n-nodes-base.youTube",
      "position": [
        784,
        -32
      ],
      "parameters": {
        "title": "={{ $('Get video detail').item.json.snippet.title }}",
        "videoId": "={{ $('Get video detail').item.json.id }}",
        "resource": "video",
        "operation": "update",
        "categoryId": "28",
        "regionCode": "VN",
        "updateFields": {
          "tags": "={{ $json.output }}",
          "description": "={{ $('Get video detail').item.json.snippet.description }}"
        }
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "QCcCcX4vK4jmKpJz",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0d30ce62-5c94-40ac-83cd-e3120c941c6a",
      "name": "slack 메시지로 알림",
      "type": "n8n-nodes-base.slack",
      "position": [
        1216,
        -144
      ],
      "webhookId": "a9989356-6284-4bea-b16b-23ee6eb2c091",
      "parameters": {
        "text": "=The video ”{{ $json.snippet.title }} - {{ $json.id }}” has been auto-tagged successfully with the following tags: {{ $('Youtube Video Auto Tagging Agent').item.json.output }}",
        "user": {
          "__rl": true,
          "mode": "username",
          "value": "@trung.tran"
        },
        "select": "user",
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "4JSKt9sIRV1KGswQ",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "b443412b-03a0-4663-a6e8-72575fdafb50",
      "name": "스티커 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -176
      ],
      "parameters": {
        "width": 688,
        "height": 128,
        "content": "![](https://s3.ap-southeast-1.amazonaws.com/automatewith.me/Screenshot+2025-08-26+at+1.19.18%E2%80%AFPM.png)"
      },
      "typeVersion": 1
    },
    {
      "id": "9229f95f-88f4-45e0-b5aa-5365777a68d2",
      "name": "스티커 노트1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -784
      ],
      "parameters": {
        "width": 608,
        "height": 528,
        "content": "![](https://s3.ap-southeast-1.amazonaws.com/automatewith.me/Screenshot+2025-08-26+at+1.21.47%E2%80%AFPM.png)"
      },
      "typeVersion": 1
    },
    {
      "id": "baa0e76d-7a75-45df-a4c4-c7600a5b6617",
      "name": "스티커 노트2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1760,
        -1136
      ],
      "parameters": {
        "width": 1072,
        "height": 2208,
        "content": "# AI-Powered YouTube Auto-Tagging Workflow (SEO Automation)\n> Supercharge your YouTube SEO with this AI-powered workflow that automatically generates and applies smart, SEO friendly tags to your new videos every week. No more manual tagging, just better discoverability, improved reach, and consistent optimization. Plus, get instant Slack notifications so your team stays updated on every video’s SEO boost.\n## Who’s it for\n- YouTube creators, channel admins, and marketing teams who publish regularly and want consistent, SEO-friendly tags without manual effort.  \n- Agencies managing multiple channels who need an auditable, automated tagging process with Slack notifications.\n\n## How it works / What it does\n1. **Weekly Schedule Trigger**  \n   Runs the workflow once per week.\n\n2. **Get all videos uploaded last week**  \n   Queries YouTube for videos uploaded by the channel in the past 7 days.\n\n3. **Get video detail**  \n   Retrieves each video’s title, description, and ID.\n\n4. **YouTube Video Auto Tagging Agent** (LLM)  \n   - Inputs: `video.title`, `video.description`, `channelName`.  \n   - Uses a SEO-specialist system prompt to generate 15–20 relevant, comma-separated tags.\n\n5. **Update video with AI-generated tags**  \n   Writes the tags back to the video via YouTube Data API.\n\n6. **Inform via Slack message**  \n   Posts a confirmation message (video title + ID + tags) to a chosen Slack channel for visibility.\n\n## How to set up\n1. **YouTube connection**\n   - Create a Google Cloud project and enable **YouTube Data API v3**.\n   - Configure OAuth client (Web app / Desktop as required).\n   - Authorize with the Google account that manages the channel.\n   - In your automation platform, add the YouTube credential and grant scopes (see *Requirements*).\n\n2. **Slack connection**\n   - Create or use an existing Slack app/bot.\n   - Install to your workspace and capture the Bot Token.\n   - Add the Slack credential in your automation platform.\n\n3. **LLM / Chat Model**\n   - Select your model (e.g., OpenAI GPT).  \n   - Paste the **System Prompt** (SEO expert) and the **User Prompt** template:\n     - Inputs: `{{video_title}}`, `{{video_description}}`, `{{channel_name}}`.\n     - Output: **comma-separated list** of 15–20 tags (no #, no duplicates).\n\n4. **Node configuration**\n   - **Weekly Schedule Trigger:** choose day/time (e.g., Mondays 09:00 local).\n   - **Get all videos uploaded last week:** date filter = now() - 7 days.\n   - **Get video detail:** map each video ID from previous node.\n   - **Agent node:** map fields to the prompt variables.\n   - **Update video:** map the agent’s tag string to the YouTube `tags` field.\n   - **Slack message:**  \n     ```\n     The video \"*{{video_title}} - {{video_id}}*\" has been auto-tagged successfully.\n     Tags: {{tags}}\n     ```\n\n5. **Test run**\n   - Manually run the workflow with one recent video.\n   - Verify the tags appear in YouTube Studio and the Slack message posts.\n\n## Requirements\n**APIs & Scopes**\n- **YouTube Data API v3**\n  - `youtube.readonly` (to list videos / details)\n  - `youtube` or `youtube.force-ssl` (to update video metadata incl. tags)\n- **Slack Bot Token Scopes**\n  - `chat:write` (post messages)\n  - `channels:read` or `groups:read` if selecting channels dynamically (optional)\n\n**Platform**\n- Access to a chat/LLM provider (e.g., OpenAI).\n- Outbound HTTPS allowed.\n\n**Rate limits & quotas**\n- YouTube updates consume quota; tag updates are write operations—avoid re-writing unchanged tags.\n- Add basic throttling (e.g., 1–2 updates/sec) if you process many videos.\n\n## How to customize the workflow\n- **Schedule:** switch to daily, or run on publish events instead of weekly.\n- **Filtering:** process only videos matching rules (e.g., title contains “tutorial”, or missing tags).\n- **Prompt tuning:**  \n  - Add brand keywords to always include (e.g., “WiseStack AI”).  \n  - Constrain to language (e.g., “Vietnamese tags only”).  \n  - Enforce max 500 chars total for tags if you want a stricter cap.\n- **Safety guardrails:**  \n  - Validate model output: split by comma, trim whitespace, dedupe, drop empty/over-long tags.  \n  - If the agent fails, fall back to a heuristic generator (title/keywords extraction).\n- **Change log:** write a row per update to a sheet/DB (videoId, oldTags, newTags, timestamp, runId).\n- **Human-in-the-loop:** send tags to Slack as buttons (“Apply / Edit / Skip”) before updating YouTube.\n- **Multi-channel support:** loop through a list of channel credentials and repeat the pipeline.\n- **Notifications:** add error Slack messages for failed API calls; summarize weekly results.\n\n**Tip:** Keep a small allow/deny list (e.g., banned terms, mandatory brand terms) and run a quick sanitizer right after the agent node to maintain consistency across your channel."
      },
      "typeVersion": 1
    },
    {
      "id": "d8d08371-f68e-4de2-b6f3-85c7ff34257b",
      "name": "스티커 노트3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        -192
      ],
      "parameters": {
        "height": 128,
        "content": "### 1. Weekly Schedule Trigger\nThe workflow starts automatically once per week, ensuring newly uploaded videos are processed on schedule.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ac946b30-3d0a-4e47-a925-ebe4957ce05d",
      "name": "스티커 노트4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        160
      ],
      "parameters": {
        "height": 128,
        "content": "### 2. Get All Videos Uploaded Last Week\nFetches a list of all videos uploaded to the channel in the past 7 days."
      },
      "typeVersion": 1
    },
    {
      "id": "eb5de2fc-5469-44d1-b539-9d252f2ff08a",
      "name": "스티커 노트5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -176
      ],
      "parameters": {
        "height": 112,
        "content": "### 3. Get Video Detail\nRetrieves each video’s title, description, and ID to prepare for SEO tag generation.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6a37b4aa-6f5a-4038-ba78-a0a34fbd14ef",
      "name": "스티커 노트6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        -224
      ],
      "parameters": {
        "content": "### 4. YouTube Video Auto Tagging Agent\nUses an AI SEO expert prompt to generate 15–20 relevant, comma-separated tags based on the video title, description, and channel name."
      },
      "typeVersion": 1
    },
    {
      "id": "5e5d6e85-c775-4922-ae93-aacbe6df8953",
      "name": "스티커 노트7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        160
      ],
      "parameters": {
        "height": 128,
        "content": "### 5. Update Video with AI-Generated Tags\nUpdates each video in YouTube with the newly generated SEO-friendly tags.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dc46942f-1a90-479a-8101-878490739aa1",
      "name": "스티커 노트8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -336
      ],
      "parameters": {
        "content": "### 6. Inform via Slack Message\nSends a confirmation message to Slack with the video title, ID, and the tags applied, keeping the team informed."
      },
      "typeVersion": 1
    },
    {
      "id": "29b62c5e-1ec2-4dde-a484-8c96d9a65116",
      "name": "대체 알림 채널",
      "type": "n8n-nodes-base.telegram",
      "disabled": true,
      "position": [
        1216,
        176
      ],
      "webhookId": "f98476d9-64e4-48b1-893f-b7d837aeceb1",
      "parameters": {
        "text": "=The video ”{{ $json.snippet.title }} - {{ $json.id }}” has been auto-tagged successfully with the following tags: {{ $('Youtube Video Auto Tagging Agent').item.json.output }}",
        "chatId": "chat_id",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6bde2db5-e5c0-487f-b2fd-150369bc1236",
      "name": "스티커 노트9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        384
      ],
      "parameters": {
        "height": 80,
        "content": "(Optional) Customize this node to send message via Telegram, in case you're not using Slack"
      },
      "typeVersion": 1
    },
    {
      "id": "8cc6eb91-0f1c-4b92-bf75-e47889c4fa2c",
      "name": "채널 정보 설정",
      "type": "n8n-nodes-base.set",
      "position": [
        -272,
        -32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4c3894aa-c248-4eac-a97c-9d44a9496964",
              "name": "Channel_Id",
              "type": "string",
              "value": "UCOdDjEyCCUQECkzWHxTF5iw"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "845e49ef-ae93-4b9a-9f52-087d5263821b",
  "connections": {
    "d6cabd43-deb2-40ba-bd57-fea53b848f0a": {
      "main": [
        [
          {
            "node": "a18a582a-ba79-4e23-b39a-7e3d4f37f610",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eeb9e588-5a0c-4f88-9816-73c7e1e084b2": {
      "ai_languageModel": [
        [
          {
            "node": "a18a582a-ba79-4e23-b39a-7e3d4f37f610",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8cc6eb91-0f1c-4b92-bf75-e47889c4fa2c": {
      "main": [
        [
          {
            "node": "12932cab-a1c4-4703-8f3b-8acf297a50bf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a568f816-976c-476d-90ce-2e3833d5a53b": {
      "main": [
        [
          {
            "node": "8cc6eb91-0f1c-4b92-bf75-e47889c4fa2c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "29b62c5e-1ec2-4dde-a484-8c96d9a65116": {
      "main": [
        []
      ]
    },
    "a18a582a-ba79-4e23-b39a-7e3d4f37f610": {
      "main": [
        [
          {
            "node": "5603be02-d036-4c04-91dc-a7f4bde972af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "12932cab-a1c4-4703-8f3b-8acf297a50bf": {
      "main": [
        [
          {
            "node": "d6cabd43-deb2-40ba-bd57-fea53b848f0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5603be02-d036-4c04-91dc-a7f4bde972af": {
      "main": [
        [
          {
            "node": "0d30ce62-5c94-40ac-83cd-e3120c941c6a",
            "type": "main",
            "index": 0
          },
          {
            "node": "29b62c5e-1ec2-4dde-a484-8c96d9a65116",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - AI 요약, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수19
카테고리2
노드 유형8
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34