Skip to content

Collects as they arrive, acts daily

Upload queued videos to YouTube on a schedule

Video links you send are uploaded one at a time with an AI title and description, and added to your playlist.

Runs
Collects as they arrive, acts daily
Apps
YouTube
AI
Yes, uses the built-in AI allowance
Access
OAuth youtube.upload, youtube (write)

Send this to your assistant

Create a ClickRuntime automation: give me a link I can send video file URLs to; every 12 hours upload the next one to my channel with an AI-written title and description, add it to my 'Tutorials' playlist and email me the link.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A small studio edits client videos in batches. On Friday there are eight finished files sitting in Google Drive, and publishing all eight at once buries the earlier ones in subscriber feeds. So someone has to remember to upload one file each morning, type a title, paste a description, pick the right playlist and send the client the link. That chore gets skipped on busy days, and the cadence collapses.

Whenever you drop in a video link, it goes into a queue. Each day, the next link is taken from the queue, the file is downloaded and sent to YouTube with a resumable upload, and a title and description are written for it by the built-in AI. The finished video is added to a playlist and you get an email with the live link.

Agencies, course creators and anyone batch-producing content get the most from it.

What you get out of it

  • A steady posting rhythm

    One video per day, drawn from the queue, keeps your channel active for weeks after a single editing session. Subscribers get a predictable cadence rather than a burst followed by silence. Viewers who watch daily see a channel that feels dependable, which is what turns a casual viewer into a subscriber.

  • Batch work happens only once

    Editing eight videos on Friday no longer means eight separate upload sessions. You drop the links, close the laptop and the uploads happen on the schedule without anyone sitting in YouTube Studio.

  • Metadata is never left blank

    Every upload leaves with a title and description produced by AI from what you supplied. Videos do not go live as Untitled or with an empty description that hurts search visibility. Search engines and the YouTube algorithm both reward complete titles and descriptions.

  • Large files survive flaky connections

    A resumable upload picks up where it stopped if the transfer is interrupted. A 4 GB file that fails at 90 percent does not force the whole upload to start over. Interrupted transfers are common on office Wi-Fi.

  • The link reaches the right person

    The email with the published URL goes out the moment each video is added to its playlist. Clients and teammates get a working link instead of a message saying it should be up soon.

  • Less pressure on editors

    Editors can hand over finished files whenever they are done, instead of racing to publish the same day. Because the AI drafts the wording from the details you gave, you only need to review it later if you care about the exact phrasing of a title.

How it works

What happens, step by step

  1. Whenever you send ClickRuntime a link to a video file, it adds it to a queue.

  2. Once a day it takes the next video from the queue, and AI writes a YouTube title and a three-sentence description for it.

  3. The video is uploaded to your YouTube channel with that title and description, and added to your playlist.

  4. You get an email with the new video's link and how many are left in the queue.

Before it runs live

  • Connect YouTube
  • Paste your automation's link into the other app's webhook settings

What you get

RunsCollects as they arrive, acts daily
Upload queued videos to YouTube on a scheduletoday, 9:00Succeeded
Email · Uploaded: Setting up SSO in five minuteshttps://youtu.be/dQw4w9WgXcQ 3 left in the queue.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 YouTube steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
upload_videos_from_links_on_a_schedule.pyexample
from clickruntime import on_event, on_trigger, credentials, http, state, ai, notify

YT = "https://www.googleapis.com/youtube/v3"
PLAYLIST_ID = "PLxxxxxxxx"

@on_event
def queue(event):
    q = state.get("queue") or []
    q.append({"url": event.json["url"], "topic": event.json.get("topic", "")})
    state.set("queue", q)
    return {"queued": len(q)}

@on_trigger
def upload_next(event):
    q = state.get("queue") or []
    if not q:
        return {"summary": "Queue empty"}
    item = q.pop(0)
    meta = ai.generate(f"Topic: {item['topic']}\nFile: {item['url']}", system="Write a YouTube title (max 80 chars) and a 3-sentence description.",
                       json_schema={"type": "object", "properties": {"title": {"type": "string"}, "description": {"type": "string"}}}, max_output_tokens=300).json
    h = {"Authorization": f"Bearer {credentials.connection('google', 'work')}"}
    session = http.post("https://www.googleapis.com/upload/youtube/v3/videos", headers=h,
                        params={"uploadType": "resumable", "part": "snippet,status"},
                        json={"snippet": meta, "status": {"privacyStatus": "private"}})
    video = http.put(session.headers["Location"], headers=h, data=http.get(item["url"], timeout=300).content, timeout=600).json()
    http.post(f"{YT}/playlistItems", headers=h, params={"part": "snippet"},
              json={"snippet": {"playlistId": PLAYLIST_ID, "resourceId": {"kind": "youtube#video", "videoId": video["id"]}}})
    state.set("queue", q)
    notify.email_me(f"Uploaded: {meta['title']}", f"https://youtu.be/{video['id']}\n{len(q)} left in the queue.")
    return {"video": video["id"], "left": len(q)}

FAQ

Common questions

What kinds of video links work?
The file has to be downloadable from the link without a login, such as a direct file URL or a public shared link. Pages that only stream the video in a player, or links that require signing in, cannot be fetched and uploaded.
Does the video publish publicly right away?
The privacy status is part of the upload settings, so you can choose public, unlisted or private. Many people upload as private or unlisted and review the result before switching it to public inside YouTube Studio. A private upload also gives a client a safe preview before anything is public.
What if I add five links in one day?
They wait in the queue in the order they arrived and one is taken per run. Nothing is dropped, and the queue simply drains over the following days, which is the point of spacing them out. Order is preserved, so a numbered series publishes in the sequence you intended.
What permissions does it need?
OAuth youtube.upload, youtube (write). Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Upload queued videos to YouTube on a schedule” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.