Turn any YouTube video into a fully structured, SEO-optimized blog post - locally, for free, in seconds.
Features · Tech Stack · Setup · Files · Use Cases · Future Ideas
A zero-cost, privacy-first Streamlit app that:
- Takes any YouTube URL as input
- Uses Agent Reach (
yt-dlp) to download the video transcript - no YouTube API key required - Strips timestamps with regex to produce clean plain text
- Sends the transcript to a local Ollama LLM via its REST API
- Outputs a fully structured, SEO-optimized blog post with meta description, headers, and bullet points
💡 No API costs. No rate limits. No data leaves your machine.
| Feature | Description |
|---|---|
| 🔑 Zero-API | No YouTube API key - uses yt-dlp (148K ⭐) via Agent Reach methodology |
| 🦙 Local LLM | Powered by Ollama - runs 100% offline after setup |
| 📝 SEO Output | Auto-generates meta description, H2/H3 headers, bullet points |
| 🌊 Streaming | Live streaming response directly in the Streamlit UI |
| 🧹 Auto Cleanup | Temporary .vtt transcript files deleted after use |
| ⚡ Fast | Uses qwen2.5-coder:1.5b for quick, sharp responses |
| Layer | Tool | Why |
|---|---|---|
| UI | Streamlit | Instant Python web UI, zero frontend code |
| Transcript | yt-dlp via subprocess | Agent Reach's primary YouTube backend - no API key, 1800+ sites |
| LLM | Ollama | Run powerful models locally, fully free |
| Model | qwen2.5-coder:1.5b |
Fast, efficient, great at structured writing |
| HTTP | requests |
POST to Ollama's local REST API |
| Parsing | re (regex) |
Strip VTT timestamps cleanly |
| Cleanup | os |
Remove temp .vtt files post-extraction |
git clone https://github.com/47thtechcorner/RayCodes_AgentReachYT.git
cd RayCodes_AgentReachYT
⚠️ Agent Reach is the main tool that powers transcript extraction. You must clone and install it separately from its own repository.
# Install Agent Reach from source
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
# This auto-installs yt-dlp and all YouTube channel dependencies
agent-reach install --env=autoWhat this does: Agent Reach designates
yt-dlpas its YouTube backend. Runningagent-reach installinstalls and health-checks it for you - no YouTube API key, no rate limits.
pip install streamlit requests# Make sure Ollama is running (https://ollama.com)
ollama pull qwen2.5-coder:1.5bstreamlit run app.pyOpen http://localhost:8501 in your browser and paste any YouTube URL.
RayCodes_AgentReachYT/
├── app.py # Main Streamlit application (≤150 lines)
└── README.md # This file
The entire application in a single, minimal Python file:
| Section | Lines | Purpose |
|---|---|---|
get_transcript(url) |
~20 | Calls yt-dlp via subprocess to download .vtt subtitles |
parse_vtt(filepath) |
~15 | Reads file, strips timestamps with regex, returns clean text |
generate_blog(text) |
~30 | Sends text + system prompt to Ollama API, streams response |
main() / Streamlit UI |
~30 | URL input, button, spinner, live markdown output |
- Content Creators - Repurpose your YouTube videos as blog posts automatically, boosting SEO without extra writing effort
- Marketers - Extract insights from competitor YouTube videos and publish keyword-rich summaries
- Educators - Convert lecture videos or tutorials into readable, shareable study notes
- Developers - Prototype AI-powered content pipelines locally with zero cloud costs
- Journalists / Researchers - Rapidly digest long-form interview or podcast videos into structured article drafts
- Multi-language support - Auto-detect and translate non-English VTT transcripts before blogging
- Batch mode - Process entire YouTube playlists (channel-level SEO campaigns)
- CMS export - One-click publish to WordPress, Ghost, or Hashnode via their REST APIs
- Custom prompts - Let users pick blog style: listicle, deep-dive, news article, or tutorial
- Keyword injector - Input target SEO keywords and have the LLM weave them naturally into the post
This project is built on the Agent Reach philosophy:
"The most reliable access path for each platform - chosen, installed, and health-checked for you."
For YouTube, Agent Reach designates yt-dlp as the primary backend - zero API key, zero rate limits, 1800+ supported sites. We invoke it via subprocess directly, exactly as an AI Agent would.
YouTube URL → yt-dlp (subprocess) → .vtt file → regex parse → clean text → Ollama LLM → SEO Blog ✅
MIT © 2026 - Free to use, fork, and build upon.
agent reach tutorial · yt-dlp no api key · youtube to blog ai · ollama local llm · streamlit ai app · free content engine · ai blog generator · youtube transcript extractor · local ai content automation · qwen2.5 ollama · zero api youtube scraper · ai seo blog writer · python youtube automation · agent reach yt-dlp setup · free ai content pipeline