A GoLang + Wails application designed to integrate the CasparCG server with dynamic data sources.
CaspawCG enables real-time graphics control for live broadcasting by connecting CasparCG Server with external data sources like Google Sheets, providing a UI inspired by CharacterWorks.
- 🎨 Live Graphics Control - Real-time control of CasparCG graphics and templates
- 📊 Data Source Integration - Pull data from Google Sheets and other sources
- 🖥️ Modern UI - Built with Wails for a native desktop experience
- ⚡ Real-time Updates - Event-driven architecture for instant data synchronization
- 🎯 Layout Management - Flexible layout configuration system
- 🔧 Multi-Server Support - Connect to multiple CasparCG servers simultaneously
- Go 1.26 or higher
- Node.js 16+ and npm
- Wails v2
- CasparCG Server
- CasparCG Media Scanner
- Clone the repository:
git clone https://github.com/overlayfox/CaspawCG.git
cd CaspawCG- Install dependencies:
# Install Go dependencies
go mod download
# Install Linter
make install-dev
# Install frontend dependencies
cd frontend
npm install
cd ..
# Install CasparCG Server on Ubuntu24.04
sudo apt update
wget https://github.com/CasparCG/server/releases/download/v2.5.0-stable/casparcg-cef-142_142.0.17.g60aac24+2-noble1_amd64.deb
sudo apt install ./casparcg-cef-142_142.0.17.g60aac24+2-noble1_amd64.deb
wget https://github.com/CasparCG/server/releases/download/v2.5.0-stable/casparcg-server-2.5_2.5.0.stable-noble1_amd64.deb
sudo apt install ./casparcg-server-2.5_2.5.0.stable-noble1_amd64.deb
# Install CasparCG Media Server on Ubuntu 24.04
wget https://github.com/CasparCG/media-scanner/releases/download/v1.4.0/casparcg-scanner_1.4.0-ubuntu1_amd64.deb
sudo apt install ./casparcg-scanner_1.4.0-ubuntu1_amd64.deb- Start CasparCG
# Starts CasparCG 2.5.0 with a base config
# Run each make command in a new terminal session
make caspar-scanner
make caspar-server- Run the application:
# Run in development mode
make dev- Copy the example configuration file:
cp config.example.yaml config.yaml- Edit
config.yamlwith your settings:
data_source_manager:
google_sheet_data_sources:
- spreadsheet_id: "your_spreadsheet_id_here"
credentials_file_path: "path/to/credentials.json"
casparcg_client:
- host: "localhost"
port: 5250- Go to Googles Cloud Console.
- Create a new project that fits your requirements.
- Go to Google Sheet API.
- Enable the Google Sheets API -> then click
Manage. - Now select
Credentialson the left hand side. - Click
Create credentials-> selectService Account - Fill in the required fields and click
Create, simply skip the permissions step - Now download the JSON and rename it to
credentials.json - Drop it into the project and link to it in the
config.yamlunderdata_source_manager:->google_sheet_data_sources:-->credentials_file_path: - Now invite the E-Mail address that is listed in
credentials.json->client_email:to your Google Sheet and give it viewing access - Finally copy the google sheets
spreadsheet_id, which is located in the URL of your google sheets:https://docs.google.com/spreadsheets/d/THIS_HERE_IS_YOUR_SPREAD_SHEET_ID/
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- CasparCG Server - Open-source graphics server
- Wails - Go + Web UI framework
- Google Sheets API - Data source integration
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check the CasparCG documentation
- Visit the Wails documentation