VideoHub is a full-stack video sharing platform that combines YouTube-style video hosting with Twitter-style community posts. The backend is a RESTful API built with Node.js, Express 5, and MongoDB, while the frontend is a React 19 SPA styled with Tailwind CSS. Upload videos, manage channels, comment, like, subscribe, and build playlists — all through a clean, documented REST API.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/barcode8/VideoHub/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Get the backend running locally and make your first API call in minutes.
API Reference
Browse all REST endpoints — users, videos, comments, likes, subscriptions, and playlists.
Authentication
Understand JWT-based auth with access tokens, refresh tokens, and secure cookies.
Deployment
Deploy the Dockerized backend to any cloud environment with environment variable configuration.
What VideoHub Does
VideoHub exposes a versioned REST API under/api/v1 that powers all platform functionality. The backend handles everything from user registration and media uploads to paginated feeds, channel stats, and social interactions.
Video Hosting
Upload videos to Cloudinary with background processing, auto-thumbnail generation, and publish/draft controls.
Social Features
Comments with likes, channel subscriptions, video likes, and community post likes — all with toggle semantics.
Playlists
Create and manage ordered video playlists with full CRUD operations and ownership enforcement.
Channel Dashboard
Aggregate stats per channel: total subscribers, views, likes, and published video count.
Watch History
Track and retrieve per-user watch history with nested video and owner details.
Search & Filter
Paginated video feed with full-text search, sort by field, and per-user filtering.
Getting Started
Clone and configure
Clone the repository and copy
.env.sample to .env in the Backend/ directory. Fill in your MongoDB URL, JWT secrets, and Cloudinary credentials.Start the server
Run
npm run dev to start the development server on port 5000 (configurable via PORT in .env).All protected endpoints require a valid JWT access token. See the Authentication guide to learn how tokens are issued and how to pass them in requests.