Shortline
Start to finish in about fifteen minutes. You need a Google account, a YouTube channel, and the video files you want to post.
Once your channels are connected, this console lets you do all of the following without opening YouTube Studio:
What it cannot do: pin a comment (YouTube does not allow that through the API), edit a video after it is live, or upload more than your daily quota allows. Section 8 explains the quota properly.
The Service's Privacy Policy and Terms Of Service are the two links Google asks for during OAuth verification. Both live on this site.
Enter your name, your email and a password of at least 8 characters.
No confirmation email, no waiting. You land on the Publish tab with a banner telling you what is still missing.
Your channels, videos, jobs and logs are yours alone. No other user on this site can see them, publish to your channels, or disconnect them.
This is the only fiddly part, and you do it once. You are creating your own Google Cloud project so that your uploads run on your own daily allowance rather than sharing anyone else's. Everything below is free.
Go to console.cloud.google.com and sign in with the Google account that owns your YouTube channels. Use the project dropdown at the top, choose "New project", give it any name such as "My Shorts Uploader", and press Create. Wait a few seconds, then make sure the new project is selected in that dropdown.
Go to APIs & Services > Library. Search for "YouTube Data API v3" and press Enable. Then search for "YouTube Analytics API" and enable that too. Without the first one you cannot upload; without the second the Analytics tab stays empty.
Open Google Auth Platform > Branding. Enter an app name, your support email and your developer email, then Save. The app name is what you will see on the Google consent screen when you connect a channel.
Open the Audience page. While the publishing status says "Testing", only listed test users can sign in — so add the Google address that owns your channels. Up to 100 test users are allowed, which is plenty unless you are running this for a team.
Open Data Access > Add or remove scopes, search for "youtube", and tick these four: youtube.upload, youtube.readonly, youtube.force-ssl and yt-analytics.readonly. Press Update, then Save. All four are needed. With fewer, uploads or the comment feature will fail later with a confusing permission error.
Open Clients > Create client. Application type must be Web Application. In "Authorized redirect URIs" paste the exact line shown in your Settings tab here — there is a Copy button next to it. It ends in /auth/google/callback. One wrong character and Google will refuse the connection with a redirect_uri_mismatch error. Press Create.
Google shows a Client ID and a Client Secret. Copy both into the Settings tab on this site and press "Save credentials". They are encrypted before they are stored — nobody, including the site admin, can read them back out.
In the Cloud Console, submit the YouTube API audit form for your project. Read section 8 first so you know why this matters.
In the Channels tab you can also set a Language and a Niche per channel, which become filters on the Publish tab, and a Default First Comment that gets used whenever you do not type one.
To remove a channel, press Disconnect. That revokes the token at Google as well as deleting it here, so this site loses access immediately.
On the Publish tab, drop one or more files into the box and press "Add to library". If you upload a file that is byte-for-byte identical to one you already have, you get a warning — posting the same file repeatedly falls under YouTube's repetitive content policy.
Title, description, tags, and optionally a website link that gets appended to the description. Answer the audience question — YouTube requires it on every upload and this form will not submit without it.
Optional but quick. It reads your text and flags all-caps titles, clickbait phrasing, too many hashtags or links, and anything over YouTube's length limits. It reads text only — it cannot see the video — and it is not YouTube's verdict.
Search or filter by language and niche, then tick the ones you want. Tick "Different metadata per channel" if you want a separate title or tags for some of them.
Each video-and-channel pair becomes its own job. The Queue tab shows live progress, how many attempts each job has taken, and the video ID once it is done.
Uploads are resumable. If your connection drops halfway, the job continues from where it stopped rather than starting over, and before any retry the channel is checked so the same video is never posted twice.
Type something in the "First comment" box and it is posted automatically as soon as the video is live. This is the usual place for a link to the full story, a playlist, or your site.
Pinning Cannot Be Automated. YouTube's API has no method for it, and any tool claiming otherwise is doing something it should not. What happens here instead: the Queue tab shows an "Open & pin" link that takes you straight to your comment on YouTube. Open it, press the three dots, choose Pin — about five seconds — then tick the checkbox here so you can see which ones are done.
If a comment fails to post (usually because the daily unit budget ran out), the queue shows a "Post comment" button so you can send it later without redoing the upload.
The Health tab reads live from YouTube and shows two things.
Channel health: whether each channel is still linked, whether the account is verified for long uploads, its visibility, its audience setting, and anything this tool has paused.
Video health: every video published through this tool, with its upload status, any rejection or failure reason, and the processing errors and warnings YouTube itself produced. Tick "Only Show Problems" to see just the ones that need attention.
What it cannot show. Community Guidelines strikes and copyright strikes are not in YouTube's public API. One endpoint reports good standing, and it needs a restricted permission Google grants to multi-channel networks doing acquisition reviews. This app requests it on every check: if your account holds it, a Strike Standing table appears; if not, the page says the permission is missing rather than showing you a blank. For strikes and Content ID claims, YouTube Studio stays the only complete source.
The Branding tab changes your channels themselves, not the videos. Tick any number of channels, fill in what you want, and it is applied to all of them in one pass.
What can be set: channel description, keywords, country, default language and the banner image. Empty fields are left alone, so you can push one description to fifty channels without touching their titles.
The round profile picture cannot be changed by any tool. Google has never published an API for it. Set it by hand in YouTube Studio, once per channel.
Banner sizing: upload 2048 x 1152 or larger, under 6 MB. Keep logos and text inside the middle 1235 x 338 pixels — phones crop everything outside that box.
Each channel updated costs about 50 API units, and a banner costs another 50. Against the usual 10,000 unit budget that is roughly a hundred channels a day, separate from your upload allowance.
Save patterns you reuse. A pattern can contain {title}, {description} and {website}, which are replaced with the real values when you apply it. Example title pattern: {title} | Italian Drama Shorts.
Set a publish time and the video uploads as private, then goes live by itself at that moment. Set a stagger in minutes and each channel is offset a little further, so ten channels do not all publish in the same second.
For bulk work. The columns are video_file, title, description, tags, channel_ids, publish_time, privacy, made_for_kids, pin_comment. The file named in video_file must already be in your library, several channel IDs are separated with a semicolon, and made_for_kids must say yes or no. Any row with a problem is reported by line number and skipped; the rest still import.
The Analytics tab totals views, watch minutes, likes, comments and subscriber changes across every connected channel, for 7, 28 or 90 days, plus a per-video table. This uses a separate quota from uploads, so looking at your numbers never costs you an upload.
One thing to know: most YouTube metrics run 24 to 72 hours behind. If a video published an hour ago shows zero views here, that is normal and not a bug.
The Comments tab pulls recent comments for a channel and lets you reply, hold for review or reject them without leaving the page.
Google gives each Cloud project a daily upload allowance. That is a Google limit, not a limit this site invented, and no setting here can raise it. When you hit it, your queue pauses itself and starts again automatically after midnight Pacific time. You do not need to do anything — do not delete and re-queue the jobs.
Your daily allowance is shared across every channel you connect. To stop one channel from eating the whole day, each channel is capped at a small number of uploads per day — two by default. Fifty channels at two each fills exactly the 100 you get. When a channel reaches its two, its jobs wait and the queue moves on to your other channels; everything resumes after midnight Pacific. In the queue this shows as channel_hold, which is not an error.
Until your project passes YouTube's API audit, every video uploaded through it is locked to private and cannot be made public, no matter what visibility you chose. This surprises almost everyone. It is not a fault in this tool and there is no way around it — submit the audit form in the Cloud Console and wait for the reply.
Creating several Cloud projects and rotating between them to get more uploads breaks YouTube's API terms. Google links projects by account, billing and domain without much effort, and when it acts it does not suspend one project — it takes the whole set, along with API access for every channel connected through them. If you need more capacity, ask Google for a quota increase through the audit. That request is free and it is the only route that holds up.
Quota is not the only ceiling. Posting the same or near-identical content across many channels is exactly what YouTube's repetitive content policy targets, and a channel strike costs far more than a slow queue. Vary your material.
| What you see | What it means and what to do |
|---|---|
| redirect_uri_mismatch | The redirect URI in your OAuth client does not match this site exactly. Copy it again from the Settings tab with the Copy button, including https and with no trailing slash. |
| quota_hold | Not an error. Your daily uploads are used up and the queue will resume after midnight Pacific time on its own. |
| channel_hold | Not an error either. That channel has had its two uploads for today; other channels keep going and this one resumes after midnight Pacific. |
| uploadLimitExceeded | That particular channel hit its own YouTube limit. Only that channel pauses, for 24 hours. Your other channels keep going. |
| invalid_grant | The channel's permission was withdrawn or expired, usually because the password changed or access was revoked in the Google account. Reconnect that channel. |
| Channel health says "reconnect" | Same as above. Disconnect it and connect it again. |
| Analytics shows zeros | Either the yt-analytics scope was not approved when you connected, or the data has not caught up yet. Reconnect the channel and check again tomorrow. |
| The video published but stayed private | Your project has not passed the audit yet. See section 8. |
| "This channel needs to be connected again" | The stored token no longer works. Reconnect from the Channels tab; queued jobs pick up again by themselves once it is back. |
The Activity tab keeps a record of everything that happened on your account with exact timestamps, which is usually the fastest way to find out what really went wrong.
Yes, unless the admin has switched on shared credentials. Your own keys mean your own daily allowance and your own audit standing, so nobody else's activity can slow you down or put your access at risk.
It is encrypted before it is stored, with a per-record key that is itself wrapped by the server's master key. Nobody can read it back out through the interface, including the admin. You can delete it at any time from Settings.
Yes. Connect each one in turn; they all appear in the same channel list.
The file stays in your library so you can post it to another channel later. Delete videos you are finished with to free up your storage allowance.
No. A channel belongs to the account that connected it, and the site refuses to move it to anyone else.
Every token is revoked at Google, and your channels, videos, jobs and templates are removed. Videos already published on YouTube are unaffected — they belong to your channel, not to this site.