Windows desktop app

Instagram → YouTube Shorts,
paced.

Copy an Instagram link anywhere on your machine. Shorts Pilot downloads it, works out which channel it belongs to, and releases it on a schedule you set — so twenty links don't become twenty uploads in ten minutes.

Installs in seconds No n8n, no Docker Credentials encrypted locally English & O‘zbekcha
The Shorts Pilot dashboard showing a channel with its queue, next upload time and connection status

How it works

Four steps, and you only do the first one.

There is no import dialog and no upload button. The app watches your clipboard, and everything after that happens on its own.

01

You copy a link

Any Instagram reel or post, copied anywhere on the machine — the browser, the app, a message.

02

It finds the channel

The account it came from decides where it goes. Unknown account? It asks once and remembers — or parks the clip until you have time to sort a batch.

03

It waits its turn

Each channel keeps a minimum gap between uploads. An idle channel posts immediately; a burst spaces itself out — and you can always reorder the queue or pin a clip to a time.

04

It uploads

Straight to YouTube with the title and description you configured, then filed away in the channel's done folder.

Features

Built to be left running.

Everything here exists because the alternative was tedious, fragile, or unsafe.

Paced uploads

A minimum gap per channel, not a fixed clock. Idle means instant; a burst queues up and drains one at a time. Fifteen minutes to a day, per channel.

A queue you can steer

Pacing is the default, not a cage. Drag a clip up the queue, pin one to its own date and time, or send it now — then clear the pin and it falls back to the channel's interval.

Route a backlog at once

Clips from unknown accounts collect in Needs routing. Tick as many as you like, send them all to one channel in a single click, and optionally add their accounts while you're there.

It won't post the same clip twice

A clip you've already handled says so — already queued, already sent, already uploaded — and names the channel it went to. Copying the same link twice costs nothing.

Uploads to YouTube directly

No n8n, no Docker, no workflow to maintain. Connect the channel once and the app talks to YouTube itself.

Learns your accounts

A clip from an unlisted account raises a pop-up. Answer once with “Add to channel” and it never asks again.

Randomised titles

Paste a list, one per line. Each upload draws one — never the same twice in a row. Emoji and placeholders both work.

Credit, handled for you

Attribution is appended rather than typed — the creator's handle in the title, their profile link in the description. Both are optional, both are templates.

The whole upload form

Category, tags, licence, notify subscribers, allow embedding, made for kids, and Private / Unlisted / Public — set per channel, applied to every video it sends.

A switch for the clipboard

Copying Instagram links for something else? Flip capture off from the top bar or the tray. The queue carries on releasing regardless.

Credentials encrypted

Instagram sessions and YouTube tokens are encrypted with Windows DPAPI, tied to your account, in a locked-down folder.

Lives in the tray

Close the window and it keeps working — 91 MB instead of 518 MB. The tray icon brings it straight back.

English & O‘zbekcha

Every string in the interface, switchable in one click. The choice is remembered between sessions.

One portable file

13 MB, no installer, no Python needed. It keeps its data beside itself, so the folder can move with you.

Screens

The whole app, honestly.

Real screenshots from a running install — not mock-ups. Click any of them to enlarge.

Install

Run the installer.

No account, no sign-up, no administrator rights needed.

Download for Windows Version 1.1 · ~16 MB · Windows 10 / 11

Run ShortsPilot-Setup.exe

It installs for your user only, so there is no administrator prompt. You can add a desktop shortcut and choose whether it starts with Windows — both optional, both changeable later.

Windows will warn that the publisher is unknown. That is what an unsigned installer looks like; silencing it requires a paid code-signing certificate. Choose More info → Run anyway.

Install the two tools it works with

yt-dlp fetches from Instagram and ffmpeg renders photo-and-music posts into vertical video. The app checks for both at startup and tells you if either is missing.

:: one line each, once
winget install yt-dlp.yt-dlp
winget install Gyan.FFmpeg

Launch it

From the Start menu, your desktop shortcut, or automatically at sign-in if you chose that. On first run it walks you through creating your first channel.

Requirements

Operating systemWindows 10 or 11
RuntimeWebView2 — already present on Windows 11 and updated Windows 10
Toolsyt-dlp, ffmpeg, ffprobe on PATH
AccountsAn Instagram login and a Google account with a YouTube channel

