Overview

The VoD System is a powerful clip management platform designed to streamline how you handle your video content. Whether you're a content creator, streamer, or educator, VoD System lets you:

  • Upload clips effortlessly and securely.
  • Edit and trim videos with intuitive controls.
  • Compress files to specific file sizes.
  • Organize your clips for quick access and sharing.

This VoD system began as a small project back in my 5th year of secondary school, during lockdown. I wanted a quick way to send game clips to Discord, but the 8MB file size limit made it frustrating to manually tweak bitrates for every clip. To solve that, I wrote a simple Python script to automate the process. What started as a quick fix has since evolved into a full-fledged system — now built with a Spring Boot backend and a modern React/Vite frontend.

Requirements

  • Docker & Docker Compose
  • JDK 21+
  • Node.js 16+
  • FFMPEG
  • Google Client keys

Steps

  1. Create your own two .env files based off the example.env files in the root and in the frontend folder
  2. Spin up docker container with docker compose up
  3. Run ./mvnw clean package to build the jar
  4. Run ./mvnw spring-boot:run to run the backend section
  5. Run cd frontend && npm install && npm run dev to build and run the frontend
  6. Endpoints should be available at 8080 (backend) and 5173 (frontend)

Future Plans

  • Format Handling
    • Backend conversion of non-MP4 files via FFMPEG for broader format support
  • Input Sources
    • Support for local file uploads and YouTube imports
  • Testing
    • Unit tests, including coverage for FFMPEG-related functionality
  • API Documentation
    • Comprehensive and maintainable backend API docs
Description
A lightweight VoD system for uploading, editing, and compressing video clips to a target file size for easy sharing.
Readme 924 KiB
Languages
Java 59.9%
TypeScript 36.7%
CSS 2.1%
JavaScript 0.6%
Dockerfile 0.4%
Other 0.3%