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 and add it to n8n as an HTTP Header Auth credential (for example, header
Authorization: Bearer osk_...).
- 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.