YouTube 자동화
고급
이것은AI, Marketing분야의자동화 워크플로우로, 33개의 노드를 포함합니다.주로 If, Set, Code, Wait, YouTube 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. 자동화 YouTube 비디오 스케줄링 및 AI 메타데이터 생성 🎬
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
- •Google Gemini API Key
사용된 노드 (33)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "wLbJ7rE6vQzizCp2",
"meta": {
"instanceId": "5ce52989094be90be3b3bdd9ed9cee1d7ce1fcecaa598afaec4a50646d32e291",
"templateCredsSetupCompleted": true
},
"name": "Youtube_Automation",
"tags": [
{
"id": "5eZb3e5PJspoJjVN",
"name": "Privat",
"createdAt": "2025-02-22T09:31:58.972Z",
"updatedAt": "2025-02-22T09:31:58.972Z"
},
{
"id": "fSDcaaN3w5sV5e3S",
"name": "Templates",
"createdAt": "2025-02-23T15:20:47.262Z",
"updatedAt": "2025-02-23T15:20:47.262Z"
}
],
"nodes": [
{
"id": "2001b9ca-f76b-437e-90a9-16c0d17accef",
"name": "최신 비디오 가져오기",
"type": "n8n-nodes-base.youTube",
"position": [
-60,
40
],
"parameters": {
"limit": 1,
"filters": {},
"options": {
"order": "date"
},
"resource": "video"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
},
{
"id": "e8857adf-63ec-4612-aa49-cd77130a6728",
"name": "항목 루프",
"type": "n8n-nodes-base.splitInBatches",
"position": [
160,
40
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1a8cf640-caf4-4163-a658-400714702314",
"name": "YT 제목",
"type": "@n8n/n8n-nodes-langchain.openAi",
"disabled": true,
"position": [
2220,
120
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "Du bist ein professioneller Texter für SEO-optimierte YouTube-Titel."
},
{
"content": "=Schreib mir einen passenden SEO Youtube Titel für das Transkript folgendes Videotranskriptes. Gib mir nur den Titel sonst nichts. Maximal 100 Character also halte dich kurz.\n\n{{ $('Adjust Transcript Format').item.json.transcript }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "ftBgqCi1fD1fFEZq",
"name": "Midgard#1"
}
},
"typeVersion": 1.7
},
{
"id": "ec6e5d83-d8c8-417e-8df0-86634feef3e6",
"name": "설명 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1920,
80
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "Du bist ein professioneller Texteschreiber.\nDu erhältst das Transkript eines wirtschaftsbezogenen Videos und erstellst eine ausführlichere aber auch nicht zu lange Zusammenfassung (mit Absätzen) darüber, worum es geht.\n\nSchreibe eine ausführlichere Zusammenfassung (mit Absätzen) über den Inhalt des Podcasts. \n\nDein Output wird für die Youtube Video Beschreibung verwendet. Also starte mit sowas wie: \"In diesem Video...\" oder \"In dieser Folge...\". \nSchreibe aus meiner Perspektive also Sachen wie \"meine Meinung\" oder \"meiner Ansicht nach\"... aus der Ich- Perspektive aber niemals sowas wie \"In dieser Folge lerne ich...\" oder so ähnlich, denn ich erkläre stets den Inhalt bzw. diskutiere darüber. DU SCHREIBST NIEMALS SOWAS WIE \"DER SPRECHER SAGT\"!!! Immer aus meiner Position heraus.\n\nWichtig: Verwende klare und dominante Aussagen, wie sie im Transkript formuliert sind. Vermeide neutrale oder unsichere Formulierungen wie \"es könnte\", \"ich vermute, dass\", \"möglicherweise\" oder ähnliche Phrasen. Die Aussagen sollen selbstbewusst und eindeutig sein, um die Inhalte des Podcasts kraftvoll zu vermitteln.\nFüge einige wenige (2-4) Emojis an wo es sich anbietet. \n \nEnde den Post mit 2-5 passenden Hashtags. Die Hashtags sollten grob sein also sowas wie #wirtschaft #geld #gold oder so ähnlich - je nachdem was passt.\n"
},
{
"content": "=Hier ist das Transkript: \n\n{{ $json.transcript }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "ftBgqCi1fD1fFEZq",
"name": "Midgard#1"
}
},
"typeVersion": 1.7
},
{
"id": "f59d950b-4e29-4a41-8756-85ea7814b3d3",
"name": "'워크플로 테스트' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-2260,
300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "27ef7d44-7cca-417f-8177-b5b896a79aa0",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2660,
-20
],
"parameters": {
"color": 3,
"width": 220,
"content": "### 🎥Title is kept from the upload, alternatively you can just add the YT Title module in the mix \n# 👇🏻\n"
},
"typeVersion": 1
},
{
"id": "8d763312-35f0-4d53-a210-1e0e22a06323",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
-140
],
"parameters": {
"color": 3,
"height": 200,
"content": "# Adjust the Prompts 👉🏻\n\n# 👇🏻"
},
"typeVersion": 1
},
{
"id": "9e7f22d5-7776-4bc4-a274-963cb8c8810c",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-560
],
"parameters": {
"color": 5,
"width": 620,
"height": 420,
"content": "# Youtube Video Description/Tags/etc. Automation\n\n👉🏻 **Repos**: [github.com/JimPresting](https://github.com/JimPresting) 🛠️ \n👉🏻 **YouTube**: [youtube.com/@StardawnAI](https://www.youtube.com/@StardawnAI) 🎥 \n\nStay up to date for guides on Github repos and tutorials on YouTube! 🚀\n\n\n**Note:** By default, this takes only the latest video and adjusts the values. If you upload multiple videos within a day or even at once within one hour, you need to set that value higher, but bear in mind that if you set it to a high number, it will process older, already published videos. Using the *Publish After* option can't be recommended as it might lead to errors with scheduled videos.\nYou can also detach the *Remove Duplicates* node from the ongoing nodes and set the limit of the *Get All Videos* node to *Return all*. This way, everything that has already been uploaded will not be returned in the future. To undo this, you can select *Clear Database* in the *Remove Duplicates* node.\n"
},
"typeVersion": 1
},
{
"id": "4c5667cf-f8a9-45ab-876b-3a6b5730484c",
"name": "2.5FlashPrev",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
2220,
0
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-flash-preview-04-17"
},
"credentials": {
"googlePalmApi": {
"id": "clmB8ZYJMHaHmnsu",
"name": "Stardawn#1"
}
},
"typeVersion": 1
},
{
"id": "7c73cc89-ea8e-42b3-a1c9-2dc493026216",
"name": "YT 태그",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2220,
-120
],
"parameters": {
"text": "=Nun folgt das eigentliche Thema/Transkript. Gib mir die Youtube Tags dafür:\n\n{{ $('Adjust Transcript Format').item.json.transcript }}",
"options": {
"systemMessage": "You will get the transcript of a Youtube video for which you should generate matching tags (YOU NEED TO separate it by comma).\n\nBased on the topic/transcript of the video generate YouTube tags. These tags should be very general about the topics. Give multiple matching YouTube Tags that improve SEO for the video. \n\nExample:\nif the video is about why gold is a good investment you will for example not use gold investments as a tag but rather just gold \n\nThe tags (if appropriate) should be in German as the channel content is in German.\n\nReturn just the tags one word by one separated via Comma. \n\n\nDieses Video handelt vom zukünftigen Goldpreis und davon, wie er die Renditen von performanten Vermögenswerten wie Aktien und Anleihen in ihrer angepassten Rendite beeinflusst.\n\nErwartetet output:\nGoldpreis, zukünftiger Goldpreis, Goldinvestitionen, Vermögensrenditen, Aktien und Anleihen, Investitionsrenditen, angepasste Rendite, Goldmarkt, Finanzmärkte, Goldpreisprognose, Wirtschaftstrends, Investieren in Gold, Aktienmarktanalyse, Anleihenmarkt, Anlagestrategien, Inflation und Gold, Gold vs. Aktien, Finanzanalyse, Edelmetalle, Portfoliomanagement, Marktausblick, Investmenttipps\n "
},
"promptType": "define"
},
"typeVersion": 1.9
},
{
"id": "e8782ac7-ca31-4a5f-a9f1-62548f56407d",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2340,
-140
],
"parameters": {
"color": 4,
"width": 2000,
"height": 660,
"content": "# 📅Scheduling Logic⏰\n\n"
},
"typeVersion": 1
},
{
"id": "33d289eb-c989-4c8d-b387-405f31ba11d6",
"name": "3s",
"type": "n8n-nodes-base.wait",
"position": [
2920,
140
],
"webhookId": "1e75fe1f-e553-4530-a8bc-5e64208a1184",
"parameters": {
"amount": 3
},
"typeVersion": 1.1
},
{
"id": "19337563-a349-485d-a064-32f58c8fde90",
"name": "제목 가져오기",
"type": "n8n-nodes-base.youTube",
"position": [
-780,
200
],
"parameters": {
"options": {},
"videoId": "={{ $json.videoId }}",
"resource": "video",
"operation": "get"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
},
{
"id": "da93ff18-8d19-45ab-b268-dbbebcb86719",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-140
],
"parameters": {
"color": 5,
"width": 180,
"content": "## Code only returns the videos that are not listed"
},
"typeVersion": 1
},
{
"id": "71e9606c-4b6e-4b49-b3ec-bd9bd261f7a9",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-600,
-80
],
"parameters": {
"color": 3,
"width": 220,
"height": 260,
"content": "## Video needs to be set to private TOGETHER with the PublishAt parameter in order for it to work."
},
"typeVersion": 1
},
{
"id": "c5a240aa-b705-4219-b293-da4ae0168350",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1320,
-140
],
"parameters": {
"color": 3,
"width": 280,
"height": 240,
"content": "### Video needs to be Unlisted or Published in order for the scraper to be able to get the transcript\n\n### ADJUST YOUR APIFY API TOKEN HERE \n# 👇🏻"
},
"typeVersion": 1
},
{
"id": "5fb12ed7-8992-424d-86e0-7c8cd0f0b9d3",
"name": "스티키 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-140
],
"parameters": {
"color": 4,
"width": 3200,
"height": 660,
"content": "# Generate Description, Tags, etc. 🖌️📝 #️⃣"
},
"typeVersion": 1
},
{
"id": "33b865ef-ec2e-4349-bbba-d76d41345fe3",
"name": "게시 날짜 설정",
"type": "n8n-nodes-base.youTube",
"position": [
-600,
280
],
"parameters": {
"title": "={{ $json.snippet.title }}",
"videoId": "={{ $json.id }}",
"resource": "video",
"operation": "update",
"categoryId": "25",
"regionCode": "DE",
"updateFields": {
"publishAt": "={{ $('Loop over All Videos not Published').item.json.publishAt }}",
"privacyStatus": "private"
}
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
},
{
"id": "9a228886-c91a-44f7-b894-e23095166efc",
"name": "매일",
"type": "n8n-nodes-base.scheduleTrigger",
"disabled": true,
"position": [
-2260,
60
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 14,
"triggerAtMinute": 22
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c0277051-f146-43f7-a2cd-36739d933209",
"name": "재조정할 비디오 가져오기",
"type": "n8n-nodes-base.youTube",
"position": [
-1880,
40
],
"parameters": {
"limit": 2,
"filters": {},
"options": {
"order": "date"
},
"resource": "video"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
},
{
"id": "5cf3813b-931b-4c0a-84fe-4edd3d55a99a",
"name": "비디오 ID 분리",
"type": "n8n-nodes-base.code",
"position": [
-1660,
40
],
"parameters": {
"jsCode": "// Extract video IDs from YouTube search results\n// This function processes all input items and creates separate items for each videoId\n\n// Initialize empty array for our result items\nconst resultItems = [];\n\n// Process each input item\nfor (const item of items) {\n // Check if the item has a valid structure\n if (item.json && item.json.id && item.json.id.videoId) {\n // Create a new item for each videoId\n resultItems.push({\n json: {\n videoId: item.json.id.videoId\n }\n });\n }\n}\n\n// Return each videoId as a separate item that can be processed individually\nreturn resultItems;"
},
"typeVersion": 2
},
{
"id": "8131b388-b842-4c46-b82b-e53283d938ed",
"name": "비디오 ID 루프",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1440,
40
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "665cb406-f6b9-4ba4-82fa-daa1141eb0a3",
"name": "비디오 데이터 가져오기",
"type": "n8n-nodes-base.youTube",
"position": [
-1220,
60
],
"parameters": {
"options": {},
"videoId": "={{ $json.videoId }}",
"resource": "video",
"operation": "get"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
},
{
"id": "3d366fb3-f579-46f0-9254-8d4c1612038e",
"name": "비공개 비디오 반환",
"type": "n8n-nodes-base.code",
"position": [
-1220,
-120
],
"parameters": {
"jsCode": "// Utility function to get next Friday at 17:00 UTC in YouTube ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ)\nfunction getNextFridayUTC(startDate, weekOffset = 0) {\n const date = new Date(startDate); // Work with a copy\n \n const currentUTCDay = date.getUTCDay(); // 0 for Sunday, ..., 5 for Friday\n const daysUntilFriday = (5 - currentUTCDay + 7) % 7; // Calculate days to next Friday\n \n date.setUTCDate(date.getUTCDate() + daysUntilFriday + (weekOffset * 7));\n date.setUTCHours(17, 0, 0, 0); // Set time to 17:00:00.000 UTC\n \n // toISOString() returns \"YYYY-MM-DDTHH:mm:ss.sssZ\"\n // We split at '.' to remove milliseconds and add 'Z' back for \"YYYY-MM-DDTHH:mm:ssZ\"\n return date.toISOString().split('.')[0] + \"Z\";\n}\n\n// INPUT `items` is an array from n8n.\n// Each item.json is expected to be a YouTube video object from a previous node.\nconst videosToSchedule = items.filter(item => \n item.json && \n item.json.status && \n (item.json.status.privacyStatus === \"unlisted\" || item.json.status.privacyStatus === \"private\")\n // Adjust this filter if you only want to process \"unlisted\" or only \"private\" videos\n);\n\nif (videosToSchedule.length === 0) {\n // console.log(\"No videos found matching the filter criteria.\");\n return []; // Return empty array if no videos to schedule\n}\n\n// Sort videos by their original published/uploaded date (snippet.publishedAt), earliest first.\nvideosToSchedule.sort((a, b) => {\n const dateA = new Date(a.json?.snippet?.publishedAt || '1970-01-01T00:00:00Z');\n const dateB = new Date(b.json?.snippet?.publishedAt || '1970-01-01T00:00:00Z');\n return dateA - dateB;\n});\n\nconst now = new Date(); // Current date to calculate future Fridays\n\n// Map the filtered and sorted videos to the desired output structure for the YouTube update node.\nconst scheduledItems = videosToSchedule.map((item, index) => {\n const videoData = item.json; // The actual video data object\n const scheduleDate = getNextFridayUTC(now, index); // Calculate the publishAt date\n \n return {\n json: { // This is the structure the next n8n YouTube node will receive\n videoId: videoData.id, // ID of the video to update\n publishAt: scheduleDate, // The calculated schedule time: YYYY-MM-DDTHH:mm:ssZ\n title: videoData.snippet?.title || \"Untitled Video\", // Keep original title or use a default\n \n // --- CRITICAL PARAMETERS FOR THE YOUTUBE API ---\n privacy: \"private\", // **MUST BE 'private' FOR 'publishAt' TO WORK!**\n // The API requires the video to be set to private when scheduling.\n \n // **VERY LIKELY REQUIRED: selfDeclaredMadeForKids**\n // You MUST tell YouTube if the video is made for kids or not.\n // Get it from existing data if available, otherwise set a default.\n selfDeclaredMadeForKids: videoData.status?.selfDeclaredMadeForKids === true ? true : false,\n\n // **POSSIBLY REQUIRED: categoryId (if updating snippet like title)**\n // categoryId: videoData.snippet?.categoryId || \"YOUR_DEFAULT_CATEGORY_ID\", \n // e.g., \"10\" for Music, \"22\" for People & Blogs.\n // Check YouTube API docs for category IDs.\n \n // (Optional) You can include other fields like description if you want to update them\n // description: videoData.snippet?.description || \"\" \n }\n };\n});\n\nreturn scheduledItems; // Return the array of video objects to be processed"
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "bb3e90ae-ff3f-4c22-b920-d1a99a1f99e8",
"name": "4s",
"type": "n8n-nodes-base.wait",
"position": [
-260,
240
],
"webhookId": "7d5c70f8-a592-4634-8c5a-0fbd0cebf6a4",
"parameters": {
"amount": 4
},
"typeVersion": 1.1
},
{
"id": "f67c7668-71eb-42e6-b385-f66f9e5e80eb",
"name": "게시되지 않은 모든 비디오 루프",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1020,
60
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "f98b1399-7970-4585-8f2a-be897562fa40",
"name": "비디오 ID 가져오기",
"type": "n8n-nodes-base.set",
"position": [
380,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c2e2eecd-ca73-40c9-a364-4713030ab451",
"name": "id.videoId",
"type": "string",
"value": "={{ $json.id.videoId }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "6b907512-945b-4c1e-8a97-b14409ddfcaa",
"name": "이전 실행에서 중복 제거",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
600,
80
],
"parameters": {
"options": {},
"operation": "removeItemsSeenInPreviousExecutions",
"dedupeValue": "={{ $json.id.videoId }}"
},
"typeVersion": 2,
"alwaysOutputData": false
},
{
"id": "d6c7152e-e508-43c3-8748-ba12652ac117",
"name": "새 비디오?",
"type": "n8n-nodes-base.if",
"position": [
820,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "adfea7c7-ed64-4e1e-a9c3-dc5e33aa1147",
"operator": {
"type": "array",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{$('Remove Duplicates from previous Runs').all() }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d1c31718-4a26-4108-a618-f67cfb87053c",
"name": "최신 비디오 ID 가져오기",
"type": "n8n-nodes-base.youTube",
"position": [
1000,
160
],
"parameters": {
"options": {},
"videoId": "={{ $('get video id').item.json.id.videoId }}",
"resource": "video",
"operation": "get"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "66814975-e4a5-4c23-9bf2-c8d30d96c122",
"name": "자막 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
1320,
120
],
"parameters": {
"url": "=https://api.apify.com/v2/acts/pintostudio~youtube-transcript-scraper/run-sync-get-dataset-items",
"method": "POST",
"options": {},
"jsonBody": "={\n \"videoUrl\": \"https://www.youtube.com/watch?v={{ $json.id }}\"\n}",
"sendBody": true,
"sendQuery": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "token",
"value": "YOURAPITOKEN"
}
]
}
},
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "fd355571-8c74-4d31-972e-13f737aaec05",
"name": "자막 형식 조정",
"type": "n8n-nodes-base.code",
"position": [
1600,
120
],
"parameters": {
"jsCode": "const items = $input.all();\n\nconst transcriptStrings = items.flatMap(item => {\n const dataArray = item.json.data;\n\n if (!dataArray || !Array.isArray(dataArray)) {\n return [];\n }\n\n const segmentTexts = dataArray.map(segment => {\n if (segment && typeof segment.text === 'string') {\n return segment.text;\n } else {\n return '';\n }\n });\n\n return segmentTexts;\n});\n\nconst transcript = transcriptStrings.join(' ');\n\nreturn [\n {\n json: {\n transcript: transcript,\n },\n },\n];"
},
"typeVersion": 2
},
{
"id": "7b69339f-aa12-430e-ba21-b85a0db596b5",
"name": "비디오 메타데이터 업데이트",
"type": "n8n-nodes-base.youTube",
"position": [
2660,
140
],
"parameters": {
"title": "={{ $('Fetch Latest Videos').first().json.snippet.title }}",
"videoId": "={{ $('getLatestVideoID').first().json.id }}",
"resource": "video",
"operation": "update",
"categoryId": "25",
"regionCode": "DE",
"updateFields": {
"tags": "={{ $('YT Tags').first().json.message.content }}",
"description": "={{ $('Create Description').first().json.message.content }}\n\nDiese textbasierte Zusammenfassung des Videos wurde automatisch mit dem KI-Modell gpt-4.1-nano erstellt.]\n"
}
},
"credentials": {
"youTubeOAuth2Api": {
"id": "cpgVAMXp8iMLXwKW",
"name": "Private Pres"
}
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "RhPW7iLQQJGJZqQQ",
"executionOrder": "v1"
},
"versionId": "268a8dc5-0408-458c-9dff-d7c91b223b76",
"connections": {
"33d289eb-c989-4c8d-b387-405f31ba11d6": {
"main": [
[
{
"node": "e8857adf-63ec-4612-aa49-cd77130a6728",
"type": "main",
"index": 0
}
]
]
},
"bb3e90ae-ff3f-4c22-b920-d1a99a1f99e8": {
"main": [
[
{
"node": "2001b9ca-f76b-437e-90a9-16c0d17accef",
"type": "main",
"index": 0
}
]
]
},
"7c73cc89-ea8e-42b3-a1c9-2dc493026216": {
"main": [
[
{
"node": "7b69339f-aa12-430e-ba21-b85a0db596b5",
"type": "main",
"index": 0
}
]
]
},
"1a8cf640-caf4-4163-a658-400714702314": {
"main": [
[]
]
},
"19337563-a349-485d-a064-32f58c8fde90": {
"main": [
[
{
"node": "33b865ef-ec2e-4349-bbba-d76d41345fe3",
"type": "main",
"index": 0
}
]
]
},
"9a228886-c91a-44f7-b894-e23095166efc": {
"main": [
[
{
"node": "c0277051-f146-43f7-a2cd-36739d933209",
"type": "main",
"index": 0
}
]
]
},
"d6c7152e-e508-43c3-8748-ba12652ac117": {
"main": [
[],
[
{
"node": "d1c31718-4a26-4108-a618-f67cfb87053c",
"type": "main",
"index": 0
}
]
]
},
"4c5667cf-f8a9-45ab-876b-3a6b5730484c": {
"ai_languageModel": [
[
{
"node": "7c73cc89-ea8e-42b3-a1c9-2dc493026216",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"f98b1399-7970-4585-8f2a-be897562fa40": {
"main": [
[
{
"node": "6b907512-945b-4c1e-8a97-b14409ddfcaa",
"type": "main",
"index": 0
}
]
]
},
"66814975-e4a5-4c23-9bf2-c8d30d96c122": {
"main": [
[
{
"node": "fd355571-8c74-4d31-972e-13f737aaec05",
"type": "main",
"index": 0
}
]
]
},
"665cb406-f6b9-4ba4-82fa-daa1141eb0a3": {
"main": [
[
{
"node": "8131b388-b842-4c46-b82b-e53283d938ed",
"type": "main",
"index": 0
}
]
]
},
"e8857adf-63ec-4612-aa49-cd77130a6728": {
"main": [
[],
[
{
"node": "f98b1399-7970-4585-8f2a-be897562fa40",
"type": "main",
"index": 0
}
]
]
},
"33b865ef-ec2e-4349-bbba-d76d41345fe3": {
"main": [
[
{
"node": "f67c7668-71eb-42e6-b385-f66f9e5e80eb",
"type": "main",
"index": 0
}
]
]
},
"d1c31718-4a26-4108-a618-f67cfb87053c": {
"main": [
[
{
"node": "66814975-e4a5-4c23-9bf2-c8d30d96c122",
"type": "main",
"index": 0
}
]
]
},
"ec6e5d83-d8c8-417e-8df0-86634feef3e6": {
"main": [
[
{
"node": "7c73cc89-ea8e-42b3-a1c9-2dc493026216",
"type": "main",
"index": 0
},
{
"node": "1a8cf640-caf4-4163-a658-400714702314",
"type": "main",
"index": 0
}
]
]
},
"2001b9ca-f76b-437e-90a9-16c0d17accef": {
"main": [
[
{
"node": "e8857adf-63ec-4612-aa49-cd77130a6728",
"type": "main",
"index": 0
}
]
]
},
"8131b388-b842-4c46-b82b-e53283d938ed": {
"main": [
[
{
"node": "3d366fb3-f579-46f0-9254-8d4c1612038e",
"type": "main",
"index": 0
}
],
[
{
"node": "665cb406-f6b9-4ba4-82fa-daa1141eb0a3",
"type": "main",
"index": 0
}
]
]
},
"3d366fb3-f579-46f0-9254-8d4c1612038e": {
"main": [
[
{
"node": "f67c7668-71eb-42e6-b385-f66f9e5e80eb",
"type": "main",
"index": 0
}
]
]
},
"5cf3813b-931b-4c0a-84fe-4edd3d55a99a": {
"main": [
[
{
"node": "8131b388-b842-4c46-b82b-e53283d938ed",
"type": "main",
"index": 0
}
]
]
},
"7b69339f-aa12-430e-ba21-b85a0db596b5": {
"main": [
[
{
"node": "33d289eb-c989-4c8d-b387-405f31ba11d6",
"type": "main",
"index": 0
}
]
]
},
"fd355571-8c74-4d31-972e-13f737aaec05": {
"main": [
[
{
"node": "ec6e5d83-d8c8-417e-8df0-86634feef3e6",
"type": "main",
"index": 0
}
]
]
},
"c0277051-f146-43f7-a2cd-36739d933209": {
"main": [
[
{
"node": "5cf3813b-931b-4c0a-84fe-4edd3d55a99a",
"type": "main",
"index": 0
}
]
]
},
"f59d950b-4e29-4a41-8756-85ea7814b3d3": {
"main": [
[
{
"node": "c0277051-f146-43f7-a2cd-36739d933209",
"type": "main",
"index": 0
}
]
]
},
"f67c7668-71eb-42e6-b385-f66f9e5e80eb": {
"main": [
[
{
"node": "bb3e90ae-ff3f-4c22-b920-d1a99a1f99e8",
"type": "main",
"index": 0
}
],
[
{
"node": "19337563-a349-485d-a064-32f58c8fde90",
"type": "main",
"index": 0
}
]
]
},
"6b907512-945b-4c1e-8a97-b14409ddfcaa": {
"main": [
[
{
"node": "d6c7152e-e508-43c3-8748-ba12652ac117",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 인공지능, 마케팅
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
GPT-4o, WordPress, LinkedIn을 사용한 RSS 콘텐츠 자동 블로그 게시
GPT-4o, WordPress 및 LinkedIn을 사용한 RSS 콘텐츠 블로그 게시물 자동 발행
If
Set
Code
+
If
Set
Code
40 노드Immanuel
인공지능
WordPress 콘텐츠 생성기 v3
WordPress 내용 생성기 v3
If
Set
Code
+
If
Set
Code
102 노드Alex Kim
인공지능
AI, ElevenLabs, 다중 플랫폼을 사용하여 POV 비디오를 생성하고 승인
AI, ElevenLabs, 및 다중 플랫폼에서 POV 비디오를 생성하고 승인하기 (TikTok/IG/YT)
If
Set
Code
+
If
Set
Code
60 노드Immanuel
디자인
YouTube RSS를 Slack 요약으로
Google Sheets, RapidAPI, GPT-4o-mini를 사용하여 새 YouTube 비디오 요약을 Slack으로 전송
If
Set
Xml
+
If
Set
Xml
40 노드Naveen Choudhary
인공지능
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업