📱 Batch upload Instagram Reels to YouTube with scheduled delays

⚡ 163 views · 📱 Social Media & Email Marketing

💡 Pro Tip — Heads up — if this workflow’s Instagram scraping breaks (it happens whenever Meta updates their frontend), ScraperNode is a community node that handles profiles, posts, reels, and comments without any HTML parsing.

View All Scrapers

Description

Automatically upload your Instagram videos to YouTube with configurable time gaps between each upload, using n8n Tables for deduplication.


How it works

  1. Fetches recent Instagram posts via the Meta Graph API and filters to only video content (VIDEO/REELS)
  2. Checks each video against an n8n Table to skip already-uploaded content
  3. Waits a configurable delay between uploads to space out your publishing schedule
  4. Processes metadata - extracts title from caption, converts hashtags to YouTube tags
  5. Uploads to YouTube with your configured privacy, category, and safety settings
  6. Records the upload in the n8n Table to prevent duplicates on future runs

Set up steps

Time estimate: 10-15 minutes

  1. Create an n8n Table with two text fields: postId and youtubeId
  2. Connect your Instagram credentials (Meta Developer Bearer Token)
  3. Connect your YouTube OAuth2 account
  4. Edit the Configuration node to set your preferred upload delay, privacy status, and category
  5. Activate the workflow

Detailed setup instructions and configuration options are documented in the sticky notes inside the workflow.


Required n8n Table

FieldTypePurpose
postIdStringStores the Instagram post ID to prevent re-uploading
youtubeIdStringStores the resulting YouTube video ID for reference

How to create:

  1. Go to n8n Tables in your n8n instance
  2. Create a new table named “Instagram To YouTube”
  3. Add two columns: postId (text) and youtubeId (text)
  4. Select this table in both the “Check If Already Uploaded” and “Save Upload Record” nodes

Configuration Options

Edit the Configuration node to customize:

{
  "includeSourceLink": true,      // Include Instagram link in description
  "waitTimeoutSeconds": 900,      // Delay between uploads (900 = 15 min)
  "maxTitleLength": 100,          // Maximum YouTube title length
  "categoryId": "24",             // YouTube category (24 = Entertainment)
  "privacyStatus": "public",      // public, private, or unlisted
  "notifySubscribers": false,     // Send notifications to subscribers
  "defaultLanguage": "en",        // Video language code
  "ageRestricted": false          // Mark as 18+ content
}

Key Settings Explained

SettingDefaultDescription
includeSourceLinktrueSet to false if your YouTube account can’t add external links (unverified accounts)
waitTimeoutSeconds900Gap between uploads in seconds. 900 = 15 minutes, 3600 = 1 hour
ageRestrictedfalseSet to true if your content is for mature audiences (18+)
notifySubscribersfalseSet to true to notify subscribers on each upload

Requirements


Features


Category IDs Reference

IDCategory
1Film & Animation
10Music
17Sports
20Gaming
22People & Blogs
23Comedy
24Entertainment
25News & Politics
27Education
28Science & Technology

đź”— Nodes Used

HTTP Request, YouTube, Schedule Trigger, Filter, Data table

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup