To automatically upload videos to YouTube, I drop the finished files into a Dropbox folder and an n8n workflow does the rest. Ten times a day it grabs the oldest video, has Claude write the title, description, hashtags and tags, adds my affiliate link and the right disclosure, and uploads it. Then it sends me a task so I go check the live video. It’s posted a couple hundred of my videos so far.

The filming was never the problem
I make product videos for the Amazon Influencer Program, and I batch film them, so they show up in piles. Filming them was fine. Uploading them to YouTube is where everything stalled.
Every video needed a title, a description, the affiliate link pasted in, tags, a category, and the disclosure. One at a time. By my guess it was about 20 minutes a video, and more on the days I jumped around in between, because I can never just do one thing at once.
So I barely did it. The videos were already filmed and approved on Amazon, and they still sat there, because the reward for the upload chore didn’t feel like it covered the chore. Now it’s consistent and automatic and way easier. Once a video’s approved on Amazon, I drag it into a Dropbox folder and I’m done with it until it’s live.
What does an automatic YouTube upload workflow do?
It turns a folder of finished videos into published YouTube videos, one at a time, without me opening YouTube Studio. Here’s what one run does, in order:
- A schedule wakes it up every 90 minutes, starting at 7am, ten times a day.
- It lists my Dropbox folder and keeps only
.mp4and.movfiles. - It picks the oldest file, so the videos go up in the order I dropped them in.
- It matches the file name to a product in my Airtable base and pulls that product’s affiliate link.
- Claude writes the title, a short description, 15 to 20 hashtags and a list of search tags.
- A Code node assembles the full description in my fixed layout, with the right disclosure for that product.
- It downloads the file from Dropbox and uploads it to YouTube.
- If the upload worked, the file moves to an Uploaded folder and Asana gets a task with the video link. If it didn’t, I get an email with the file name.
One video per run means ten a day at most, and they go up a couple of hours apart, which has been plenty for me.
Who is an automatic YouTube upload workflow for?
It’s for you if you film in batches and the upload is the part you put off. Product reviews are the easy fit, because every video has the same shape: a product, a link, a disclosure, and a description that mostly writes itself from the product name. Tutorials and recipes work the same way if each video has one clear subject.
Skip it if any of these sounds like you:
- You upload one video a week. Twenty minutes once a week is easier than building and maintaining a workflow.
- Every title is a creative decision for you. The workflow writes a good enough title fast. If the title is where your channel lives, write it yourself.
- You want it to publish and walk away. I still check every video after it posts, and I’ll get to why.
- Your files don’t have a name that says what’s in them. “IMG_4471.MOV” gives the writer nothing to work with.
What do you need to automatically upload videos to YouTube?
- n8n. Where it runs. Mine is self-hosted on a Hostinger VPS, and n8n Cloud works too.
- A cloud folder n8n can read. I use Dropbox. Google Drive and OneDrive have n8n nodes as well.
- A YouTube channel and a Google Cloud project with the YouTube Data API turned on. That’s how n8n gets permission to upload. Google’s docs list a default of 100 uploads a day per project, which is ten times what I use.
- An AI model with an API key. Mine is Claude Haiku 4.5. At Anthropic’s listed price of $1 per million input tokens and $5 per million output tokens, one video’s title and description comes to about half a cent by my math.
- A table of products and links. Optional, and it’s the part that makes my descriptions mine. I use Airtable because my product list already lived there. Without it, the workflow writes from the file name alone.
- Asana or email. Something has to tell you a video went live, or you won’t go check it.
How does the workflow write each title and description?
From the file name. When I drop a video in, I’ve already named the file with the full Amazon product name, copied and pasted. That name does two jobs. It tells Claude what the video’s about, and it’s how the workflow finds the product in Airtable. The match counts overlapping words, so an Amazon name and my Airtable name don’t need to be identical, just close.
Claude only writes the parts that change from video to video. The rest of the description is a fixed layout that a Code node builds the same way every time:
| Part of the description | Who writes it | Where it comes from |
|---|---|---|
| Price link at the top | the Code node | the affiliate link on the product’s Airtable row |
| Disclosure line | the Code node | the product’s row says whether a brand sent it, I bought it, or it was a gift |
| Two to three sentences about the product | Claude | the product name |
| Affiliate disclosure paragraph | the Code node | the same text on every video |
| 15 to 20 hashtags | Claude | the product name and category |
| Storefront and link-in-bio links | the Code node | fixed |
| Hidden search tags | Claude | trimmed to fit YouTube’s 500-character tag limit |

