Hi, I’m Alberto from Sardinia, Italy
I work on construction sites and in my free time I build automations with n8n and AI.
I’m working on a pipeline that finds, downloads and prepares videos automatically, i’m here to learn and share my progress with you (and maybe leave my job to build something bigger, that is my goal)
Nice to meet you Alberto. Your video pipeline sounds interesting, especially the automatic preparation part since that’s usually the tricky bit.
What kind of sources are you pulling videos from and what does the preparation step involve?
I’ve been working with n8n for over 4 years and happy to bounce ideas around if you hit any roadblocks.
Thanks Farhan! Sources are Instagram and YouTube, I’m using yt-dlp for the download.
For preparation I mean trimming, converting to vertical format and adding subtitles, then publishing. Before publishing I’d like to get a Telegram message where I can approve or reject the video
Starting with the download step this week, I’ll post an update when it works
Sounds good Alberto. The Telegram approval step before publishing is straightforward with n8n.
For the video prep part with trimming and subtitles you might need ffmpeg or a dedicated API depending on how automated you want it. Let me know if you hit any blockers when you start building the download step.
@Farhan95 , the Telegram approval part is the easy bit. Since you’re starting with the download step, a few things that will save you pain later:
1. Check your setup first. yt-dlp and ffmpeg run through the Execute Command node, so you’ll need self-hosted n8n (Docker works fine) with both installed in the container. On n8n Cloud you’d need an external API instead.
2. Pass file paths, not files. Save each video to disk or storage and only pass the path between nodes. Large video binaries moving through n8n will eat memory quickly.
3. Give each video a status from day one. Each video is a long-running job: download, trim, subtitles, then waiting for you on Telegram, maybe for hours. Keep a simple table with one row per video:
Found → Downloaded → Prepared → Awaiting Approval → Approved → Published (or Rejected)
Each workflow picks up videos in one status, does its step and moves them to the next. If ffmpeg fails halfway, you rerun from where it stopped instead of downloading and trimming again. Using the video ID as the key also means the same video never gets downloaded twice.
4. Make the Telegram button update the status, not publish directly. Approve sets Approved, and a separate publish workflow only picks up Approved videos. That way nothing gets published by accident.
Are you running n8n self-hosted or on Cloud? That decides how you handle the ffmpeg part.
Hi everyone! A few weeks ago I introduced myself here and you know m a heavy machinery operator teaching myself automation in the evenings, tonight I finished my first working workflow:
RSS Feed Trigger watches a YouTube channel
Execute Command runs yt-dlp to download the new video
Telegram bot sends me the title, link and file pat
Getting there was a fight: Node version issues, n8n 2.x file access restrictions, and Telegram’s 50 MB limit for bots, which I worked around by sending a notification instead of the file.
Next step: cutting the long video into short clips automatically (ffmpeg and AI to pick the best moments)
Any advice on how you’d approach the clipping part??
Happy to share the workflow JSON if useful