Skip to content

CodeforSusono/baseball_broadcast_board

Repository files navigation

野球中継スコアボード (Baseball Broadcast Board)

YouTube等のライブ配信で野球の試合を中継する際に、OBSにスコアボードをクロマキー合成で表示するためのアプリケーションです。

表示ボード

✨ 主な機能

  • 簡単操作: ブラウザまたは専用アプリで試合状況を更新
  • リアルタイム反映: 操作パネルの変更が即座にスコアボードへ反映
  • OBS対応: 背景色をカスタマイズしてクロマキー合成
  • 状態保存: 試合途中で中断しても再開可能
  • 複数PC対応: 操作PCと配信PCを分けて運用可能

📥 インストール方法

Electron版(推奨 - スタンドアロンアプリ)

Linux(動作確認済み)

# ビルド
npm install
npm run build:linux

# 実行
sudo apt install libfuse2  # Ubuntu 24.04以降のみ
./dist/Baseball\ Scoreboard-1.0.0.AppImage --no-sandbox

エレクトロン版操作パネル 初回起動時に設定ウィンドウが開き、試合設定を行えます。 設定ウィンドウ

Windows / macOS

npm run build:win    # Windows
npm run build:mac    # macOS

Web版(複数PC環境向け)

# サーバー起動
npm install
node server.js

# ブラウザでアクセス
http://localhost:8080/operation.html  # 操作パネル
http://localhost:8080/board.html      # 表示ボード

複数PCからアクセスする場合はlocalhostをサーバーのIPアドレスに変更してください。

初期メニュー 操作パネル 操舵パネル(スレーブ) 表示ボード

詳細: マルチPC環境構築ガイド

🚀 基本的な使い方

1. 試合設定

Electron版:

  1. 設定ウィンドウ(Ctrl/Cmd+,)を開く
  2. YAMLファイルを選択または新規作成
  3. 「✅ 設定ファイルを生成」をクリック

Web版:

npm run init

対話形式で大会名、チーム名、イニング数を入力します。

詳細: 設定ファイルガイド

2. 試合開始

  1. 操作パネルを開く
  2. イニングと表裏を選択
  3. スコアやランナーをボタンで更新

3. OBSに表示

  1. OBS → ソース → ブラウザ
  2. URL: http://localhost:8080/board.html
  3. 幅: 1920、高さ: 1080
  4. エフェクトフィルタ → クロマキー → 背景色を抜く

詳細: ユーザーガイド

❓ よくある質問

複数人で同時に操作できますか?

最初に接続した人のみが操作可能(マスター)となります。後から接続した人は閲覧専用(スレーブ)です。マスター権限は手動で解放できます。

詳細: Master/Slave制御

試合をリセットするには?

操作パネルの「🔄 試合初期化」ボタンでリセットできます(チーム名は保持)。新しい大会を始める場合は「📋 新規大会で初期化」を使用してください。

接続が切れた場合は?

自動的に再接続を試みます(最大10回)。接続状態はナビゲーションバーで確認できます。

詳細: WebSocket再接続

マルチPC環境で使うには?

サーバーのIPアドレスを確認し、他のPCからそのIPアドレスでアクセスしてください。

詳細: マルチPC環境構築ガイド

背景色を変更するには?

Electron版: 設定ウィンドウ(Ctrl/Cmd+,)の「🎨 表示ボード設定」カードで変更

Web版: npm run initで設定時に指定、またはYAMLファイルでboard_background_colorを設定

推奨色: グリーン #00ff00、マゼンタ #ff00ff、ブルー #0000ff

📚 ドキュメント

一般ユーザー向け

Electron版ユーザー向け

運用管理者向け

開発者向け

📄 ライセンス

このプロジェクトのライセンスはCC BY-NC 4.0です。商用利用についてはCode for SUSONOへお問い合わせ下さい。

利用しているオープンソースソフトウェア

このプロジェクトは以下のオープンソースソフトウェアを使用しています(すべてMITライセンス):

実際にインストールされるバージョンは package-lock.json をご確認ください。

🧪 テスト

このプロジェクトはVitestを使用した自動テストを実装しています。

テストの実行

# すべてのテストを実行
npm test

# テストを1回だけ実行(CI用)
npm run test:run

# カバレッジレポート付きでテスト
npm run test:coverage

# UIモードでテストを実行
npm run test:ui

# ウォッチモード(ファイル変更時に自動再実行)
npm run test:watch

テスト内容

Path Traversalセキュリティテスト (test/unit/validate-file-path.test.js)

  • ファイルパス検証機能のセキュリティテスト(29テストケース)
  • パストラバーサル攻撃の防御テスト
  • 不正な拡張子・ファイルタイプの検出
  • 実際の攻撃シナリオに基づいたテスト

カバレッジ: セキュリティクリティカルなvalidateFilePath()関数は100%テスト済み

詳細はdoc/SECURITY.mdおよびdoc/TESTING_FRAMEWORK_PROPOSAL.mdを参照してください。

About

野球中継を配信する際に、中継画面の隅に表示する実況盤Webシステム

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •