Turn one YouTube video into LinkedIn, X and Reddit posts with n8n
One form, four drafts, and nothing posts until you approve it
This n8n workflow takes one YouTube video and writes a LinkedIn post, an X post, a Reddit post and a blog article from it. The YouTube node pulls the title, description, tags and thumbnail, an AI agent drafts each post, and a Telegram form asks you to approve or decline every draft before the matching node publishes it.
We built it for our video on cross posting from YouTube with n8n, recorded in August 2025, and the template is free from the link in that video's description. Since then X moved to pay per use pricing and the n8n docs changed how they describe the LinkedIn and X credentials, so what follows walks through the build as it ran and marks each place where the platforms have moved on. If you have not set up n8n yet, self hosting n8n on Google Cloud covers the server this runs on.
The shape is the same on every platform route, which is what makes it easy to extend:
- A Form Trigger collects the video ID, the video link and the thumbnail file.
- The YouTube node fetches the video's details.
- A writer agent drafts the post for one platform.
- A Telegram form sends you the draft and waits for approve or decline.
- On decline, an editor agent rewrites the draft from your feedback and sends it back to you.
- On approve, a merge node joins the final text with the thumbnail and the platform node publishes.
- A last Telegram message lists the ID of every post so you can see what went out.
If you want this workflow set up on your own accounts, with approvals your team will actually use, talk to us. Book a call with GenovaFlow AI
The YouTube node supplies the context every agent writes from
Everything the agents write comes from one call to the YouTube node, so it is worth getting this part right first. The workflow starts with a Form Trigger with three fields: the video ID, the video link and the thumbnail as a file upload. The ID is the part of the share link between the last slash and the question mark. In the video we note you can swap the form for a scheduled check for new uploads every few minutes; we kept the form because it lets you choose which video gets posted and when.
The YouTube node then runs its Get a video operation with that ID. It authenticates with a Google OAuth credential: create a project in Google Cloud Console, set up the OAuth consent screen as External, create a Web application client with n8n's redirect URL, add your channel's Google account as a test user, and enable the YouTube Data API v3. Paste the client ID and secret into n8n and sign in with Google.

The node returns the full video resource. Three parts of it matter here. The title, description and tags go into every agent's prompt as context. The thumbnails come in five sizes, and the YouTube Data API reference lists maxres as the largest at 1280 by 720 pixels, so that is the one the Reddit route links to. And player.embedHtml is an iframe that plays the video, which the blog route drops straight into the article.
Each platform gets a writer agent, an approval form and an editor agent
Every route repeats the same loop of writer, human check and editor, and the loop is where the quality comes from. The writer agent's user message carries the context from the YouTube node (title, description, tags and link). Its system message carries the rules for that platform: the structure of a good post, the tone, the hashtags and a length limit. On LinkedIn that means a hook, the problem the video solves and what the reader will learn.
Use your strongest model for the writer and a cheaper, faster one for the editor, because the editor only applies your feedback to a draft that already exists. In August 2025 we used Gemini 2.5 Pro for writing. One warning from building it: the free Gemini API from Google AI Studio returned too many requests errors when every agent in the workflow called it, so put the editors on a different provider such as OpenRouter or OpenAI.
The draft then goes to Telegram through the Send and Wait for Response operation. Its Custom Form response type lets you build the form yourself, and this one has two fields: a dropdown with Approve and Decline, and a text box for a feedback prompt. The draft itself sits in the form description so you read it before you choose. The execution pauses until you answer, so nothing goes out on its own. If you have not connected a Telegram bot to n8n before, our Gemini voice agent on Telegram walks through the bot and its credential.

