Skip to main content

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.

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.

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

1

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.
2

Install dependencies

Run npm install inside Backend/ to install all required packages.
3

Start the server

Run npm run dev to start the development server on port 5000 (configurable via PORT in .env).
4

Make your first call

Hit GET /api/v1/healthcheck to confirm the server is running, then POST /api/v1/users/register to create your first account.
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.

Build docs developers (and LLMs) love