Skip to main content

LLM Assisted YouTube Video Pipeline

· 3 min read
Michael Wade
Founder, Wade Digital

Header Image We have released v0.1 of our YouTube Video Pipeline repo.

Demo Video

Use and Purpose

This repo is a snapshot of the current workflow we're using to publish impromptu videos to our YouTube channel as part of an exercise in discipline. It's called 100 Days Challenge, and is mainly an excuse for me to spitball topics that I want to talk about. I'm trying to make the process as frictionless as possible, and this is the result.

The current constraints that we have for the project is that we'll record a short video, about 10-15 minutes on my iPhone, and upload it to YouTube without any edits. I am however, using a transcript of the video, fed through an LLM, to provide the title, summary, and other metadata about the video.

This repo relies on a separate WhisperASR service to do the transcription, but you can probably use whatever third-party transcription engine you want.


I had originally been doing the process via a kludge of: Airdrop from my iPhone to Macbook; the Obsidian transcription plugin; an ASR-endpoint in my lab; ChatGPT; and the YouTube web app. I would like to automate the entire process. So far we've writen automator files to strip the audio before passing it to the ASR (it's less bandwidth intensive to strip it) and returning the transcript file. From there we swapped out ChatGPT for an API call using CrewAI, which is the latest Agent-Task management tool we've been playing with. We've also added a python-upload CLI tool, written in Python, that we've hacked into today.

There is still a lot of room for improvement here, and we'll be making additional tweaks as we continue to use it over the next eighty days or so. We're releasing it here as-is, and have no plans to support it or maintain it at all.

We will be prioritizing any friction we run into with the model, and will likely be making improvements to the CrewAI loop to make sure it's passing the proper data to the YouTubeUploadTool, so that we might make it a proper tool which we can fork back to CrewAI.