An If node reads the decision. Approve takes the true branch to publishing. Decline takes the false branch to the editor agent, whose user message is the previous draft and whose system message is your feedback; its rewrite goes back to Telegram as version two, and the loop repeats until you approve. In the demo we declined the X post with a note to shorten the hook, and the second version came back shorter.
Two plumbing details stop this from breaking. An Edit Fields node after the agents picks the most recent output, with the other input fields kept, so the publish step always gets the latest draft rather than the first one. And because the thumbnail does not survive a chain of agent nodes, merge nodes join the approved text back to the binary file from the form before the platform node runs. Each route also ends in a Stop and Error node that fails the run after four declined rounds, so a draft you keep rejecting cannot loop forever.
LinkedIn needs a Company Page even when you post as yourself
The LinkedIn route publishes with the LinkedIn node's Post Create operation, posting as a person, with the text from the merge node and Media Category set to Image so the thumbnail goes with it. The binary property is thumbnail, the field name from the form.
The credential is the slow part. The n8n LinkedIn credential docs list a LinkedIn Company Page as a prerequisite, even for posting from your own profile. The steps in the video were: create an app on LinkedIn Developers, attach your Company Page, verify the app from the page, request access to the products the n8n docs list (Share on LinkedIn and Sign In with LinkedIn using OpenID Connect), paste n8n's redirect URL into the Auth tab, then copy the client ID and secret into n8n. In the credential we turned off Organization Support and Legacy, because the post goes out as a person and the newer profile scopes are what the app has.

One thing has changed since the recording. The n8n docs now offer two credential types and say to use Community Management OAuth2 for a new LinkedIn app, keeping plain OAuth2 for older apps. Posting as your Company Page instead of yourself needs Organization Support, and the docs say that means taking the app through LinkedIn's Community Management App Review first.
X takes two calls: upload the image, then post with its media ID
X needs the image uploaded before the post that uses it. The writer's prompt keeps the post under 280 characters. An HTTP Request node then uploads the thumbnail: body type form data, a binary field named media pointing at the thumbnail input, and a second field media_category with the value tweet_image. That second field is the one people miss: the examples we found on the n8n community forum left it out, and the upload needs it. Set the response format to JSON so the next node can read the result.
The upload returns an ID. In the X node's Create Tweet operation, add the Media ID option and map it to data.id from the upload response, not the media key. The text comes from the merge node, the same as on LinkedIn.
The credentials are where the docs have moved. In the video we created an app on the X developer portal with read and write permission as a web app, added n8n's OAuth2 redirect URL plus a second one for OAuth 1.0a, and authorized the OAuth2 credential with media.write added to the scope in the authorization link by hand. The upload request used separate OAuth 1.0a keys. Today X's v2 upload endpoint accepts either an OAuth 2.0 user token with the media.write scope or an OAuth 1.0a user token, while the n8n X credential page says n8n deprecated OAuth 1.0a for the X node in version 0.236.0. So the node posts with OAuth2, and the HTTP Request upload can use whichever user token you have.
The cost changed too. When we recorded, X sold Basic and Pro subscriptions. On 23 October 2026 X's API pricing page lists pay per use credits with no subscription: $0.015 to create a post and $0.200 to create a post that contains a URL. The post this workflow writes includes the video link, so each one costs the higher rate unless you take the link out.

