尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
AI-powered podcast clipping that identifies viral 40–60 second moments and generates frame-perfect editing blueprints — in seconds.
The Vision
ClipForge AI is a production-grade AI system that automatically identifies viral short‑form clips from long-form podcast content and generates a professional editing blueprint for video editors. Built on a modern generative AI stack, the system is orchestrated through LangGraph to simulate real-world production AI workflows.
It reduces the typical 1-3 hours of manual podcast clip discovery to under 10 seconds.查看完整 README ↗AI-powered podcast clipping that identifies viral 40–60 second moments and generates frame-perfect editing blueprints — in seconds.
Live App · API Health · API Docs
ClipForge AI is a production-grade AI system that automatically identifies viral short‑form clips from long-form podcast content and generates a professional editing blueprint for video editors. Built on a modern generative AI stack, the system is orchestrated through LangGraph to simulate real-world production AI workflows.
It reduces the typical 1-3 hours of manual podcast clip discovery to under 10 seconds.
ClipForge AI leverages a state-machine based multi-agent architecture via LangGraph.
┌─────────────┐ ┌──────────────────────────────────────────────┐ ┌───────────┐
│ Next.js │────▶│ FastAPI Backend │────▶│ PostgreSQL│
│ Frontend │◀────│ │◀────│ (Prod) │
│ (Vercel) │ SSE │ ┌──────────────────────────────────────┐ │ └───────────┘
│ │ │ │ LangGraph Pipeline │ │
│ │ │ │ │ │
│ │ │ │ Input → Transcript → Processing → │ │
│ │ │ │ Clip Discovery Agent → Validation → │ │
│ │ │ │ Editing Plan Agent → Formatter │ │
│ │ │ │ ↑ | │ │
│ │ │ │ └── retry ─────┘ │ │
│ │ │ └──────────────────────────────────────┘ │
│ │ │ │ │
│ │ │ ▼ │
│ │ │ ┌──────────────┐ │
│ │ │ │ Google Gemini│ │
│ │ │ │ (Direct API)│ │
│ │ │ └──────────────┘ │
└─────────────┘ └──────────────────────────────────────────────┘
Vercel Railway
ClipForge goes beyond a standard AI wrapper by implementing robust, production-ready engineering patterns:
youtube-transcript-api (with proxy) → InnerTube API → YouTube Data API v3. This ensures near-100% reliability for transcript fetching.security.py module uses regex-based prompt injection detection, input sanitization, and strict XML-delimited prompts to protect the LLM.| Layer | Technology |
|---|---|
| AI Orchestration | LangGraph |
| LLM Framework | LangChain |
| LLM Provider | Google Gemini (via langchain-google-genai) |
| Backend | Python 3.11, FastAPI, Uvicorn |
| Frontend | Next.js 16, React 19, Tailwind CSS 4 |
| Database | PostgreSQL (prod) / SQLite (dev) |
| Deployment | Railway (backend) · Vercel (frontend) |
clipforge/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI entry + CORS + health check
│ │ ├── config.py # Pydantic settings
│ │ ├── dependencies.py # LLM + DB dependency injection
│ │ ├── middleware.py # Middleware
│ │ ├── rate_limiter.py # Sliding-window adaptive rate limiter
│ │ ├── security.py # PromptInjectionGuard & input sanitization
│ │ ├── graph/
│ │ │ ├── state.py # LangGraph state schema
│ │ │ ├── nodes.py # Pipeline node functions
│ │ │ └── workflow.py # Graph construction & compilation
│ │ ├── agents/
│ │ │ ├── clip_discovery_agent.py # Analyzes transcript for viral moments
│ │ │ ├── clip_validation_agent.py # Fuzzy logic verbatim validation loop
│ │ │ └── editing_plan_agent.py # Generates blueprint (b-roll, captions)
│ │ ├── services/
│ │ │ ├── transcript_service.py # 4-layer fallback transcript fetcher
│ │ │ └── chunking_service.py # Preserves timestamps during LLM chunking
│ │ └── api/
│ │ └── routes.py # REST + SSE endpoints
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── page.tsx # Landing page
│ │ │ ├── result/page.tsx # Results display
│ │ │ ├── layout.tsx
│ │ │ └── globals.css
│ │ └── components/
│ │ └── url-input.tsx # YouTube URL input + SSE client
│ ├── package.json
│ └── next.config.ts
├── AI_INSIGHTS.md # Detailed AI development journey & case studies
├── clipforge_langgraph_prd.md # Original Product Requirements Document
└── README.md
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
Create a .env file in backend/ (see .env.example at the repo root for the full list of settings):
LLM_API_KEY=your_google_ai_studio_key
LLM_MODEL=gemini-2.5-flash
DATABASE_URL=sqlite+aiosqlite:///./data/clipforge.db
SUPADATA_API_KEY=your_supadata_api_key # Highly recommended for robust transcript fetching
YOUTUBE_PROXY=http://user:[email protected]:8080 # Fallback proxy for youtube-transcript-api
Start the dev server:
uvicorn app.main:app --reload --port 8000
cd frontend
npm install
npm run dev
Create a .env.local file in frontend/:
NEXT_PUBLIC_API_URL=http://localhost:8000
Open http://localhost:3000.
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Health check |
GET | /api/v1/process/stream | SSE stream — real-time clip discovery |
POST | /api/v1/process | Synchronous clip discovery |
GET | /docs | Swagger UI |
security.py.transcript_service fetches and cleans the transcript (filler word removal, segmentation) using a multi-strategy fallback.clip_discovery_agent AI scans for viral hooks, counterintuitive takes, and high-energy moments.clip_validation_agent ensures the clip matches the transcript continuously for 40-60s using a fuzzy matcher. Fails trigger a cyclic graph loop for retry.editing_plan_agent generates a frame-perfect editing plan, suggesting pacing, captions, and b-roll.| Service | Platform | URL |
|---|---|---|
| Backend API | Railway | clipforge-production-4a6f.up.railway.app |
| Frontend | Vercel | clipforge-eosin.vercel.app |
Private — All rights reserved.