Publication automatisée de vidéos YouTube depuis Drive, avec génération de métadonnées GPT et Gemini
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 23 nœuds.Utilise principalement des nœuds comme Code, Wait, YouTube, Telegram, GoogleDrive. Publication automatisée de vidéos YouTube depuis Drive, intégrant GPT et Gemini pour la génération de métadonnées
- •Token Bot Telegram
- •Informations d'identification Google Drive API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API OpenAI
- •Clé API Google Gemini
Nœuds utilisés (23)
Catégorie
{
"meta": {
"instanceId": "bb58de5a5031a6915d56b6838fb3b3b84efbdb51f48c823505ab47d6641ee185",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "d343874d-2389-40c9-ab46-47f02a7ea77d",
"name": "Télécharger nouvelle vidéo",
"type": "n8n-nodes-base.googleDrive",
"position": [
272,
-128
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('New Video?').item.json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "GxtbT8g7MSIFmjgF",
"name": "Google Drive account 2"
}
},
"typeVersion": 3
},
{
"id": "84c6f604-08f9-407c-9935-b4e8c9b03add",
"name": "Nouvelle vidéo ?",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-928,
-208
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1vAZ6zUlbqqaFv2_sPZXx_yeNQcjrfcvy",
"cachedResultUrl": "https://drive.google.com/drive/folders/1vAZ6zUlbqqaFv2_sPZXx_yeNQcjrfcvy",
"cachedResultName": "All Motivatioanl video"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "GxtbT8g7MSIFmjgF",
"name": "Google Drive account 2"
}
},
"typeVersion": 1
},
{
"id": "28445d38-79c3-4d7c-8aaa-9a30ee298bfe",
"name": "Créer description",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-624,
-224
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a professional copywriter.\nYou receive the transcript of an economics-related video.\n\nYour task is to write a detailed but concise summary (in paragraphs) about the content of the video. The output will be used as the YouTube video description.\n\n✍️ Writing Guidelines:\n\nStart with an engaging opening like:\n“In this video…” or “In this episode…”\n\nWrite entirely from my perspective, using phrases such as “in my opinion,” “in my view,” “I explain why,” or “I discuss how.”\n\nNever say phrases like “the speaker says,” “they mention,” or “in this episode, I learn.” Everything must sound like my own explanation.\n\nUse clear, assertive, and confident statements — avoid uncertain terms such as “might,” “could,” “possibly,” or “maybe.”\n\nInclude 2–4 relevant emojis to make the tone more dynamic and expressive.\n\nEnd with 2–5 broad, relevant hashtags (e.g., #economics #business #money #success #motivation).\n\n⚙️ Input:\n\nThe transcript will come from the uploaded video (added separately).\n\n🎯 Output:\n\nA polished, first-person YouTube description that summarizes the video’s key economic or motivational insights — confident, engaging, and ready to publish."
},
{
"content": "=Here is the Scence:{{ $json.originalFilename }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "FsX9JrZqhSEHtkmm",
"name": "OpenAi account"
}
},
"typeVersion": 1.7
},
{
"id": "b0cbd1ba-77ca-4874-bdfd-cd76c2a56892",
"name": "2.5FlashPrev",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-352,
-64
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"credentials": {
"googlePalmApi": {
"id": "xcpoBH67frp9oHY2",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "0b75f8c6-64a2-447e-bae4-05c5d4e8a0c3",
"name": "Tags YT",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-352,
-224
],
"parameters": {
"text": "=Now follows the actual topic/transcript. Give me the YouTube tags for it:\n{{ $json.message.content }}",
"options": {
"systemMessage": "You are a YouTube SEO and motivational content specialist.\nYour task is to generate only YouTube tags (no description, no hashtags) based on the given video topic or transcript.\n\n✍️ Guidelines:\n\nOutput only comma-separated tags — no extra text, no formatting.\n\nTags should combine motivation, mindset, life lessons, money, success, and economics themes depending on the input.\n\nFocus on high-performing, searchable keywords that match motivational and economic growth content.\n\nInclude a mix of broad and specific tags (e.g., motivation, mindset, personal growth, economics, success, wealth, discipline, resilience).\n\nKeep total tags around 20–30 per response.\n\n⚙️ Input:\n\nVideo topic or transcript (added separately).\n\n🎯 Output:\n\nOnly a clean list of YouTube tags, comma-separated — no hashtags, no extra commentary."
},
"promptType": "define"
},
"typeVersion": 1.9
},
{
"id": "2d1d7fb2-95e0-4190-a7fc-4947d097745a",
"name": "Titre YT",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-80,
-224
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a professional copywriter for SEO-optimized YouTube titles."
},
{
"content": "=Write me a suitable SEO YouTube title for the transcript of the following video transcript. Only the title, nothing else. Max 40 characters, so keep it short."
}
]
}
},
"credentials": {
"openAiApi": {
"id": "FsX9JrZqhSEHtkmm",
"name": "OpenAi account"
}
},
"typeVersion": 1.7
},
{
"id": "ddc63e6b-8cff-4949-b97a-747d481c2253",
"name": "Upload vers youtube",
"type": "n8n-nodes-base.youTube",
"position": [
-592,
224
],
"parameters": {
"title": "={{ $json.message.content }}",
"options": {
"description": "=🚀 Self-hosted n8n setup — 100% working like n8n.io cloud.\nHosted on your server, fully configured & ready to automate.\nVisit: Evalinfo.com\nWhatsApp: +923250754569 | +923321997882\n\n{{ $('Create Description').item.json.message.content }}\n\n\n#myreelgen #evalinfo #muhammadnouman #ai #aiagents #n8n #selfhostedn8n\n\n{{ $('YT Tags').item.json.output }}",
"privacyStatus": "public"
},
"resource": "video",
"operation": "upload",
"categoryId": "22",
"regionCode": "IN",
"binaryProperty": "=data"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "13qYzNIjCJpMx9GK",
"name": "Eval info"
}
},
"typeVersion": 1
},
{
"id": "e352184f-beb2-4e07-9eb3-d7aaafd83b6a",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
-368
],
"parameters": {
"color": 6,
"width": 352,
"height": 416,
"content": "## Get video from Drive Folder\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "ef946b76-9232-4d4e-b970-f8f24b38a336",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-368
],
"parameters": {
"color": 3,
"width": 816,
"height": 416,
"content": "## Generate Meta data \n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "59aa6d9e-9e07-414d-9159-676f365c9a8e",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-368
],
"parameters": {
"color": 3,
"width": 224,
"height": 416,
"content": "## Download Video \n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "5281a05f-2357-4881-a996-ac9d9dc17c19",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
64
],
"parameters": {
"color": 3,
"width": 816,
"height": 416,
"content": "## Upload Video\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "e631fb6d-a7a3-485f-a7b8-c535275cb9f7",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
64
],
"parameters": {
"color": 3,
"width": 224,
"height": 416,
"content": "## Delete Video \n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "5e6af056-bd53-4a85-a10f-c30416a039a0",
"name": "Note adhésive 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
64
],
"parameters": {
"color": 6,
"width": 352,
"height": 416,
"content": "## Send Notfication\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
},
"typeVersion": 1
},
{
"id": "5d150d6e-8d28-4503-9565-cd42fc08d4ed",
"name": "Supprimer vidéo du dossier d'upload",
"type": "n8n-nodes-base.googleDrive",
"position": [
256,
224
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('New Video?').item.json.id }}"
},
"options": {},
"operation": "deleteFile"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "GxtbT8g7MSIFmjgF",
"name": "Google Drive account 2"
}
},
"typeVersion": 3
},
{
"id": "3a7f4655-5fef-4209-93f8-e50fa3fecb44",
"name": "Envoyer SMS",
"type": "n8n-nodes-base.telegram",
"position": [
512,
224
],
"webhookId": "6544dd10-e8a9-47f2-8c98-5c0c3a839928",
"parameters": {
"text": "=🎬 Your video has been uploaded to YouTube channel **\"Eval Info\"!**\n\n• 🆔 Upload ID: {{ $('Upload to youtube').item.json.uploadId }}\n• 🗑️ Drive file deleted: {{ $json.success ? '✅ Yes' : '❌ No' }}\n• 🎯 Title: {{ $('YT Title').item.json.message.content }}\n",
"chatId": "6727168479",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "2cLY9VvUkHDGd3Yx",
"name": "uploaded to YT Evaal info"
}
},
"typeVersion": 1.2
},
{
"id": "223440f4-14e1-4d87-914e-a148ff75639f",
"name": "Publier sur Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
-608,
640
],
"parameters": {
"url": "https://graph.facebook.com/v19.0/<YOUR PAGE ID HERE>/media",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "image_url",
"value": "<YOUR IMAGE URL HERE>"
},
{
"name": "caption",
"value": "<YOUR CAPTION HERE>"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"typeVersion": 4.2
},
{
"id": "952eb838-7b36-4169-9c97-1660a4d7c139",
"name": "Publier post instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
-272,
640
],
"parameters": {
"url": "https://graph.facebook.com/v19.0/17841404935066235/media_publish",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $json.id }}"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"typeVersion": 4.2
},
{
"id": "6663b262-9207-4d34-8470-a60f9e783294",
"name": "Publier sur Facebook",
"type": "n8n-nodes-base.httpRequest",
"position": [
240,
640
],
"parameters": {
"url": "https://graph.facebook.com/v19.0/266271423823110/photos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "https://images.pexels.com/photos/5475816/pexels-photo-5475816.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=627&w=1200"
},
{
"name": "caption",
"value": "This is the caption for the post"
},
{
"name": "access_token",
"value": "={{ $json.data[0].access_token }}"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"typeVersion": 4.2
},
{
"id": "a94f3725-1eaf-4491-8958-d812f83fe35b",
"name": "Utiliser token système pour obtenir token page",
"type": "n8n-nodes-base.httpRequest",
"position": [
-96,
640
],
"parameters": {
"url": "https://graph.facebook.com/v19.0/me/accounts",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "facebookGraphApi"
},
"typeVersion": 4.2
},
{
"id": "22179199-f09d-4456-bf1c-45bb7a2531f3",
"name": "Obtenir token page correct",
"type": "n8n-nodes-base.code",
"position": [
64,
640
],
"parameters": {
"jsCode": "const page = $json.data.find(p => p.id === '266271423823110');\nreturn [{ json: { access_token: page.access_token } }];\n"
},
"typeVersion": 2
},
{
"id": "f3f681e0-cea6-48ce-9891-c7a4c62dcaee",
"name": "Pause 2 secondes",
"type": "n8n-nodes-base.wait",
"position": [
-448,
640
],
"webhookId": "c40b180e-016c-4648-898a-5942b8a9b00d",
"parameters": {
"amount": 2
},
"typeVersion": 1.1
},
{
"id": "7caacc2c-fcf6-4b39-ad05-81235611e68f",
"name": "Note adhésive 8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
496
],
"parameters": {
"color": 5,
"width": 1072,
"height": 360,
"content": "Using the permanant never expire token"
},
"typeVersion": 1
},
{
"id": "0541f012-b217-4854-9b11-f04636165f20",
"name": "Note adhésive 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
112
],
"parameters": {
"width": 680,
"height": 1220,
"content": " How to Create a Permanent System User Token (Recommended)\n\nThis token doesn’t expire and is best for automation use cases\n\n1. Verify Your Business\n\nGo to https://business.facebook.com/settings/info\n\nComplete business verification under Business Info tab\n\nSubmit your business documents and wait for approval (Sometimes you just have to submit an EIN/Tax-ID.\n\nApproval can take 1-5 Business days\n\nOnce Approved do the following.\n\n2. Create a System User\n\nIn Business Settings\n\nGo to System Users > Click Add\n\nAssign a name (e.g. n8n-bot) and select Admin access\n\n3. Assign Assets to System User\n\nIn the same System User view, assign:\n\nYour Facebook Page (with Full Control)\n\nYour Instagram Account (linked via Page)\n\nYour App\n\n4. Generate a Token\n\nClick Generate Token\n\nSelect your App\n\nSet expiration to Never\n\nGrant these permissions:\n\npages_show_list\n\npages_read_engagement\n\npages_manage_posts\n\ninstagram_basic\n\ninstagram_content_publish\n\n-If instagram_content_publish is not visible, you may need to request it via App Review under the App dashboard.\n\n5. Use This Token\n\nStore it in the Facebook Graph API\n\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"0b75f8c6-64a2-447e-bae4-05c5d4e8a0c3": {
"main": [
[
{
"node": "2d1d7fb2-95e0-4190-a7fc-4947d097745a",
"type": "main",
"index": 0
}
]
]
},
"2d1d7fb2-95e0-4190-a7fc-4947d097745a": {
"main": [
[
{
"node": "d343874d-2389-40c9-ab46-47f02a7ea77d",
"type": "main",
"index": 0
}
]
]
},
"84c6f604-08f9-407c-9935-b4e8c9b03add": {
"main": [
[
{
"node": "28445d38-79c3-4d7c-8aaa-9a30ee298bfe",
"type": "main",
"index": 0
}
]
]
},
"b0cbd1ba-77ca-4874-bdfd-cd76c2a56892": {
"ai_languageModel": [
[
{
"node": "0b75f8c6-64a2-447e-bae4-05c5d4e8a0c3",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"f3f681e0-cea6-48ce-9891-c7a4c62dcaee": {
"main": [
[
{
"node": "952eb838-7b36-4169-9c97-1660a4d7c139",
"type": "main",
"index": 0
}
]
]
},
"223440f4-14e1-4d87-914e-a148ff75639f": {
"main": [
[
{
"node": "f3f681e0-cea6-48ce-9891-c7a4c62dcaee",
"type": "main",
"index": 0
}
]
]
},
"ddc63e6b-8cff-4949-b97a-747d481c2253": {
"main": [
[
{
"node": "5d150d6e-8d28-4503-9565-cd42fc08d4ed",
"type": "main",
"index": 0
}
]
]
},
"28445d38-79c3-4d7c-8aaa-9a30ee298bfe": {
"main": [
[
{
"node": "0b75f8c6-64a2-447e-bae4-05c5d4e8a0c3",
"type": "main",
"index": 0
}
]
]
},
"d343874d-2389-40c9-ab46-47f02a7ea77d": {
"main": [
[
{
"node": "ddc63e6b-8cff-4949-b97a-747d481c2253",
"type": "main",
"index": 0
}
]
]
},
"3a7f4655-5fef-4209-93f8-e50fa3fecb44": {
"main": [
[]
]
},
"22179199-f09d-4456-bf1c-45bb7a2531f3": {
"main": [
[
{
"node": "6663b262-9207-4d34-8470-a60f9e783294",
"type": "main",
"index": 0
}
]
]
},
"952eb838-7b36-4169-9c97-1660a4d7c139": {
"main": [
[
{
"node": "a94f3725-1eaf-4491-8958-d812f83fe35b",
"type": "main",
"index": 0
}
]
]
},
"5d150d6e-8d28-4503-9565-cd42fc08d4ed": {
"main": [
[
{
"node": "3a7f4655-5fef-4209-93f8-e50fa3fecb44",
"type": "main",
"index": 0
}
]
]
},
"a94f3725-1eaf-4491-8958-d812f83fe35b": {
"main": [
[
{
"node": "22179199-f09d-4456-bf1c-45bb7a2531f3",
"type": "main",
"index": 0
}
]
]
}
}
}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é ?
Avancé - Création de contenu, IA Multimodale
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.
Workflows recommandés
Muhammad Nouman
@muhammadnoumanPartager ce workflow