Submagic + publication automatique
Ceci est unMultimodal AIworkflow d'automatisation du domainecontenant 21 nœuds.Utilise principalement des nœuds comme If, Code, Wait, HttpRequest, GoogleSheets. Utiliser Submagic, Postiz et OpenAI pour ajouter automatiquement des légendes aux vidéos et les publier sur Instagram et TikTok
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Informations d'identification Google Drive API
- •Clé API OpenAI
Catégorie
{
"id": "6LCQ1CdkcxmGPWYs",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Submagic + Autopost",
"tags": [],
"nodes": [
{
"id": "0a25a595-fde8-41b1-b748-4aaa76dfa3c7",
"name": "Google Drive Trigger",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-16,
0
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "<<<GOOGLE_DRIVE_FOLDER_ID>>>",
"cachedResultUrl": "<<<GOOGLE_DRIVE_FOLDER_URL>>>",
"cachedResultName": "<<<GOOGLE_DRIVE_FOLDER_NAME>>>"
}
},
"typeVersion": 1
},
{
"id": "603fe943-e36c-44f0-82fc-0d419e2571f8",
"name": "Publier vers Submagic",
"type": "n8n-nodes-base.httpRequest",
"position": [
240,
0
],
"parameters": {
"url": "https://api.submagic.co/v1/projects",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "My First Video"
},
{
"name": "language",
"value": "en"
},
{
"name": "videoUrl",
"value": "={{ $json.webViewLink }}"
},
{
"name": "templateName",
"value": "Hormozi 2"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "713c3d1c-b739-4298-b3ac-29bd76dde2a9",
"name": "Récupérer la vidéo sous-titrée depuis Submagic",
"type": "n8n-nodes-base.httpRequest",
"position": [
672,
0
],
"parameters": {
"url": "=https://api.submagic.co/v1/projects/{{ $json.id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "5744f643-fb29-4975-85c3-77d85ea6a35e",
"name": "Télécharger la vidéo sous-titrée",
"type": "n8n-nodes-base.httpRequest",
"position": [
1136,
0
],
"parameters": {
"url": "={{ $json.downloadUrl }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "14e5ea48-6b99-4742-a520-fac3335dcdf6",
"name": "Téléverser vers Postiz",
"type": "n8n-nodes-base.httpRequest",
"position": [
1376,
0
],
"parameters": {
"url": "https://api.postiz.com/public/v1/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "57225264-85f2-4c4c-82f7-9a63022d6d94",
"name": "Publier vers Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
2480,
0
],
"parameters": {
"url": "https://api.postiz.com/public/v1/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"type\": \"now\",\n \"shortLink\": false,\n \"date\": \"{{ new Date($now).toISOString() }}\",\n \"tags\": [],\n \"posts\": [\n {\n \"integration\": { \"id\": \"cmeku38qa00cpo90yfw4ai6lt\" },\n \"value\": [\n {\n \"content\": \"{{ $json.output }}\",\n \"image\": [\n {\n \"id\": \"{{ $node['Upload to Postiz'].json.id }}\",\n \"path\": \"{{ $node['Upload to Postiz'].json.path }}\"\n }\n ]\n }\n ],\n \"settings\": {\n \"post_type\": \"post\"\n }\n }\n ]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "814fb8ae-7536-4da9-9217-88e00cb0749c",
"name": "Mettre à jour le journal",
"type": "n8n-nodes-base.googleSheets",
"position": [
1568,
0
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Video Description / Prompt",
"type": "string",
"display": true,
"required": false,
"displayName": "Video Description / Prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Video URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Video URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Caption",
"type": "string",
"display": true,
"required": false,
"displayName": "Caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "<<<SHEET_ID>>>",
"cachedResultUrl": "<<<GOOGLE_SHEET_URL>>>",
"cachedResultName": "<<<SHEET_NAME>>>"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "<<<GOOGLE_SHEET_ID>>>",
"cachedResultUrl": "<<<GOOGLE_SHEET_URL>>>",
"cachedResultName": "<<<SHEET_NAME>>>"
}
},
"typeVersion": 4.7
},
{
"id": "00c8896b-6b79-43fc-b541-13c097ddb72f",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2064,
224
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5",
"cachedResultName": "gpt-5"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "30f23841-c8ae-476c-881e-61a05d848e0f",
"name": "Agent de sous-titrage",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2144,
0
],
"parameters": {
"text": "={{ $json['Image Prompt'] }}",
"options": {
"systemMessage": "You are an expert Instagram caption writer.\nYour task is to take the image prompt provided by the user and generate a short, engaging caption that encourages parents and children to try Larrydoodle — a free online doodle drawing creator for kids. With Larrydoodle, children can design custom coloring pages, print them out, and start coloring instantly.\n\nCaption Guidelines\nKeep captions short, playful, and engaging for parents and kids.\nEmphasize the fun, creativity, and ease of using Larrydoodle.\nRotate the call-to-action (CTA) across posts, using one of these variations:\nCreate your own custom coloring pages for free today at larrydoodle.com\nTry it free and start creating now\nComment below what you created and share your creations with us by tagging #larrydoodle or tagging us in your Instagram Stories (make it lively and inviting)\n\nTone: friendly, imaginative, and encouraging.\n\nOutput Rules\nDo not use special characters like {} ! %$&*\nReturn only one final caption per request.\nDo not include explanations or formatting outside of the caption itself."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "45b0d6d7-a4e2-4bb4-ba0c-47a44437ca64",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
1968,
0
],
"parameters": {
"jsCode": "// inputData contains all rows from the previous node\nreturn [items[items.length - 1]];"
},
"typeVersion": 2
},
{
"id": "b8abfe9e-c12c-4571-8d84-590c1f73c87f",
"name": "Obtenir la/les ligne(s) dans la feuille",
"type": "n8n-nodes-base.googleSheets",
"position": [
1760,
0
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "<<<SHEET_ID>>>",
"cachedResultUrl": "<<<GOOGLE_SHEET_URL>>>",
"cachedResultName": "<<<SHEET_NAME>>>"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "<<<GOOGLE_SHEET_ID>>>",
"cachedResultUrl": "<<<GOOGLE_SHEET_URL>>>",
"cachedResultName": "<<<SHEET_NAME>>>"
}
},
"typeVersion": 4.7
},
{
"id": "b361b439-9d7f-45fe-8354-e31be2ba001e",
"name": "Si",
"type": "n8n-nodes-base.if",
"position": [
880,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "df5cad6d-dcb6-4f43-b8f6-4a5e97950c46",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "completed"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "1204ab08-7196-45a1-a235-0bab382627cf",
"name": "Attendre 15 secondes",
"type": "n8n-nodes-base.wait",
"position": [
864,
224
],
"parameters": {
"amount": 15
},
"typeVersion": 1.1
},
{
"id": "4dde6f5a-ebed-4285-a5ba-eb378ec68293",
"name": "Attendre 15 secondes1",
"type": "n8n-nodes-base.wait",
"position": [
464,
0
],
"parameters": {
"amount": 15
},
"typeVersion": 1.1
},
{
"id": "f51a5eb7-771f-4cc1-b046-7e208d8a6213",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-112,
-272
],
"parameters": {
"color": 5,
"width": 256,
"height": 800,
"content": "Google Drive Trigger"
},
"typeVersion": 1
},
{
"id": "57355d6c-4880-43ae-be0d-12728e64eb96",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-272
],
"parameters": {
"color": 7,
"width": 256,
"height": 800,
"content": "Post to Submagic"
},
"typeVersion": 1
},
{
"id": "c7de4f8e-7fb8-4d60-933d-1e7ae596d47b",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
-272
],
"parameters": {
"color": 3,
"width": 656,
"height": 800,
"content": "Caption with Submagic"
},
"typeVersion": 1
},
{
"id": "fcde94bd-9a82-41a4-8e04-b136aec57293",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
-272
],
"parameters": {
"color": 4,
"width": 608,
"height": 800,
"content": "Upload to Postiz"
},
"typeVersion": 1
},
{
"id": "1366f8ab-0f70-418f-baee-228c764a198c",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1728,
-272
],
"parameters": {
"color": 5,
"width": 688,
"height": 800,
"content": "Caption for IG"
},
"typeVersion": 1
},
{
"id": "10f05958-6526-4c41-9e1a-428d1841081f",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2432,
-272
],
"parameters": {
"color": 2,
"width": 320,
"height": 800,
"content": "Post to IG"
},
"typeVersion": 1
},
{
"id": "cc4a6414-b84e-40c9-8675-2f19a0dad2ab",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-864,
-400
],
"parameters": {
"width": 672,
"height": 992,
"content": "🎥 Auto-Caption & Autopost Videos to Instagram & TikTok\n\nDescription\nAutomate your short-form content pipeline! This workflow takes any video uploaded to a specific Google Drive folder, generates engaging captions with Submagic, and then auto-posts the finished video (with AI-generated captions) directly to Instagram or TikTok via Postiz. Captions are further refined with OpenAI for brand-ready social text. Finally, each published video is logged into a Google Sheet for tracking.\n\n👉 Watch step-by-step build of this workflow on: www.youtube.com/@automatewithmarc\n\nHow It Works\n\nGoogle Drive Trigger – Detects new video uploads.\n\nSubmagic API – Adds styled captions automatically.\n\nWait + Poll – Monitors job status until the captioned video is ready.\n\nDownload Video – Retrieves the finished captioned video.\n\nUpload to Postiz – Sends the file to Postiz for multi-platform posting.\n\nCaption Agent (OpenAI) – Generates optimized Instagram/TikTok captions.\n\nPost to Instagram/TikTok – Publishes the video with caption.\n\nUpdate Log – Saves video details, captions, and status into Google Sheets.\n\nWhy You’ll Love It\n\n⚡ Hands-off publishing — videos go from raw to posted automatically.\n\n📝 AI captions + Submagic styling — engaging text and visual consistency.\n\n📊 Content tracking — every post logged in Google Sheets.\n\n🎯 Perfect for Reels & TikToks — optimized for fast workflows and social reach.\n\nRequirements\n\nGoogle Drive account\n\nSubmagic API key\n\nPostiz account (for IG/TikTok posting)\n\nOpenAI API key (for caption generation)\n\nGoogle Sheets account"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"connections": {
"b361b439-9d7f-45fe-8354-e31be2ba001e": {
"main": [
[
{
"node": "5744f643-fb29-4975-85c3-77d85ea6a35e",
"type": "main",
"index": 0
}
],
[
{
"node": "1204ab08-7196-45a1-a235-0bab382627cf",
"type": "main",
"index": 0
}
]
]
},
"45b0d6d7-a4e2-4bb4-ba0c-47a44437ca64": {
"main": [
[
{
"node": "30f23841-c8ae-476c-881e-61a05d848e0f",
"type": "main",
"index": 0
}
]
]
},
"814fb8ae-7536-4da9-9217-88e00cb0749c": {
"main": [
[
{
"node": "b8abfe9e-c12c-4571-8d84-590c1f73c87f",
"type": "main",
"index": 0
}
]
]
},
"1204ab08-7196-45a1-a235-0bab382627cf": {
"main": [
[
{
"node": "713c3d1c-b739-4298-b3ac-29bd76dde2a9",
"type": "main",
"index": 0
}
]
]
},
"30f23841-c8ae-476c-881e-61a05d848e0f": {
"main": [
[
{
"node": "57225264-85f2-4c4c-82f7-9a63022d6d94",
"type": "main",
"index": 0
}
]
]
},
"4dde6f5a-ebed-4285-a5ba-eb378ec68293": {
"main": [
[
{
"node": "713c3d1c-b739-4298-b3ac-29bd76dde2a9",
"type": "main",
"index": 0
}
]
]
},
"603fe943-e36c-44f0-82fc-0d419e2571f8": {
"main": [
[
{
"node": "4dde6f5a-ebed-4285-a5ba-eb378ec68293",
"type": "main",
"index": 0
}
]
]
},
"14e5ea48-6b99-4742-a520-fac3335dcdf6": {
"main": [
[
{
"node": "814fb8ae-7536-4da9-9217-88e00cb0749c",
"type": "main",
"index": 0
}
]
]
},
"00c8896b-6b79-43fc-b541-13c097ddb72f": {
"ai_languageModel": [
[
{
"node": "30f23841-c8ae-476c-881e-61a05d848e0f",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b8abfe9e-c12c-4571-8d84-590c1f73c87f": {
"main": [
[
{
"node": "45b0d6d7-a4e2-4bb4-ba0c-47a44437ca64",
"type": "main",
"index": 0
}
]
]
},
"0a25a595-fde8-41b1-b748-4aaa76dfa3c7": {
"main": [
[
{
"node": "603fe943-e36c-44f0-82fc-0d419e2571f8",
"type": "main",
"index": 0
}
]
]
},
"5744f643-fb29-4975-85c3-77d85ea6a35e": {
"main": [
[
{
"node": "14e5ea48-6b99-4742-a520-fac3335dcdf6",
"type": "main",
"index": 0
}
]
]
},
"713c3d1c-b739-4298-b3ac-29bd76dde2a9": {
"main": [
[
{
"node": "b361b439-9d7f-45fe-8354-e31be2ba001e",
"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é - 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
Automate With Marc
@marconiAutomating Start-Up and Business processes. Helping non-techies understand and leverage Agentic AI with easy to understand step-by-step tutorials. Check out my educational content: https://www.youtube.com/@Automatewithmarc
Partager ce workflow