n8n + YouTube

Upload to YouTube from n8n

Post videos and Shorts to YouTube from any n8n workflow with two HTTP requests. Set the title, description, privacy, tags and playlists, schedule the publish time, and send the same video to TikTok, Instagram and 14 more platforms in the same request.

Get your API key free

n8n HTTP Request node · Free plan · Official YouTube API

n8n's YouTube node or ShortSync?

n8n on its own

  • n8n's own YouTube node can upload videos, and it's a good fit if you only post to YouTube.
  • It signs in with your own Google Cloud OAuth app, so you set up a project, enable the YouTube Data API and configure the consent screen.
  • While that consent screen is in Testing, Google's refresh tokens expire after 7 days, so a scheduled workflow stops until you sign in again or publish the app.

n8n with ShortSync

  • Connect YouTube to ShortSync once. No Google Cloud project or consent screen.
  • Schedule the publish time in the request; ShortSync uploads and publishes it then.
  • Post the same video to TikTok, Instagram Reels and 14 more platforms with one request, each with its own caption.
  • Get a webhook when the video is live, with its YouTube link.

Set it up in n8n

Connect YouTube to ShortSync once, then two HTTP requests per post. Publish now, schedule it, or save a draft to check first.

  1. 1

    Create a ShortSync API key

    In ShortSync, connect the account once, then open Settings → API & MCP, click Create API key and pick the workspace. In n8n, add a Header Auth credential with the name Authorization and the value Bearer followed by your key.

  2. 2

    Find your YouTube connection id

    Run an HTTP Request node once with GET on the connections endpoint and copy the id of your YouTube channel.

    GET https://api.shortsync.app/v1/connections
  3. 3

    Upload the video

    Add an HTTP Request node: method POST, the uploads URL, Header Auth credential. Send source_url as a public direct-download link, for example {{ $json.video_url }} from an earlier node. Add an Idempotency-Key header so a retry doesn't import the file twice. If the file is already binary data in n8n, call POST /uploads with an empty body and PUT the file to the returned presigned_url instead.

    POST https://api.shortsync.app/v1/uploads
    
    {
      "source_url": "https://example-bucket.s3.amazonaws.com/clips/recipe.mp4"
    }
  4. 4

    Create the YouTube post

    Add a second HTTP Request node with POST on the posts URL. Map the upload_id from the previous node and set YouTube's title (up to 100 characters), description and options in the target. Use publish_mode immediate to post now, scheduled with scheduled_for, or draft to check it in ShortSync first. Add more targets to post the same video elsewhere.

    POST https://api.shortsync.app/v1/posts
    
    {
      "upload_id": "{{ $json.upload_id }}",
      "publish_mode": "scheduled",
      "scheduled_for": "2026-11-10T15:00:00Z",
      "targets": [
        {
          "connection_id": "<YouTube connection id>",
          "title": "5-minute miso soup",
          "description": "Full recipe below.\n\nIngredients: ...",
          "platform_options": {
            "youtube": {
              "privacy_status": "public",
              "made_for_kids": false,
              "tags": ["recipe", "miso soup"],
              "playlist_ids": ["<playlist id>"]
            }
          }
        }
      ]
    }
  5. 5

    React when it's live

    Start a second workflow with a Webhook node (POST), add its Production URL as a webhook in Settings → API & MCP with post.published and post.failed, and click Send test event. The event carries data.post.url, the video's YouTube link, and data.post.error when it fails.

YouTube settings you can send

Put these in platform_options.youtube on the YouTube target.

FieldWhat it does
privacy_statuspublic, unlisted or private (default private).
made_for_kidsYouTube's made-for-kids flag.
notify_subscribersEmail subscribers when it publishes.
tagsVideo tags.
playlist_idsAdd the upload to playlists.
category_idYouTube category, for example "22" for People & Blogs.
contains_synthetic_mediaYouTube's altered or AI-generated content disclosure.
upload_early_for_reviewUpload as private now and switch to the chosen privacy at scheduled_for.

YouTube workflows to build

Schedule a week of Shorts from a Google Sheet

Google Sheets trigger on a new row with a video link, title and date, then the upload and post requests with publish_mode scheduled.

Write titles and descriptions with AI

Send the video's topic or transcript to an OpenAI or Anthropic node, map its answer to title and description, and create the post as a draft to approve in ShortSync.

Share the video when it goes live

Webhook node on post.published, then post data.post.url to Slack, Discord or a newsletter tool, or write it back to your sheet.

Cross-post YouTube Shorts to TikTok and Reels

Add TikTok and Instagram targets to the same request so one workflow posts the vertical video everywhere, each with its own caption.

Good to know

  • A vertical video up to 3 minutes goes out as a Short; longer or horizontal videos post as regular videos.
  • YouTube posts need a video: text, image and carousel uploads are rejected for YouTube targets.
  • ShortSync can add a first comment on YouTube (first_comment in the request).
  • Works the same on n8n Cloud and self-hosted n8n. Webhooks need n8n reachable over https.

Frequently asked questions

Yes, two ways. n8n's YouTube node uploads with your own Google Cloud OAuth app. Or call ShortSync's API from the HTTP Request node: connect YouTube to ShortSync once, then upload from a link and create a post with a title, description and schedule.
Yes. A vertical video up to 3 minutes posts as a Short. Set the title and description in the YouTube target like any other upload.
If your Google Cloud OAuth consent screen is in Testing, Google issues refresh tokens that expire in 7 days. Publish the app, or sign in again each week. With ShortSync you connect YouTube to ShortSync instead, so there's no Google Cloud app of your own.
Yes. Send publish_mode scheduled with scheduled_for as an ISO 8601 time. ShortSync uploads and publishes it at that time; set upload_early_for_review to upload it as private first.
No. The API and webhooks are on every plan, including Free with 5 uploads a month.

Post to YouTube from n8n

Free plan, API key in a minute, official platform APIs.

Official APIs and approved publishing partners

Prefer a walkthrough? Book a demo with Hilma