Kaito Startup Farm IDEA → REALITY
Kaito Wings
Kaito Wings Kaito Wings ITチーム

OurTubeRooms - リアルタイム動画共有ルームプラットフォーム

OurTubeRooms - リアルタイム動画共有ルームプラットフォーム

友人やコミュニティと一緒に動画を視聴し、リアルタイムでコミュニケーションできるバーチャルルームプラットフォームを開発しました。離れた場所にいても、同じ空間で動画を楽しむ体験を提供します。

プロジェクト概要

  • リアルタイム動画共有ルーム
  • 同期再生機能
  • ルーム内チャット
  • プライベート・パブリックルーム設定

依頼者の目指した目標と解決したい課題

コロナ禍以降、オンラインでの交流が増える中、「一緒に動画を見る」という体験をオンラインで再現したいというニーズが高まっていました。既存のビデオ通話ツールで画面共有する方法はありますが、同期のズレや操作権限の問題があり、スムーズな共同視聴体験が実現できていませんでした。

開発したシステムの特徴

このプラットフォームは、複数のユーザーが同じ「ルーム」に集まり、動画を同期して視聴できる環境を提供します。主な機能として:

  • リアルタイム同期: ルーム内の全ユーザーで動画が自動同期
  • ルーム管理:
    • パブリックルーム: 誰でも参加可能
    • プライベートルーム: 招待制の限定公開
  • 動画プレイリスト: ルーム内で次に見る動画をキューに追加
  • ルーム内チャット: 動画を見ながらリアルタイムでコミュニケーション
  • ルームホスト機能:
    • 再生・一時停止の制御
    • 動画の追加・削除
    • 参加者の管理
  • セッション管理: ユーザーの入退室をリアルタイムで反映

技術的背景

Ruby on Rails 8をベースに、WebSocketを活用したリアルタイム通信を実装しました。Action Cableにより、ルーム内のすべてのユーザーに対して動画の再生状態(再生/一時停止、シーク位置、現在時刻)を即座に同期します。

データベース設計では、以下のモデルを中心に構築:

  • Room: ルーム情報(公開設定、作成者)
  • Video: 動画情報(YouTube動画ID、タイトル、長さ)
  • RoomVideo: ルームと動画の関連(プレイリスト順序)
  • User: ユーザー情報
  • Session: ユーザーのルーム参加状態

Rails 8の新機能を活用し、Turboによる高速なページ遷移、StimulusコントローラーによるインタラクティブなUI/UXを実現しています。

解決された問題

このプラットフォームにより、離れた場所にいる友人や家族と「一緒に動画を見る」体験が可能になりました。映画鑑賞会、勉強会、ファンコミュニティでの動画視聴など、様々なシーンで活用されています。リアルタイム同期により、全員が同じ瞬間を共有でき、チャット機能で感想を即座に共有できます。

チーム構成

  • (KW) プロジェクトマネージャー
  • (KW) バックエンドエンジニア×2
  • (KW) フロントエンドエンジニア
  • (KW) UIデザイナー

(KW) はKaito Wingsが担当

プロジェクト期間

  • 要件定義・設計 - 1.5ヶ月
  • MVP開発 - 3ヶ月
  • リアルタイム機能実装・調整 - 2ヶ月
  • ベータテスト - 1ヶ月

システム構成

  • Ruby on Rails 8 / PostgreSQL
  • Action Cable (WebSocket)
  • Turbo / Stimulus.js
  • Tailwind CSS
  • YouTube Iframe API
  • Kamal (デプロイ)