How will99919/clipforge works
ClipForge accepts uploaded video files, queues in-memory processing jobs, splits videos into 15-second clips, and exposes their status and downloadable results. A separate editor flow uploads a video and exports a 9:16 version. Although the README mentions YouTube videos, the sampled implementation shows local-file upload rather than YouTube ingestion. The status route and upload-area implementation were not sampled, so their internal wiring is represented only where supported by callers and documented routes.
Main entry points: processor.js Job processor · App.jsx Clip dashboard · api.js API client · export.js Export endpoint
Components 17
Web interface
- Clip dashboard
frontend/src/App.jsx - Vertical editor
frontend/src/pages/Editor.jsx - Upload controls
frontend/src/components/UploadCard.jsx - Local preview
frontend/src/components/VideoPreview.jsx - Editor upload
frontend/src/components/UploadArea.jsx - API client
frontend/src/api.js
Backend API
- Express server
backend/src/index.js - Upload endpoint
backend/src/routes/upload.js - Status endpoint
backend/src/routes/status.js - Export endpoint
backend/src/routes/export.js
Video processing
- Job processor
backend/src/services/processor.js - In-memory jobs
backend/src/services/processor.js
Video files
- Uploaded videos
- Exported clips
Other components
- User
- Browser
- FFmpeg tools
Connections 28
- User → Browser: uses
- Browser → Clip dashboard: opens
- Browser → Vertical editor: opens
- Clip dashboard → Upload controls: renders
- Clip dashboard → Local preview: renders
- User → Upload controls: selects video
- Upload controls → Clip dashboard: selects file
- Clip dashboard → API client: uploads; polls
- API client → Upload endpoint: POST /upload
- API client → Status endpoint: GET /status
- Upload endpoint → Uploaded videos: writes upload
- Upload endpoint → Job processor: creates job
- Job processor → Uploaded videos: reads input
- Job processor → FFmpeg tools: probes; cuts
- Job processor → Exported clips: writes clips
- Job processor → In-memory jobs: updates job
- Status endpoint → In-memory jobs: reads job
- Express server → Upload endpoint: mounts route
- Express server → Status endpoint: mounts route
- Express server → Export endpoint: mounts route
- Express server → Exported clips: serves files
- Vertical editor → Editor upload: renders
- Vertical editor → API client: requests export
- API client → Export endpoint: POST /export
- Export endpoint → Uploaded videos: reads input
- Export endpoint → FFmpeg tools: transcodes
- Export endpoint → Exported clips: writes vertical video
- Browser → Exported clips: downloads results