https://github.com/lucab85/tubecatalog
AI-powered title, description, and keyword optimization
https://github.com/lucab85/tubecatalog
agentic-builder ai-app content-automation gpt-4 metadata-generator nodejs openai radix-ui replit seo-tools tailwindcss typescript video-catalog video-optimization youtube youtube-api youtube-metadata youtube-seo youtube-tools youtube-transcript
Last synced: about 2 months ago
JSON representation
AI-powered title, description, and keyword optimization
- Host: GitHub
- URL: https://github.com/lucab85/tubecatalog
- Owner: lucab85
- License: mit
- Created: 2025-07-26T13:26:27.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-07-26T13:53:09.000Z (10 months ago)
- Last Synced: 2025-07-26T18:32:30.704Z (10 months ago)
- Topics: agentic-builder, ai-app, content-automation, gpt-4, metadata-generator, nodejs, openai, radix-ui, replit, seo-tools, tailwindcss, typescript, video-catalog, video-optimization, youtube, youtube-api, youtube-metadata, youtube-seo, youtube-tools, youtube-transcript
- Language: TypeScript
- Homepage: https://youtu.be/UnWQEJDmego
- Size: 350 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# TubeCatalog ๐ฌ
**AI-powered YouTube Metadata Generator built with Replit Agentic Builder, GPT-4, and YouTube Data API v3**
---
## ๐ Overview
**TubeCatalog** is an intelligent video cataloging app that automates the creation of YouTube titles, descriptions, and SEO-optimized keywords using OpenAI's GPT-4 and real-time video metadata from the YouTube Data API.
Paste a YouTube URL and the app generates:
- โ
An SEO-optimized **title**
- โ
A detailed, AI-generated **description**
- โ
Exactly **40 comma-separated keywords** (no hashtags)
---
## โจ Features
- ๐ Input any YouTube video URL
- ๐ง Extract metadata and auto-generated transcript (if available)
- โ๏ธ Generate structured, optimized metadata using GPT-4
- ๐ผ๏ธ Display video preview, thumbnail, and original info
- ๐ One-click copy functionality for all generated content
- ๐ Built using Replit's **Agentic Builder**, **Tailwind CSS**, and **Radix UI**
---
## ๐งฑ Tech Stack
- **Frontend**: Radix UI + Tailwind CSS
- **Backend**: Node.js / TypeScript
- **APIs**:
- [YouTube Data API v3](https://developers.google.com/youtube/v3)
- [youtube-transcript](https://www.npmjs.com/package/youtube-transcript)
- [OpenAI GPT-4](https://platform.openai.com/)
- **Platform**: Replit
---
## ๐งโ๐ป Setup Instructions
### 1. Clone the Repository
```bash
git clone https://github.com/lucab85/TubeCatalog.git
cd TubeCatalog
````
### 2. Install Dependencies
```bash
npm install
```
### 3. Create `.env` File
```env
YOUTUBE_API_KEY=your_youtube_api_key
OPENAI_API_KEY=your_openai_api_key
```
### 4. Run the App
```bash
npm run dev
```
---
## ๐ฆ API Keys Required
| Service | Key | Use |
| ---------------- | ----------------- | ------------------------------- |
| YouTube Data API | `YOUTUBE_API_KEY` | To fetch video metadata |
| OpenAI API | `OPENAI_API_KEY` | To generate content using GPT-4 |
---
## ๐ท Screenshot

---
## ๐งช Example Output
For `https://youtu.be/UnWQEJDmego`
* **Title**: *Unlocking AI OCR: Revolutionizing Text Recognition Technology*
* **Description**: *(Full paragraph with use cases and insights from transcript)*
* **Keywords (40)**: `AI OCR, Optical Character Recognition, text recognition, ...`
---
## ๐ License
MIT License ยฉ 2025 Luca Berton
[https://lucaberton.com](https://lucaberton.com)
---
## ๐ Contribute
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
### ๐ Links
* ๐ฌ [Demo Video on YouTube](https://youtu.be/Js58yqsz5Ww) โ *See TubeCatalog in action*
* ๐ [Live App Demo](https://replit.com/@lucaberton/TubeCatalog)
* ๐บ [YouTube Channel](https://youtube.com/@lucaberton)
* ๐ค [OpenAI API](https://platform.openai.com/)
* ๐ [YouTube API Docs](https://developers.google.com/youtube/v3)