The disclosure line is the one I’m glad I fixed. The first version stamped “(AD) Product gifted by the brand” on every single upload, including things I’d bought with my own money. That’s a false claim with my name on it. Now the workflow reads two fields on the product’s row and picks one of three lines: gifted by the brand, arrived free some other way, or a plain paid link for things I bought.
The tag trim came from a failed upload. YouTube caps tags at 500 characters, and a tag with a space in it counts two extra characters because YouTube wraps it in quotes. My first trim only counted the visible text, so the total slipped over 500 and YouTube rejected the upload with a vague “Bad request” error. The trim now counts the hidden characters and stops at 470.
The title prompt bans a short list of phrases I can’t stand on a review, starting with any title that asks if the product is any good. It still slips one in now and then, and I change it when I check the video.
Get the generator
My workflow is built around my folder, my product table and my disclosure rules, so a copy of it would mostly be things you’d have to rip out. The generator asks about your setup instead: where your videos land, what kind of videos you make, where your links live, what goes in every description (your links, a disclosure if you need one, your calls to action), and which title phrases you never want to see. Then it writes you a build prompt for any chat, a skill for Claude Code, or both.
The description template is the part to spend time on. The writer only fills the parts that change. Everything you put in the template shows up on every video exactly the way you wrote it.
What it doesn't do
It doesn't mark paid promotion. I'm sent a lot of products to review, so most videos need the paid promotion box checked in YouTube Studio, and I do that by hand when I check the video. YouTube's API reference lists a paid product placement setting on uploads. I haven't tested it, so for now it's a manual step.
It doesn't pick a thumbnail. YouTube chooses a frame, and it's often not the one I'd pick. Thumbnails and titles are what I change most when I go check.
It uploads public, right away, with subscriber notifications off. That one's a personal choice. I don't like those notifications myself, and some days ten videos go up. I go back and forth on whether to turn them back on.
A file that doesn't match a product stops the line. If the name shares too few words with anything in Airtable, the run stops and leaves the file where it is. The file's still the oldest one in the folder, so every run after that picks it again and stops again, and nothing emails me about it. A misnamed file can hold up everything behind it until I notice the uploads stopped.
When something does break, I hear about it. The upload step emails me, and my n8n error workflow catches the rest, including the day in August when Dropbox hiccuped and two uploads in a row failed.

Frequently asked questions
Can you automatically upload videos to YouTube from Dropbox?
Yes. n8n can list a Dropbox folder, download a video, and upload it through the YouTube Data API with the title, description and tags filled in. You connect your Dropbox and YouTube accounts to n8n once, and after that a schedule does the uploading.
How many videos can you upload to YouTube a day through the API?
Google's YouTube Data API docs list 100 video uploads a day per project by default. Uploads have their own quota bucket, so they don't eat into the 10,000 daily units the rest of the API uses. My workflow uploads one video per run, ten runs a day, so I'm nowhere near the cap.
Can I check videos before they go public?
Yes, set the upload's privacy to private or unlisted. If you don't set it, YouTube's API docs say it defaults to public. Mine uploads public and I check it right after, but private is the safer setting while you're still trusting the writer.
Do I need to know how to code to build this?
No, but you'll paste some code. Most of the nodes are configured by clicking. The two Code nodes, one that matches file names to products and one that assembles the description, are the kind of thing you can have Claude write from a plain description. I did.
How much does it cost to automatically upload videos to YouTube?
Mine costs about half a cent per video for the Claude call, by my math at Haiku 4.5's listed prices. The YouTube Data API doesn't charge for uploads within the daily quota. n8n is free to self-host, and the server it runs on is the real cost.
Try it yourself
Pick the next video you'd upload and write its description by hand one last time. Circle every part that would be the same on your next video: your links, your disclosure, your sign-off. That's your template. Whatever's left over is the only part the writer needs to handle.
Then run the generator above with that template, build the workflow it gives you, and send one video through on unlisted before you trust it with public. If the description comes out the way you'd have written it, you're done uploading by hand. And if you'd like those videos to turn into blog posts next, this is how I do that.
A tool I built
Porch Pile
Track your whole Amazon Influencer operation, every product, video, and brand deal, so one glance tells you what to film next.
Start your pile →I run an affiliate program on the tools I build. Approved affiliates earn 20% on what their referrals pay, for up to a year. US only for now. See the program →
Related reading
- How I Turn a YouTube Video Into a Blog Post With n8n
- How I Turn a YouTube Video Into Shorts Without Editing
- n8n Error Workflow: How I Stop Finding Out Days Later
Subscribe if you haven't already. This one's the first step for every video I make, and the posts above pick up where it leaves off. Go forth and automate the boring stuff.
