Mini Netflix(Java + Spring)によるミニストリーミングプラットフォーム

Web

概要

このリポジトリは「Mini Netflix」と名付けられた、Java + Spring Boot で構築された小規模なストリーミングプラットフォームです。ユーザーはブラウザから動画をmultipart/form-dataでアップロードし、サーバーはファイルシステム(デフォルトは uploads フォルダ)に動画を保存、メタデータをH2(インメモリ)に記録します。カタログはJSONで提供され、シンプルなUIからHTML5の

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 7
  • ファイル数: 3
  • メインの言語: Java

主な特徴

  • ブラウザからの動画アップロード(multipart/form-data)をサポート
  • ファイルをローカルに保存し、メタデータはH2に保持
  • カタログのJSON出力とシンプルなUIでの再生(
  • Rangeリクエスト対応によるストリーミングとダウンロード用エンドポイント

技術的なポイント

このプロジェクトは学習用としてとても典型的なアーキテクチャを採用しています。バックエンドはSpring Bootで構築され、コントローラーがアップロード、一覧取得、ストリーミング(Range対応)、ダウンロードをハンドルする実装が想定されます。動画アップロードはMultipartFileを受け取り、サーバーのuploadsフォルダへ保存。保存後に動画のメタデータ(ファイル名・パス・サイズ・MIMEなど)をH2データベースにエンティティとして保存します。H2は組み込み・メモリモードで動作するため、開発やデモ用途での起動が速く、永続化よりも手軽さを優先しています。

動画配信側ではRangeリクエスト(HTTPヘッダのRange)を解析し、部分的なバイトレンジでレスポンスを返す実装がポイントです。これによりHTML5の

開発環境はJDK17+、Mavenで管理され、VS CodeのJava拡張を推奨。シンプルなUIは静的リソース(HTML/JS/CSS)で実装されており、APIから取得したJSONを元にカタログを描画、選択した動画を

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • mini-netflix: dir

(mini-netflix 配下には典型的に Spring Boot のソース、resources、静的ファイルが含まれることが想定されます。コントローラ、サービス、エンティティ、リポジトリ、application.properties などが配置される構成です。)

使い方(抜粋)

  • 前提:Java 17+, Maven 3.6+
  • 実行:mvn clean spring-boot:run またはパッケージして java -jar
  • 動作後、ブラウザでUIへアクセスし、動画をアップロード・一覧表示・再生・ダウンロードが可能

まとめ

シンプルで理解しやすく、ストリーミングの基本が学べる良いサンプルプロジェクト。

リポジトリ情報: