A command-line tool and HTTP dashboard for managing church live stream operations. Correlates Google Calendar service schedules with YouTube live broadcasts, provides coverage analysis, and offers a browser-based "Mission Control" UI.
- Fetches upcoming services from a Google Calendar cache endpoint
- Discovers YouTube live broadcasts via service account or OAuth credentials
- Calendar-to-YouTube coverage analysis (gap detection)
- Mission Control web UI with real-time SSE streaming console
- Configurable per-service metadata defaults
- yt-dlp integration for stream metadata extraction
Copy the example config:
cp fb_config.example.json fb_config.local.jsonEdit fb_config.local.json with your:
- YouTube channel URL
- Calendar cache endpoint URL
- Timezone and coverage preferences
Place your Google API credentials in the project root:
- Service account key:
*service_account*.json(for read-only broadcast listing) - OAuth client secret:
client_secret_*.json(for user-authenticated operations)
These files are gitignored and must never be committed.
Requires Python 3.9+ (for zoneinfo). Install Python packages:
pip install -r requirements.txtYou also need yt-dlp installed as a CLI tool (called via subprocess, not imported):
pip install yt-dlp# Show upcoming service blocks with YouTube coverage
python fb_scheduler.py --config fb_config.local.json
# List YouTube live broadcasts (service account)
python fb_scheduler.py --config fb_config.local.json --list-youtube-live-broadcasts
# List broadcasts with user OAuth
python fb_scheduler.py --config fb_config.local.json --list-youtube-live-broadcasts-userpython fb_trigger_server.pyOpen http://localhost:8080 in your browser.
MIT — see LICENSE.