Skip to content

Daily

Publish the next video from your sheet's queue

Each day the next ready video in your sheet is uploaded to YouTube with an AI-written title and description, and its row is marked published.

Runs
Daily
Apps
Google Sheets, YouTube
AI
Yes, uses the built-in AI allowance
Access
Sheets edit; YouTube OAuth youtube.upload

Send this to your assistant

Create a ClickRuntime automation: every day at 3pm, take the next row in my Videos sheet marked ready, write a title and description from the notes with AI, upload the video file to YouTube and put the link and 'published' in the row.

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 produces short explainer videos for its own channel. Scripts and finished files are tracked in a Google Sheet, and someone has to remember to upload one a day, write a title, paste in a description and update the sheet. On busy days the channel goes quiet.

Treating the sheet as the queue keeps the channel publishing on a steady rhythm, with the sheet always showing what is live and what is next.

What you get out of it

  • A steady publishing rhythm

    One video goes out each day without anyone stopping work to upload it, which is what the YouTube algorithm and subscribers reward.

  • Titles and descriptions written for you

    AI turns the notes in the row into a title and description, ready for a quick check later if you want to tweak them.

  • The sheet stays the source of truth

    Each row shows its status and video link, so the whole team can see what is out and what is waiting.

  • Easy to reorder

    Moving a row up the sheet changes what goes out next. No scheduling screen to learn.

How it works

What happens, step by step

  1. Every day at the time you choose, ClickRuntime reads your Videos sheet and finds the first row marked ready.

  2. AI writes a title and description from the topic and notes in that row.

  3. The video file linked in the row is uploaded to your YouTube channel.

  4. The row is updated with the video link and marked published, so it is never uploaded twice.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheets it may use
  • Connect YouTube

What you get

RunsDaily
Publish the next video from your sheet's queuetoday, 9:00Succeeded
Google Sheets · VideosHow Northwind ships 400 orders a day | published | https://youtu.be/aB3dE5fG7h0

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

  • Run it at a different time, more or less often, or only on weekdays
  • 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 Sheets and 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.
publish_videos_from_a_sheet_production_queue.pyexample
import io
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseUpload
from clickruntime import on_trigger, http, credentials, ai, notify

def api(name, version):
    return build(name, version, credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)

SHEET_ID = "your-spreadsheet-id"

@on_trigger
def run(event):
    sheet = api("sheets", "v4").spreadsheets().values()
    rows = sheet.get(spreadsheetId=SHEET_ID, range="Videos!A2:E").execute().get("values", [])
    i = next((n for n, r in enumerate(rows) if len(r) > 3 and r[3] == "ready"), None)
    if i is None:
        return {"published": False}
    topic, notes, file_url = rows[i][0], rows[i][1], rows[i][2]
    meta = ai.generate(f"Topic: {topic}\nNotes: {notes}", system="Write a YouTube title (max 90 chars) and a 3-sentence description.",
                       json_schema={"type": "object", "properties": {"title": {"type": "string"}, "description": {"type": "string"}}}, max_output_tokens=300).json
    media = MediaIoBaseUpload(io.BytesIO(http.get(file_url, timeout=120).content), mimetype="video/mp4", resumable=True)
    video = api("youtube", "v3").videos().insert(part="snippet,status", media_body=media, body={
        "snippet": {"title": meta["title"], "description": meta["description"]}, "status": {"privacyStatus": "public"}}).execute()
    link = f"https://youtu.be/{video['id']}"
    sheet.update(spreadsheetId=SHEET_ID, range=f"Videos!D{i + 2}:E{i + 2}", valueInputOption="RAW", body={"values": [["published", link]]}).execute()
    notify.email_me(f"Published: {meta['title']}", link)
    return {"video": video["id"]}

FAQ

Common questions

Where does the video file come from?
From a link in the row, such as a Google Drive or cloud storage file. The automation downloads it and uploads it to YouTube.
Can videos go up as private first?
Yes. You can upload as private or unlisted and switch them to public yourself after a check.
What if the upload fails?
The row is left as ready and you get an email with the reason, so it is tried again on the next run.
What permissions does it need?
Sheets edit; YouTube OAuth youtube.upload. 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 runs (daily). Checks that find nothing to do 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 “Publish the next video from your sheet's queue” from your assistant

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