The moment it happens
Upload finished Shorts to YouTube and hear about it on Telegram
When your video tool finishes a Short, it goes up to YouTube with an AI-written title and Telegram tells you it is live.
- Runs
- The moment it happens
- Apps
- Telegram, YouTube
- AI
- Yes, uses the built-in AI allowance
- Access
- youtube.upload; bot token
Send this to your assistant
Create a ClickRuntime automation: when my video tool sends a finished video link, write a title, description and hashtags with AI, upload it to my YouTube channel as a Short, and send the link to my Telegram.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A faceless channel publishes several Shorts a day, made by an AI video tool from a list of topics. The tool hands back a file link, and then someone has to download it, write a title, upload it and check it went through. That last step is the bottleneck.
Uploading each finished video automatically, with a quick Telegram message when it is live, takes the person out of the loop until there is something to check.
What you get out of it
No upload bottleneck
Videos go live as soon as they are rendered, not when someone gets to them.
Titles and hashtags included
AI writes a title, description and hashtags from the topic, ready for Shorts.
Know it worked
A Telegram message with the link confirms each upload, so you can watch it from your phone.
Works with your video tool
Any tool that can send a link when a render finishes can feed it.
How it works
What happens, step by step
Your video tool sends the finished video's link and topic to the automation's private link.
AI writes a title, description and hashtags from the topic.
The video is downloaded and uploaded to your YouTube channel.
You get a Telegram message with the title and the link to the live Short.
Before it runs live
- Connect Telegram
- Connect YouTube
- Paste your automation's link into the other app's webhook settings
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 Telegram 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_event, http, credentials, ai, state
def api(name, version):
return build(name, version, credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
CHAT_ID = "123456789"
def tg(method, **params):
r = http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/{method}", json=params)
return r.raise_for_status() or r.json()["result"]
@on_event
def handle(event):
job = event.json or {}
if state.get(f"done:{event.event_id}"):
return {"duplicate": True}
meta = ai.generate(f"Topic: {job.get('topic', '')}\nScript: {job.get('script', '')[:2000]}",
system="Write a YouTube Shorts title (max 70 chars) and a 2-line description ending with 3 hashtags including #Shorts.",
json_schema={"type": "object", "properties": {"title": {"type": "string"}, "description": {"type": "string"}}}, max_output_tokens=200).json
media = MediaIoBaseUpload(io.BytesIO(http.get(job["video_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()
tg("sendMessage", chat_id=CHAT_ID, text=f"✅ Live: {meta['title']}\nhttps://youtube.com/shorts/{video['id']}")
state.set(f"done:{event.event_id}", video["id"])
return {"video": video["id"]}FAQ
Common questions
What does my video tool need to send?
How does YouTube know it is a Short?
How many can it upload a day?
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
Send a YouTube link to Telegram and get a summary back
Share a YouTube link with your Telegram bot and it replies with a short summary and the key points.
See how it worksPublish videos from a Drive folder with AI titles and a Telegram ping
Drop a video into a Drive folder and it goes to YouTube with an AI-written title and description, with a Telegram message when it is live.
See how it worksGet a morning news digest from feeds and YouTube in Telegram
Each morning Telegram brings you a short AI digest of new videos and headlines on the topics you follow.
See how it worksKeep exploring
Set up “Upload finished Shorts to YouTube and hear about it on Telegram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.