Every 15 minutes
Upload Drive videos to YouTube with AI titles, descriptions and tags
Drop a video into a Drive folder and it goes to YouTube with a search-friendly title, description and tags, and you get the link by email.
- Runs
- Every 15 minutes
- Apps
- Google Drive, YouTube
- AI
- Yes, uses the built-in AI allowance
- Access
- Drive read; YouTube youtube.upload
Send this to your assistant
Create a ClickRuntime automation: every 15 minutes, look for new videos in my YouTube Uploads folder in Drive. Write a search-friendly title, description and tags with AI, upload each video and email me the link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small business owner records product demos on their phone and saves them to Drive. They know titles, descriptions and tags help people find videos, but writing them well takes longer than recording the video. Most of their uploads end up called IMG_4021.
Having AI write proper metadata for each upload means every video has a fair chance of being found, without the owner spending an evening on it.
What you get out of it
Videos people can find
Search-friendly titles, descriptions and tags help each video show up in YouTube and Google search.
No more IMG_4021
Every video gets a real title, even if the file name was an afterthought.
Upload from anywhere
Saving to Drive from a phone or laptop is the only step.
You see the result
An email with the link lets you check each video and adjust anything you want.
How it works
What happens, step by step
Every 15 minutes, ClickRuntime checks your Uploads folder in Drive for video files it has not handled.
AI writes a title, description and tags from the file name and any notes on the file.
The video is uploaded to your YouTube channel with that metadata.
You get an email with the link, and the file is remembered so it is never uploaded again.
Before it runs live
- Connect Google Drive
- Connect YouTube
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Google Drive and YouTube steps into one automation
Under the hood
The code that runs this automation
import io
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseUpload
from clickruntime import on_trigger, report_fetched, credentials, ai, state, notify
def api(name, version):
return build(name, version, credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
FOLDER_ID = "your-drive-folder-id"
STYLE = "Friendly, practical. Brand: Northwind Tools. Include keywords people would search for."
@on_trigger
def run(event):
drive, done = api("drive", "v3").files(), set(state.get("done") or [])
files = drive.list(q=f"'{FOLDER_ID}' in parents and mimeType contains 'video/' and trashed=false", fields="files(id,name,description)").execute()["files"]
new = [f for f in files if f["id"] not in done]
report_fetched(len(new))
if not new:
return {"summary": "No new videos"}
for f in new:
meta = ai.generate(f"File: {f['name']}\nNotes: {f.get('description', '')}", system=f"Write a YouTube title, description and 10 tags. {STYLE}",
json_schema={"type": "object", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "tags": {"type": "array", "items": {"type": "string"}}}}, max_output_tokens=400).json
media = MediaIoBaseUpload(io.BytesIO(drive.get_media(fileId=f["id"]).execute()), mimetype="video/mp4", resumable=True)
video = api("youtube", "v3").videos().insert(part="snippet,status", media_body=media,
body={"snippet": meta, "status": {"privacyStatus": "public"}}).execute()
notify.email_me(f"On YouTube: {meta['title']}", f"https://youtu.be/{video['id']}\n\nTags: {', '.join(meta['tags'])}")
done.add(f["id"])
state.set("done", sorted(done))
return {"uploaded": len(new)}FAQ
Common questions
What does the AI base the title on?
Can I give it my brand or keywords?
Is a file uploaded twice if I rename it?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Publish rendered videos from Drive to YouTube
Videos your editing or AI video tool saves to Drive are uploaded to YouTube with a title and description, then moved to a Published folder.
See how it worksSave a YouTube video's summary and social posts to Drive
Send a YouTube link and a Google Doc with a summary and ready-to-use social posts appears in your Drive folder.
See how it worksPublish one video a day from a Drive folder
One video from your Drive queue folder is published at the same time every day, and you get an email confirming it.
See how it worksKeep exploring
Set up “Upload Drive videos to YouTube with AI titles, descriptions and tags” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.