AutomationFlowsSocial Media › Promote Youtube Uploads to Social Channels with Deepseek and Posta

Promote Youtube Uploads to Social Channels with Deepseek and Posta

ByStefan Gimeson @stgime on n8n.io

This workflow fetches the latest video from a YouTube channel feed, generates platform-specific promo captions with DeepSeek, and creates draft promotion posts in Posta for one active account per social platform. Runs manually when you click “Execute workflow”. Fetches your…

Event trigger★★★★☆ complexityAI-powered22 nodesN8N Nodes PostaHTTP RequestXMLChain LlmLm Chat Deep Seek
Social Media Trigger: Event Nodes: 22 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #16435 — we link there as the canonical source.

This workflow follows the Chainllm → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "4SD4jWtZQmj48juh",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "YouTube video to social media promotion",
  "tags": [
    {
      "id": "8rcWTt5CS63KQzEw",
      "name": "socialmedia",
      "createdAt": "2026-06-02T08:57:53.950Z",
      "updatedAt": "2026-06-02T08:57:53.950Z"
    },
    {
      "id": "8xBogo6fq3RQfLdT",
      "name": "autopost",
      "createdAt": "2026-06-02T09:01:25.831Z",
      "updatedAt": "2026-06-02T09:01:25.831Z"
    },
    {
      "id": "E2V7Vb6mVjkhPHEs",
      "name": "blog",
      "createdAt": "2026-06-02T08:57:45.531Z",
      "updatedAt": "2026-06-02T08:57:45.531Z"
    },
    {
      "id": "ESvKanJ6OwKaH6u4",
      "name": "posta",
      "createdAt": "2026-06-02T09:01:40.639Z",
      "updatedAt": "2026-06-02T09:01:40.639Z"
    }
  ],
  "nodes": [
    {
      "id": "4e36d194-eb12-48fe-8ffd-09dbc45f5f14",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        -144
      ],
      "parameters": {
        "width": 480,
        "height": 896,
        "content": "## YouTube video to social media promotion\n\n### How it works\n\n1. A manual trigger downloads your YouTube channel feed and parses the XML to the latest video.\n2. The video thumbnail is downloaded, uploaded to Posta, and combined with the video data.\n3. Your active social accounts are selected and de-duplicated to one post per platform.\n4. An LLM writes a promo caption per platform, which is tagged back to each account.\n5. Posta creates the promotion post across the selected networks.\n\n### Setup steps\n\n- [ ] Add your Posta credential (API token) to the Posta nodes\n- [ ] Add your DeepSeek (LLM) credential to the 'Basic LLM Chain' model\n- [ ] Set your YouTube channel feed URL in 'Download YouTube feed'\n- [ ] Confirm the accounts in 'Get many social accounts'\n\n### Customization\n\nSwap the manual trigger for a Schedule trigger to promote each new upload automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "a8f16864-4140-4359-86bb-f3aa5e912fac",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 976,
        "height": 352,
        "content": "## Fetch latest video\n\nStarts the run, downloads the YouTube feed, parses it, and selects the latest video."
      },
      "typeVersion": 1
    },
    {
      "id": "cff07305-37a3-4bd8-b7c6-b1b0d9e2e10b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -144
      ],
      "parameters": {
        "color": 7,
        "width": 784,
        "height": 336,
        "content": "## Prepare thumbnail\n\nDownloads the thumbnail, uploads it to Posta, and combines it with the video data."
      },
      "typeVersion": 1
    },
    {
      "id": "c349713b-94a5-4985-9d16-51e00eda3b25",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 704,
        "height": 416,
        "content": "## Select target accounts\n\nLoads social accounts, keeps active ones, and limits to one post per platform."
      },
      "typeVersion": 1
    },
    {
      "id": "43007709-31a8-4af9-9c38-8ed152ac2d3a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 944,
        "height": 464,
        "content": "## Generate captions with AI\n\nCombines the video with platforms and writes a tagged promo caption per platform."
      },
      "typeVersion": 1
    },
    {
      "id": "a6fabe76-fa14-4899-9761-9d80d672b198",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 496,
        "height": 304,
        "content": "## Assemble and publish\n\nMerges captions per active account and creates the promotion post."
      },
      "typeVersion": 1
    },
    {
      "id": "c7c80056-b1b1-4e79-b96d-9a2c751d4a3a",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -240,
        64
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e11a8e5b-77d2-444a-a04b-5f074f5fa658",
      "name": "Create a post",
      "type": "n8n-nodes-posta.posta",
      "position": [
        2992,
        32
      ],
      "parameters": {
        "caption": "={{ $json.caption }}{{ $json.url }}",
        "additionalFields": {
          "isDraft": true,
          "mediaIds": "={{ $('Upload media').item.json.media.id }}"
        },
        "socialAccountIds": "= {{ $json.id.toString() }}",
        "platformConfigurations": {
          "linkedin": {
            "documentTitle": "={{ $json.title }}"
          }
        }
      },
      "credentials": {
        "postaApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "935a6f34-9170-4830-90dc-d2764530b323",
      "name": "Get many social accounts",
      "type": "n8n-nodes-posta.posta",
      "position": [
        544,
        688
      ],
      "parameters": {
        "resource": "socialAccount"
      },
      "credentials": {
        "postaApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d0c501b4-01f4-4066-a940-fe751214f6ca",
      "name": "Upload media",
      "type": "n8n-nodes-posta.posta",
      "position": [
        1024,
        -32
      ],
      "parameters": {
        "resource": "media"
      },
      "credentials": {
        "postaApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6518497f-ad13-4b04-8208-bdedc0c6378c",
      "name": "Download thumbnail",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        768,
        -32
      ],
      "parameters": {
        "url": "={{ $json.thumbnail }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "b35f43aa-662f-4d34-923c-dd9bee67fb6e",
      "name": "Combine thumbnail + video data",
      "type": "n8n-nodes-base.merge",
      "position": [
        1360,
        32
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "17c8f927-4708-4b2c-a91f-13bea3a82dea",
      "name": "Parse feed XML",
      "type": "n8n-nodes-base.xml",
      "position": [
        288,
        96
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "104ab147-429a-42a1-a26e-250d6a4d6e64",
      "name": "Download YouTube feed",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        48,
        16
      ],
      "parameters": {
        "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UC6vsUGbvtdWizEn1GZDT1ZQ",
        "options": {
          "response": {
            "response": {
              "responseFormat": "text"
            }
          }
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "a0247b4b-55c4-40a4-8af4-fe76eda01adc",
      "name": "Latest video",
      "type": "n8n-nodes-base.code",
      "position": [
        544,
        80
      ],
      "parameters": {
        "jsCode": "const root = $input.first().json;\n  const entries = [].concat(root.feed?.entry ?? []).slice(0, 1);  // latest only\n  return entries.map(e => {\n    const g = e['media:group'] ?? {};\n    return { json: {\n      videoId:     e['yt:videoId'],\n      title:       typeof e.title === 'string' ? e.title : e.title?._,\n      description: g['media:description'],\n      thumbnail:   g['media:thumbnail']?.url,\n      url:         e.link?.href ?? e.link?.url,\n      published:   e.published,\n    }};\n  });"
      },
      "typeVersion": 2
    },
    {
      "id": "214f8125-bd77-40d0-b2b6-5d83dc672e5a",
      "name": "Keep active accounts",
      "type": "n8n-nodes-base.filter",
      "position": [
        784,
        544
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 3,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "965b8dcb-cbbf-4a09-be7d-91190b09681e",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.isActive }}",
              "rightValue": false
            },
            {
              "id": "0650294d-1302-4d4b-97ed-14826faddb9a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "d2ba6b8c-5b56-4235-8017-4638ef8dd54d",
      "name": "One post per platform",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        1056,
        544
      ],
      "parameters": {
        "compare": "selectedFields",
        "options": {},
        "fieldsToCompare": "platform"
      },
      "typeVersion": 2
    },
    {
      "id": "4ab71d12-58c4-4ff6-a09c-7335ed70b9d2",
      "name": "Combine video + platforms",
      "type": "n8n-nodes-base.merge",
      "position": [
        1600,
        32
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "fa7c6508-5890-457d-a86a-543d1da3346f",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2000,
        32
      ],
      "parameters": {
        "text": "=Write a {{ $json.platform }} post promoting this YouTube video:\n  Title: {{ $json.title }}\n  Description: {{ $json.description }}\n  Tailor it to {{ $json.platform }} (tone, length, hashtags). Return only the caption.",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "You are the best social media marketing expert in the world."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "cc716326-2cb9-491a-9adf-b09a21f00d87",
      "name": "DeepSeek Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
      "position": [
        2032,
        240
      ],
      "parameters": {
        "model": "deepseek-v4-pro",
        "options": {}
      },
      "credentials": {
        "deepSeekApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4099d081-9007-4aba-a633-352acb376558",
      "name": "Tag captions with platform",
      "type": "n8n-nodes-base.code",
      "position": [
        2352,
        32
      ],
      "parameters": {
        "jsCode": "const ctx = $('Combine video + platforms').all();   // \u2190 your cross-join node's name\n  return $input.all().map((item, i) => {\n    const videoUrl = `https://www.youtube.com/watch?v=${ctx[i].json.videoId}`;\n    return {\n      json: {\n        platform: ctx[i].json.platform,\n        videoId:  ctx[i].json.videoId,\n        mediaId:  ctx[i].json.mediaId,\n        url:      videoUrl,\n        caption:  `${item.json.text}\\n\\n\u25b6\ufe0f  Watch: ${videoUrl}`,\n      },\n    };\n  });"
      },
      "typeVersion": 2
    },
    {
      "id": "2989b183-7287-457c-82f8-0c879465e8af",
      "name": "Post per active account",
      "type": "n8n-nodes-base.merge",
      "position": [
        2688,
        32
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "fieldsToMatchString": "platform"
      },
      "typeVersion": 3.2
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "9fe8204a-40c1-4ddf-af46-b5de082f157f",
  "connections": {
    "Latest video": {
      "main": [
        [
          {
            "node": "Download thumbnail",
            "type": "main",
            "index": 0
          },
          {
            "node": "Combine thumbnail + video data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Upload media": {
      "main": [
        [
          {
            "node": "Combine thumbnail + video data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a post": {
      "main": [
        []
      ]
    },
    "Parse feed XML": {
      "main": [
        [
          {
            "node": "Latest video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Tag captions with platform",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download thumbnail": {
      "main": [
        [
          {
            "node": "Upload media",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DeepSeek Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Keep active accounts": {
      "main": [
        [
          {
            "node": "One post per platform",
            "type": "main",
            "index": 0
          },
          {
            "node": "Post per active account",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Download YouTube feed": {
      "main": [
        [
          {
            "node": "Parse feed XML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "One post per platform": {
      "main": [
        [
          {
            "node": "Combine video + platforms",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Post per active account": {
      "main": [
        [
          {
            "node": "Create a post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many social accounts": {
      "main": [
        [
          {
            "node": "Keep active accounts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine video + platforms": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tag captions with platform": {
      "main": [
        [
          {
            "node": "Post per active account",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine thumbnail + video data": {
      "main": [
        [
          {
            "node": "Combine video + platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get many social accounts",
            "type": "main",
            "index": 0
          },
          {
            "node": "Download YouTube feed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow fetches the latest video from a YouTube channel feed, generates platform-specific promo captions with DeepSeek, and creates draft promotion posts in Posta for one active account per social platform. Runs manually when you click “Execute workflow”. Fetches your…

Source: https://n8n.io/workflows/16435/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

YouTube video to social media promotion. Uses n8n-nodes-posta, httpRequest, xml, chainLlm. Event-driven trigger; 31 nodes.

N8N Nodes Posta, HTTP Request, XML +2
Social Media

Unlock the full potential of your YouTube channel with our powerful integration that connects Google Sheets and DeepSeek AI — designed to skyrocket your video visibility and engagement without manual

Google Sheets, HTTP Request, Lm Chat Deep Seek +1
Social Media

Tired of manually watching long YouTube videos just to extract the main points?

Lm Chat Deep Seek, Chain Llm, Google Sheets +1
Social Media

video to shorts Automation. Uses httpRequest, formTrigger, lmChatGoogleGemini, outputParserAutofixing. Event-driven trigger; 34 nodes.

HTTP Request, Form Trigger, Google Gemini Chat +3
Social Media

This workflow is for content creators, marketers, agencies, coaches, and businesses who want to maximize their YouTube content ROI by automatically generating multiple content assets from single video

Output Parser Structured, Chain Llm, OpenRouter Chat +2