Créateur automatisé de YouTube Shorts, intégrant yt-dlp et FFmpeg

Avancé

Ceci est unContent Creationworkflow d'automatisation du domainecontenant 31 nœuds.Utilise principalement des nœuds comme Set, Code, Limit, Aggregate, HttpRequest. Créateur automatisé de YouTube Shorts, intégrant yt-dlp et FFmpeg

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "f965aebfd140e9f9297998c9d86b807083533e05b14fd5fa88588eb7d468d3f0",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ac0f4816-72d3-4fb2-94bb-9999c3b1085b",
      "name": "Au clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -880,
        480
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "371f3ef5-358c-48ba-b11e-712c1514767a",
      "name": "ObtenirVidéoYT",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -656,
        480
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1195115445,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
          "cachedResultName": "Video Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "5d688a6e-bfed-472c-83f6-72199972d5e6",
      "name": "Limite_1",
      "type": "n8n-nodes-base.limit",
      "position": [
        -432,
        480
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "952af5ed-54d3-46d4-898b-f72c1dbf82ec",
      "name": "GénérerNomFichier",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1b8917a0-7b13-46f3-9b5a-59dbe9d33e38",
              "name": "=File Name",
              "type": "string",
              "value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
            },
            {
              "id": "3dd38945-c044-486b-9e0c-4a080b62a606",
              "name": "Folder Name",
              "type": "string",
              "value": "Video Footage"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f36527c6-014f-4cff-bdee-201c053bb1b7",
      "name": "TéléchargerSéquenceVidéo",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        16,
        480
      ],
      "parameters": {
        "command": "=yt-dlp -o \"./{{ $('GenrateFileName').item.json['Folder Name'] }}/{{ $('GenrateFileName').item.json['File Name'] }}.mp4\" \"{{ $('GetYTvideo').item.json['Video Path'] }}\" -f \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\""
      },
      "typeVersion": 1
    },
    {
      "id": "228c5416-3c28-4dae-a731-19c6f607e7e7",
      "name": "Mettre à jourInfosSéquence",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        480
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Success",
            "row_number": "={{ $('Limit_1').item.json.row_number }}",
            "Internal Path": "=./{{ $('GenrateFileName').item.json['Folder Name'] }}/{{ $('GenrateFileName').item.json['File Name'] }}.mp4"
          },
          "schema": [
            {
              "id": "Video Path",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Path",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Internal Path",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Internal Path",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1195115445,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
          "cachedResultName": "Video Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f37f7325-bb4c-40cf-aef1-d9a30ee281e3",
      "name": "ObtenirMusiqueYT",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -656,
        704
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 871997350,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
          "cachedResultName": "Music Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1fb675f8-238d-4309-8529-110be976894f",
      "name": "Limite_01",
      "type": "n8n-nodes-base.limit",
      "position": [
        -432,
        704
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a4c35406-7cf2-49f9-8020-c10aaf471eab",
      "name": "GénérerNomFichier_01",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        704
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1b8917a0-7b13-46f3-9b5a-59dbe9d33e38",
              "name": "=File Name",
              "type": "string",
              "value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
            },
            {
              "id": "3dd38945-c044-486b-9e0c-4a080b62a606",
              "name": "Folder Name",
              "type": "string",
              "value": "MusicFile"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c301bc03-25ce-48fb-b3a3-ca360b87cb9f",
      "name": "TéléchargerMusique",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        16,
        704
      ],
      "parameters": {
        "command": "=yt-dlp -x \\\n  --audio-format mp3 \\\n  --audio-quality 0 \\\n  --embed-thumbnail \\\n  -o\"./{{ $('GenrateFileName_01').item.json['Folder Name'] }}/{{ $('GenrateFileName_01').item.json['File Name'] }}.mp3\" \\\n  \"{{ $('GetYTmusic').item.json['Music Path'] }}\"\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5b81df46-443d-4f91-ab28-72d3a27b77e8",
      "name": "Mettre à jourInfosMusique",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        704
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Success",
            "row_number": "={{ $('GetYTmusic').item.json.row_number }}",
            "Internal Path": "=./{{ $('GenrateFileName_01').item.json['Folder Name'] }}/{{ $('GenrateFileName_01').item.json['File Name'] }}.mp3"
          },
          "schema": [
            {
              "id": "Music Path",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Music Path",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Internal Path",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Internal Path",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 871997350,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
          "cachedResultName": "Music Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a37bb3ce-5f60-4ae3-a9d9-3fbf503a0786",
      "name": "DéclencheurProgrammé",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -880,
        704
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3ecd2d56-7eeb-4891-ba83-5b357b5ff999",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        304
      ],
      "parameters": {
        "color": 4,
        "width": 1392,
        "height": 592,
        "content": "# YouTube Video & Music Downloader\n\n**Video Downloader** - Fetches YouTube video links from Google Sheets, downloads as MP4 with unique filenames, and updates sheet with paths  \n\n**Music Downloader** - Gets music links from Google Sheets, downloads as MP3 (HQ+thumbnail), and tracks paths in spreadsheet"
      },
      "typeVersion": 1
    },
    {
      "id": "498ffdbe-8a7b-4f89-b5b2-f21783008420",
      "name": "DéclencheurProgrammé1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1056,
        272
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 11,
              "triggerAtMinute": 51
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e78c802f-4982-4e29-97eb-05d59379fa71",
      "name": "ObtenirToutesVidéos",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1280,
        272
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "Success",
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1195115445,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
          "cachedResultName": "Video Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "aaf6e8b2-e568-41ac-a3d5-b4f413d41634",
      "name": "AgrégerVidéos",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1504,
        272
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "Internal Path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "735e9762-d509-46a3-9052-6f6aba176baf",
      "name": "ObtenirToutesMusiques",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1728,
        272
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "Success",
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 871997350,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
          "cachedResultName": "Music Pool"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f7332c1b-3b9f-4e17-8f89-de5264f38fe3",
      "name": "AgrégerMusiques",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        624,
        480
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "Internal Path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c7783a6e-cc80-4cac-9280-e9195f1eb6c8",
      "name": "ObtenirCitations",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        848,
        480
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 739055601,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=739055601",
          "cachedResultName": "Video Logs"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "3d4c539c-fcbc-4965-915e-29269cceb58a",
      "name": "Limite",
      "type": "n8n-nodes-base.limit",
      "position": [
        1072,
        480
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4a603c0c-b734-4180-be56-1d84a73349af",
      "name": "ChoisirMusiqueVidéoAléatoire",
      "type": "n8n-nodes-base.set",
      "position": [
        1280,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3b028ccc-6b8d-4ed0-958a-52b0223e5dac",
              "name": "Music_Path",
              "type": "string",
              "value": "={{ $('AggregateMusic').item.json['Internal Path'][Math.floor(Math.random() * $('AggregateMusic').item.json['Internal Path'].length)] }}"
            },
            {
              "id": "b97fb3ce-cf68-46fc-81b3-774ac5e26990",
              "name": "Video_Path",
              "type": "string",
              "value": "={{ $('AggregateVideos').item.json['Internal Path'][Math.floor(Math.random()*$('AggregateVideos').item.json['Internal Path'].length)] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e228ce95-dfeb-499f-9d0d-08ec9e4156c4",
      "name": "GénérerNomFichierFinal",
      "type": "n8n-nodes-base.set",
      "position": [
        1504,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "aec988b9-f8b7-4b59-8438-f720568d4d9f",
              "name": "File Name",
              "type": "string",
              "value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "580b2672-9d3d-45b6-9389-9c4eb7dd8755",
      "name": "GénérerSuperpositionTexte",
      "type": "n8n-nodes-base.code",
      "position": [
        1728,
        480
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const fontColor = \"white\";\nconst fontFile = \"NotoSerif_Condensed-BlackItalic.ttf\";\nconst fontSize = 80;\nconst lineHeightMultiplier = 1.1;\nconst videoWidth = 1080;\n\nconst avgCharWidth = fontSize * 0.6;\nconst maxCharsPerLine = Math.floor(videoWidth / avgCharWidth);\n\nconst words = $('GetQuotes').item.json['Video Transcript'].split(' ');\nconst lines = [];\nlet currentLine = '';\nlet currentCharCount = 0;\n\nwords.forEach(word => {\n  const wordLength = word.length;\n  const potentialLength = currentCharCount + (currentLine ? 1 : 0) + wordLength;\n  if (potentialLength <= maxCharsPerLine) {\n    currentLine += `${currentLine ? ' ' : ''}${word}`;\n    currentCharCount = potentialLength;\n  } else {\n    lines.push(currentLine);\n    currentLine = word;\n    currentCharCount = wordLength;\n  }\n});\n\nif (currentLine) lines.push(currentLine);\n\nconst totalHeight = lines.length * fontSize * lineHeightMultiplier;\nconst lineHeight = fontSize * lineHeightMultiplier;\n\nconst drawText = lines.map((line, index) => {\n  const y = `(h/2)-${Math.ceil(totalHeight/2)}+${index * lineHeight}`;\n  return `drawtext=text='${line}':fontsize=${fontSize}:fontcolor=${fontColor}:x=(w-tw)/2:y=${y}:fontfile=${fontFile}`;\n}).join(',');\n\nreturn {\n  drawText\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "36f5d319-a960-4919-829e-eaaf43ff22b4",
      "name": "GénérerVidéo",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        624,
        704
      ],
      "parameters": {
        "command": "=ffmpeg -i \"{{ $('PickMusicVideoRandom').item.json.Video_Path }}\" \\\n    -i \"{{ $('PickMusicVideoRandom').item.json.Music_Path }}\" \\\n    -filter_complex \"\n[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920[vid];\ncolor=black@0.3:size=1080x1920:d=10[bg];\n[vid][bg]overlay[bgvid];\n[bgvid]{{ $json.drawText }}[outv];\n[1:a]volume=0.8[aout]\" \\\n    -map \"[outv]\" \\\n    -map \"[aout]\" \\\n    -t 10 -aspect 9:16 -c:v libx264 -c:a aac -shortest \\\n    \"./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4\" -y\n\n\n",
        "executeOnce": false
      },
      "typeVersion": 1
    },
    {
      "id": "a0611b1b-cd28-46f1-91c1-195ffd482bd8",
      "name": "Lire/Écrire Fichiers Disque",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1072,
        704
      ],
      "parameters": {
        "options": {},
        "fileSelector": "=./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4"
      },
      "typeVersion": 1
    },
    {
      "id": "b203af9a-1738-491a-acb0-711d7e1bd925",
      "name": "TéléverserVidéo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        704
      ],
      "parameters": {
        "url": "={{ $('CreateYoutubeLink').item.json.headers.location }}",
        "method": "PUT",
        "options": {},
        "sendBody": true,
        "contentType": "binaryData",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "video/webm"
            }
          ]
        },
        "inputDataFieldName": "data",
        "nodeCredentialType": "youTubeOAuth2Api"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "wSoMQFZbOrX9SJi2",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8a1126d5-5380-41e1-8eb7-d6c17e2cc004",
      "name": "CréerLienYouTube",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        832,
        704
      ],
      "parameters": {
        "url": "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status&uploadType=resumable",
        "body": "={\n  \"snippet\": {\n    \"title\": \"{{ $('Limit').item.json['Video Title'] }}\",\n    \"description\": \"{{ $('Limit').item.json['Video Transcript'] }}\",\n    \"defaultLanguage\": \"en\",\n    \"defaultAudioLanguage\": \"en\"\n  },\n  \"status\": {\n    \"privacyStatus\": \"public\",\n    \"license\": \"youtube\",\n    \"embeddable\": true,\n    \"publicStatsViewable\": true,\n    \"madeForKids\": false\n  }\n}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "rawContentType": "RAW/JSON",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "C-Upload-Content-Type",
              "value": "video/webm"
            }
          ]
        },
        "nodeCredentialType": "youTubeOAuth2Api"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "wSoMQFZbOrX9SJi2",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c76839aa-ea62-43d3-9672-bff1274e8785",
      "name": "Mettre à jourPublicationVidéo",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1504,
        704
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Success",
            "Post Time": "={{$now}}",
            "row_number": "={{ $('Limit').item.json.row_number }}",
            "Output Path": "=./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4",
            "Youtube Link": "=https://www.youtube.com/watch?v={{ $json.id }}"
          },
          "schema": [
            {
              "id": "Video Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Transcript",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Transcript",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Output Path",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Output Path",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Youtube Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Youtube Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post Time",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Post Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 739055601,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=739055601",
          "cachedResultName": "Video Logs"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
          "cachedResultName": "DaysOfDodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "xrsd60RjEc5ycblT",
          "name": "dodoLife"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "9a8a340d-5cf3-478c-807f-2e9f96d1c025",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        128
      ],
      "parameters": {
        "color": 3,
        "width": 1504,
        "height": 768,
        "content": "# YouTube Video & Music Processor\n\n**Video Pipeline** - Fetches videos → Adds text overlays → Generates 10s clips → Uploads to YouTube  \n\n**Music Pipeline** - Selects random tracks → Adjusts volume → Merges with videos  \n\n**Tracking** - Logs all results in Google Sheets → Cleans up files"
      },
      "typeVersion": 1
    },
    {
      "id": "e218c900-3d62-482b-80ac-db76a7c40155",
      "name": "SupprimerFichier",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        1744,
        704
      ],
      "parameters": {
        "command": "=rm ./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4",
        "executeOnce": false
      },
      "typeVersion": 1
    },
    {
      "id": "c7d899b9-a662-4d73-94fb-ff8acde2ad54",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        128
      ],
      "parameters": {
        "color": 3,
        "width": 1392,
        "height": 128,
        "content": "# Automatic Youtube shorts creation and uploading\n## That includes 2 workflows, first one to download the resources and second one to merge and uploading"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "3d4c539c-fcbc-4965-915e-29269cceb58a": {
      "main": [
        [
          {
            "node": "4a603c0c-b734-4180-be56-1d84a73349af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5d688a6e-bfed-472c-83f6-72199972d5e6": {
      "main": [
        [
          {
            "node": "952af5ed-54d3-46d4-898b-f72c1dbf82ec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1fb675f8-238d-4309-8529-110be976894f": {
      "main": [
        [
          {
            "node": "a4c35406-7cf2-49f9-8020-c10aaf471eab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c7783a6e-cc80-4cac-9280-e9195f1eb6c8": {
      "main": [
        [
          {
            "node": "3d4c539c-fcbc-4965-915e-29269cceb58a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f37f7325-bb4c-40cf-aef1-d9a30ee281e3": {
      "main": [
        [
          {
            "node": "1fb675f8-238d-4309-8529-110be976894f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "371f3ef5-358c-48ba-b11e-712c1514767a": {
      "main": [
        [
          {
            "node": "5d688a6e-bfed-472c-83f6-72199972d5e6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "735e9762-d509-46a3-9052-6f6aba176baf": {
      "main": [
        [
          {
            "node": "f7332c1b-3b9f-4e17-8f89-de5264f38fe3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b203af9a-1738-491a-acb0-711d7e1bd925": {
      "main": [
        [
          {
            "node": "c76839aa-ea62-43d3-9672-bff1274e8785",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e78c802f-4982-4e29-97eb-05d59379fa71": {
      "main": [
        [
          {
            "node": "aaf6e8b2-e568-41ac-a3d5-b4f413d41634",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c301bc03-25ce-48fb-b3a3-ca360b87cb9f": {
      "main": [
        [
          {
            "node": "5b81df46-443d-4f91-ab28-72d3a27b77e8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "36f5d319-a960-4919-829e-eaaf43ff22b4": {
      "main": [
        [
          {
            "node": "8a1126d5-5380-41e1-8eb7-d6c17e2cc004",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f7332c1b-3b9f-4e17-8f89-de5264f38fe3": {
      "main": [
        [
          {
            "node": "c7783a6e-cc80-4cac-9280-e9195f1eb6c8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aaf6e8b2-e568-41ac-a3d5-b4f413d41634": {
      "main": [
        [
          {
            "node": "735e9762-d509-46a3-9052-6f6aba176baf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "952af5ed-54d3-46d4-898b-f72c1dbf82ec": {
      "main": [
        [
          {
            "node": "f36527c6-014f-4cff-bdee-201c053bb1b7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c76839aa-ea62-43d3-9672-bff1274e8785": {
      "main": [
        [
          {
            "node": "e218c900-3d62-482b-80ac-db76a7c40155",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a37bb3ce-5f60-4ae3-a9d9-3fbf503a0786": {
      "main": [
        [
          {
            "node": "f37f7325-bb4c-40cf-aef1-d9a30ee281e3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a1126d5-5380-41e1-8eb7-d6c17e2cc004": {
      "main": [
        [
          {
            "node": "a0611b1b-cd28-46f1-91c1-195ffd482bd8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "498ffdbe-8a7b-4f89-b5b2-f21783008420": {
      "main": [
        [
          {
            "node": "e78c802f-4982-4e29-97eb-05d59379fa71",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a4c35406-7cf2-49f9-8020-c10aaf471eab": {
      "main": [
        [
          {
            "node": "c301bc03-25ce-48fb-b3a3-ca360b87cb9f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f36527c6-014f-4cff-bdee-201c053bb1b7": {
      "main": [
        [
          {
            "node": "228c5416-3c28-4dae-a731-19c6f607e7e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e228ce95-dfeb-499f-9d0d-08ec9e4156c4": {
      "main": [
        [
          {
            "node": "580b2672-9d3d-45b6-9389-9c4eb7dd8755",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4a603c0c-b734-4180-be56-1d84a73349af": {
      "main": [
        [
          {
            "node": "e228ce95-dfeb-499f-9d0d-08ec9e4156c4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "580b2672-9d3d-45b6-9389-9c4eb7dd8755": {
      "main": [
        [
          {
            "node": "36f5d319-a960-4919-829e-eaaf43ff22b4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a0611b1b-cd28-46f1-91c1-195ffd482bd8": {
      "main": [
        [
          {
            "node": "b203af9a-1738-491a-acb0-711d7e1bd925",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac0f4816-72d3-4fb2-94bb-9999c3b1085b": {
      "main": [
        [
          {
            "node": "371f3ef5-358c-48ba-b11e-712c1514767a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds31
Catégorie1
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
MANISH KUMAR

MANISH KUMAR

@manipritraj

Automation Architect | n8n Expert I turn repetition into magic! Building workflows for: - Content creation (YouTube/social media) - Business ops (CRM/data pipelines) - Personal productivity (AI/smart home) Superpowers: API integrations • Debugging • Scalable solutions Featured: YouTube Shorts Automator • AI Report Generator • Custom ChatGPT+n8n "Automation should adapt to humans" 📧 manipritraj@gmail.com Fun fact: Automated my coffee+news+cat feeder! ☕🐈

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34