Welcome to Bloggy — a powerful FastAPI service that automatically converts YouTube video content into long-form, SEO-optimized, human-like blog posts using AI.
🔗 GitHub Repository: github.com/kenosis01/Bloggy
💡 Developed by: Kenosis
- 🎥 Generate blog posts from:
- A specific YouTube video URL, or
- A random video from a YouTube channel
- 🗣️ Automatically fetches transcripts using youtranscripts.com
- 📌 Retrieves video title automatically
- 🧠 Uses AI (via Pollinations) to write detailed, SEO-friendly blog posts
- 🖼️ Includes YouTube video thumbnail in the blog
- 📄 Markdown blog post created and uploaded to Uguu.se (temporary hosting, 60-minute expiry)
- 💾 All in-memory — no disk writes, clean and efficient
- ⚡ FastAPI-powered REST API
- 🌑 Includes dark-themed frontend UI (optional)
- 📜 Full API documentation in
/docstab (or via included frontend)
git clone https://github.com/kenosis01/Bloggy.git
cd BloggyMake sure you have Python 3.8+ installed.
pip install -r requirements.txtOr manually install:
pip install fastapi uvicorn requests scrapetubeuvicorn main:app --reloadBy default, the app will run at:
http://localhost:10000
Generate a blog post from either a video URL or a channel ID.
You must provide only one of the following:
{
"video_url": "https://www.youtube.com/watch?v=abc123xyz",
"channel_id": null
}Or:
{
"video_url": null,
"channel_id": "UCxxxxxxxxxxxxxxxx"
}- You must only send one of the two fields.
- If both or neither are provided, the API returns an error.
{
"status": "success",
"video_url": "https://youtube.com/watch?v=abc123xyz",
"title": "This is the YouTube video title",
"thumbnail": "https://img.youtube.com/vi/abc123xyz/maxresdefault.jpg",
"file_url": "https://h.uguu.se/generated-blog.md"
}The file_url is a downloadable .md file containing the AI-generated blog post.
{
"detail": "Exactly one of video_url or channel_id must be provided."
}- The blog post is converted into a
.mdMarkdown file. - It is uploaded to https://uguu.se using their public API.
- Files are automatically deleted after 60 minutes.
- No files are saved to your local disk — everything is done in-memory using
io.BytesIO.
- User provides a video URL or a channel ID
- App fetches video ID
- App extracts transcript from youtranscripts.com
- Video title is fetched from aitubetool.com
- Transcript is sent to Pollinations AI
- AI generates a complete blog post
- The blog post is wrapped in Markdown with the video thumbnail
- Markdown file is uploaded to Uguu and download link is returned
---
layout: post
title: "Exploring the Future of AI"
date: 2025-09-11T10:23:00
---

Artificial Intelligence is rapidly evolving...Kenosis
🔗 BuyMeACoffee – Support the Project
- Add multilingual translation (e.g., Hindi, Spanish)
- Better error messages with context
- Support for playlists or batch processing
This project is licensed under the MIT License.
Use freely, contribute respectfully.