Updating

Run a newer installer over the top — your channels, connected accounts and queued clips are left alone. Nothing needs uninstalling first.

Uninstalling removes the application but deliberately leaves your data behind. Removing an app is not consent to delete your videos.

First run

Setting up your first channel.

Roughly ten minutes, most of it inside Google's console. You only do this once.

Create a Google OAuth client

YouTube's API needs one, and it belongs to you rather than to this app. In the Google Cloud console: create a project, enable YouTube Data API v3, then create an OAuth client of type Desktop app. Google's own guide is Registering an application.

Paste the client ID and secret into the channel's own Edit form. Each channel holds its own client and its own tokens — nothing is shared behind your back, and Remove this Google client clears that one channel without touching the others.

Add a channel

Give it a name, leave the destination on YouTube (direct), and leave the Instagram accounts box empty — routing will build that list for you as clips arrive.

The same form carries everything YouTube will be told about each upload: category, tags, licence, whether subscribers are notified, whether embedding is allowed, and the made-for-kids flag. Set them once and every video from that channel inherits them.

Leave visibility on Private until you have watched one upload land correctly. Undoing a public upload is more annoying than the reverse. Unlisted sits in between if you want the link without the audience.

Connect Instagram

A login window opens inside the app. You sign in on Instagram's own page — the app never sees your password, only the session Instagram hands back, which it encrypts immediately.

Connect YouTube

This one opens your real browser, because Google refuses OAuth inside embedded windows. Approve the channel, then come back — leave the app running, since the approval is sent back to it.

Copy a link

That's it. Press Test first if you want confirmation the channel is ready. An idle channel uploads immediately, so the first clip shouldn't keep you waiting — watch the activity feed as it goes.

Worth knowing: the YouTube quota

YouTube's API charges 1600 units per upload against a default of 10,000 per day — about six uploads a day, per Google Cloud project.

Because the Google client is set per channel, that ceiling is yours to arrange. Paste the same client into every channel and they share one allowance; give a channel its own Cloud project and it gets its own six.

This is a limit of the API, not of this app, and it applies equally to any tool that uploads programmatically. Beyond it you need a quota increase from Google, which is an audited process. Worth knowing before you plan a schedule around it.

Your data stays yours

Everything the app keeps — queued clips, uploaded history, connected accounts and settings — stays on your own machine. Credentials are encrypted and tied to your Windows account.

Nothing is sent anywhere except Instagram and YouTube, and only on your behalf. There is no sign-up, no telemetry and no server behind this app.

About

Who made this.

SR

S.R (Aeolian)

Creator & developer

Shorts Pilot started as two Python scripts watching two folders, feeding an n8n workflow that uploaded to two YouTube channels. It worked, but it only worked for one person on one machine — every setting was a constant in a source file, and adding a channel meant editing code.

This is the rebuild: an application where a channel is something you create rather than something you code, where credentials are encrypted rather than pasted, and where the automation engine no longer needs Docker or a workflow tool to put a video on YouTube.

For reviewers

The source, if you're assessing me.

Shorts Pilot isn't open source — but if you're evaluating how I work, the code and its full commit history are available on request.

What's in it

  • The complete application — Python engine, interface, build scripts
  • Installer script, assets and everything needed to build it yourself
  • No credentials, no user data, no videos

The comments are the part worth reading. They record what broke, what was measured, and why decisions went the way they did — including the ones that were wrong first time.

Getting access

Message me and I'll give you a code. Each one is issued to a single person and stops working the moment it's used, so a code that leaks later is already spent.

Ask for a code

Licence

Free for personal use.

Shorts Pilot is proprietary software, licensed rather than sold. The full terms are shown during installation and kept alongside the app.

© All rights reserved

You may install and use it on machines you own, to run your own channels — including channels that earn you money.

A commercial licence is required to use it on behalf of a company, agency or client, to offer it as a service to others, or to redistribute, resell or bundle it in any form.

© 2026 S.R (Aeolian). All rights reserved. Instagram and YouTube are trademarks of their respective owners; this software is not affiliated with, endorsed by or sponsored by either. You are responsible for holding the rights to anything you download or publish, and for complying with the terms of the platforms you connect.