X's developer rules also apply to automated posting. Its page on restricted use cases tells apps that post to follow the Automation Rules and never to post identical or substantially similar content across multiple accounts. One approved post from one account, written for X, sits inside that.
Reddit gets a link post through the HTTP Request node
Reddit needs a title and a body as separate fields, so the Reddit writer uses a Structured Output Parser. Turn on Require Specific Output Format on the agent, define a schema with title and body, and start the system message by telling the model to return only valid JSON matching that schema, with no markdown and no extra text. The editor agent gets the same schema. If the parser gives you trouble, two agents work too: one writes the title, one writes the body, and an Edit Fields node after each names the output.
We used an HTTP Request node with the Reddit OAuth2 credential instead of the Reddit node, so we could send a link post that points at the thumbnail. The n8n Reddit docs suggest exactly that route when the node does not cover what you need. The request is a POST to Reddit's submit endpoint with sr set to the subreddit, title from the parser (Reddit allows up to 300 characters), kind set to link, url set to the maxres thumbnail and api_type set to json. Reddit's reference describes text as the body of a self post, so if your body does not appear on a link post, switch kind to self and put the video link in the text instead.
In August 2025 the credential came from an app created at reddit.com/prefs/apps as a web app, with n8n's redirect URL pasted in. Check before you rely on that today: Reddit's Developer Terms, last revised on 24 March 2026, say Reddit may require your app to go through its review and approval at its discretion. The Reddit Rules also ask you to participate authentically in communities where you have a personal interest and not to spam, and every subreddit sets its own rules on top. Post only where you take part, and read that subreddit's rules on self promotion and on AI written posts first.
The blog post lands in Supabase and GitHub, and Telegram gets the receipt
The blog route depends on how your site is built, so treat it as a pattern rather than a recipe. The blog agent uses a structured output whose fields match the variables of a blog post: title, category, date, description, the body sections and the embed HTML from the YouTube node. Its system message sets it up as an SEO focused tech blog strategist and repeats the JSON shape so the model follows it.
Two nodes then store the article. The Supabase node's Create a new row writes it to a table; name every output field exactly like its column and the node can map the fields automatically. The GitHub node's File Create operation commits an HTML file built from your blog template, with the variables filled in, to your repository at the path you choose.
The last node sends one Telegram message with the result of every route: the LinkedIn post ID, the X post ID, the Reddit post, the Supabase row ID and the blog path. If any of those shows up as null or undefined, that route failed and you know where to look. The video also includes a Slack version of the approval step for the LinkedIn, X and Reddit routes if your team lives there instead of Telegram.
If you are still choosing a platform for this kind of work, our comparison of n8n, Zapier, Make and Claude Code sets out what each one charges and where each fits, and the n8n posts on this blog cover the rest of the stack. For a version tuned to your own channels, accounts and review process, our custom AI agent builds start from exactly this kind of workflow.
Questions people ask
Can n8n post on LinkedIn?
Yes. The LinkedIn node's Post Create operation publishes text, an image or an article link as a person or as an organization. You need a LinkedIn developer app connected to a Company Page, and n8n's credential docs say posting as an organization also needs LinkedIn's Community Management App Review.
Is the X API free?
No. On 23 October 2026 X's pricing page lists pay per use credits with no subscription: $0.015 to create a post and $0.200 to create a post that contains a URL. You buy credits upfront in the Developer Console and each request deducts from them.
How does human in the loop work in n8n with Telegram?
The Telegram node's Send and Wait for Response operation sends a message and pauses the workflow until someone answers. You choose Approval buttons, a Free Text form or a Custom Form with your own fields, and you can limit how long it waits. The workflow then branches on the answer with an If node.
Can n8n post to Reddit?
Yes. The Reddit node can submit a post to a subreddit, and for anything it does not cover you can call Reddit's submit endpoint with an HTTP Request node and your Reddit credential. Follow the Reddit Rules and each subreddit's own rules, which often limit self promotion.
Is there a free n8n template for posting YouTube videos to social media?
The workflow described here is free: the template link is in the description of the video. It includes the YouTube, LinkedIn, X, Reddit and blog routes, the Telegram approval forms, and a Slack version of the approval step.
Sources
- YouTube to LinkedIn, X, Reddit and Blog posts in a minute with n8n (YouTube)
- YouTube node, n8n Docs
- Videos resource, YouTube Data API reference, Google for Developers
- Telegram node message operations, n8n Docs
- LinkedIn node, n8n Docs
- LinkedIn credentials, n8n Docs
- X (Formerly Twitter) node, n8n Docs
- X credentials, n8n Docs
- Upload Media, X API docs
- X API pay per usage pricing, X Developer docs
- More on restricted use cases, X Developer Platform
- Reddit node, n8n Docs
- Reddit API reference: POST /api/submit
- Developer Terms, Reddit
- Reddit Rules
- Structured Output Parser node, n8n Docs