Skip to content

API-first backend powering a YouTube-style content platform with secure auth, video/media handling VOD ,built for scale and developer clarity.

License

Notifications You must be signed in to change notification settings

atithi4dev/vid-stream-ytengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Streaming Platform - Backend Module

YT-ENGINE is a backend-driven video streaming platform that supports uploading, transcoding, and serving videos in multiple resolutions using HLS. It is built with a modular architecture to handle channels, subscriptions, playlists, and user engagement efficiently.


Guides

~ Documentation

~ API Walkthrough

~ Quick Setup

~ By me a coffee


Project Setup

  1. Clone the repository:
git clone <repository-url>
cd yt-engine
  1. Ensure all required configuration files are added (database credentials, S3 settings, etc.).

  2. Start the services using Docker Compose:

docker compose up --build

Once running, you can explore API routes and features through the API documentation.


Architecture Overview

YT-ENGINE is designed as a service-oriented backend for video streaming:

  • API Gateway – Central entry point for all requests (video, channel, user, subscription).
  • Worker Services – Handle video transcoding, chunking, and background tasks via BullMQ.
  • Artifact Storage – Videos are stored in S3 and served as HLS streams (.m3u8 + .ts chunks).
  • Database Layer – Tracks users, videos, playlists, subscriptions, and watch history.
  • Asynchronous Event Flow – Ensures reliable processing of uploads, encodings, and notifications.

Features

User Module

  • Register/login with profile images.
  • Update account details and password.
  • Fetch user profile, watch history, and uploaded videos.

Video Module

  • Upload videos and thumbnails.
  • Transcode videos into multiple resolutions using ffmpeg.
  • Generate HLS streams (.m3u8 playlists + .ts chunks).
  • Fetch, update, or delete videos.

Playlist & Subscription

  • Create, update, and delete playlists.
  • Add/remove videos from playlists.
  • Subscribe/unsubscribe to channels.

Engagement

  • Comment on videos with CRUD operations.
  • Like/unlike videos and comments.
  • Fetch channel stats (views, subscribers).

Health Check

  • API status available at /api/healthcheck.

Roadmap / Upcoming Features

  • Adaptive bitrate streaming via HLS (handled by HLS.js).
  • Private video access control and permissions.
  • Background encoding for additional resolutions.
  • Analytics and engagement metrics (views, watch time).
  • WebSocket support for live comments and notifications.

Contributions

YT-ENGINE is an experimental backend project. Contributions and feedback are welcome:

  • Open an issue for bugs or feature requests.
  • Submit pull requests for improvements.
  • Focus on clarity and intent; perfection is not required.

Support







About

API-first backend powering a YouTube-style content platform with secure auth, video/media handling VOD ,built for scale and developer clarity.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages