Clip YouTube videos into shorts with OpenShorts and Telegram approval
Go to WorkflowDescription
Quick overview
This workflow checks a YouTube channel’s RSS feed daily, sends one unprocessed video to OpenShorts for automatic 9:16 clip generation, delivers the resulting clips to Telegram for human approval, schedules approved clips for multi-platform posting via OpenShorts, and sends a weekly Telegram analytics digest.
How it works
Runs every day at 09:00 and reads your YouTube channel RSS feed to find the newest unprocessed video.
Submits the selected YouTube URL to the OpenShorts API to generate short-form clips and provides an n8n webhook URL for completion callbacks.
Marks the video as processed only after OpenShorts accepts the job, and notifies you in Telegram when clipping starts or if OpenShorts rejects the request (for example, due to quota limits).
Receives an OpenShorts webhook event when the job completes and sends each generated clip (or a download link if it’s too large) to Telegram with inline Publish and Skip buttons.
Triggers on Telegram button taps, and when you approve a clip it fetches the current OpenShorts scheduled queue to pick the next available posting date (one per day).
Schedules the approved clip to the configured platforms (TikTok, Instagram, and YouTube) via the OpenShorts social posting API and confirms success or failure back in Telegram.
Runs every Sunday at 18:00, pulls weekly impressions and per-post metrics from OpenShorts analytics, and sends a summary digest to Telegram including totals and the best-performing post.
Setup
Create an OpenShorts API key at https://openshorts.app and add it to n8n as an HTTP Header Auth credential (for example, header Authorization: Bearer osk_...). API reference: https://openshorts.app/automate-shorts-api
Create a Telegram bot with @BotFather, add the Telegram credential in n8n, and set your target Telegram chat ID in the Settings nodes.
Update the YouTube channel ID in the Settings node so the RSS URL resolves to https://www.youtube.com/feeds/videos.xml?channel_id=UC....
Copy the production URL of the OpenShorts completion webhook and paste it into the webhook_url field in the OpenShorts job request body, and set a webhook_secret value to match your OpenShorts configuration if used.
In OpenShorts, connect the social accounts you want to post to and adjust the platform list and timezone in the scheduling request if needed.
Requirements
An OpenShorts account with API access (https://openshorts.app) and your social accounts connected there for scheduling.
Customization
Change the platform list in the scheduling request to any networks supported by OpenShorts (TikTok, Instagram, YouTube, LinkedIn, X, Facebook, Threads, Pinterest, Bluesky), or route approved clips through Upload-Post (https://www.upload-post.com) if you prefer to publish with your own captions and per-platform settings.
Additional info
OpenShorts (https://openshorts.app) turns long videos into ready-to-post vertical clips with AI reframing, captions and scheduling. It is built by the team behind Upload-Post (https://www.upload-post.com), the social media posting API with n8n nodes, so both tools work well together in the same workflow.