How shane-mason/fieldstation42 works
FieldStation42 simulates scheduled broadcast TV: station configuration and media catalogs feed schedules and programming blocks, which the player tunes and plays as a continuous channel experience. Users manage stations through the web console or local UI, control playback through web/API and IR inputs, and see guide, on-screen, and overlay information. The source index supports the main scheduling and playback links; several web/API capabilities are documented but their handler internals were not sampled, so those connections are shown only where documented or indexed.
Main entry points: station_player.py Station Player · liquid_schedule.py Liquid Schedule · field_player.py Player Process · catalog.py Media Catalog
Components 22
Station Setup
- Station Manager
fs42/station_manager.py - Media Catalog
fs42/catalog.py - Media Processing
fs42/media_processor.py - Fluid Builder
fs42/fluid_builder.py
Programming
- Sequence API
fs42/sequence_api.py - Liquid Schedule
fs42/liquid_schedule.py - Programming Blocks
fs42/liquid_blocks.py - Liquid Manager
fs42/liquid_manager.py - Live Schedule Agent
fs42/live_schedule_agent.py
Playback Runtime
- Player Process
field_player.py - Station Player
fs42/station_player.py - Reception
fs42/reception.py
Control Interfaces
- Web Server
fs42/fs42_server/fs42_server.py - REST API
fs42/fs42_server/api - Web Console
fs42/fs42_server/static - Web Remote
fs42/remote - IR Remote Input
fs42/pi/remote_controller.py
Viewer Experience
- Program Guide
fs42/guide_tk.py - On-Screen Display
fs42/osd - Playback Overlays
fs42/overlay
Other components
- Viewer / Operator
- MPV Player
Connections 28
- Viewer / Operator → Web Console: configures stations
- Viewer / Operator → Web Remote: controls playback
- Viewer / Operator → IR Remote Input: sends IR input
- Web Server → REST API: registers routes
fs42/fs42_server/fs42_server.py - Web Console → Web Server: uses web console
- Web Remote → Web Server: controls over HTTP
- REST API → Station Manager: queries player state
fs42/fs42_server/api/player.py - Station Manager → Media Catalog: configures catalog
- Media Catalog → Media Processing: processes media
fs42/catalog.py - Media Catalog → Fluid Builder: scans fluid files
fs42/catalog.py - Liquid Schedule → Media Catalog: selects content
fs42/liquid_schedule.py - Liquid Schedule → Sequence API: resolves sequence
fs42/liquid_schedule.py - Liquid Schedule → Programming Blocks: builds blocks
fs42/liquid_schedule.py - Liquid Manager → Programming Blocks: uses block plans
fs42/liquid_manager.py - Liquid Manager → Sequence API: loads sequences
fs42/liquid_manager.py - Live Schedule Agent → Liquid Schedule: updates schedule
fs42/live_schedule_agent.py - Live Schedule Agent → Liquid Manager: refreshes schedules
fs42/live_schedule_agent.py - Player Process → Station Manager: loads stations
field_player.py - Player Process → Station Player: starts playback
field_player.py - Player Process → Web Server: starts API server
field_player.py - Station Player → Liquid Manager: gets programming
fs42/station_player.py - Station Player → Reception: handles reception
fs42/station_player.py - Station Player → MPV Player: plays media
- IR Remote Input → Player Process: controls playback
- Station Player → Program Guide: shows guide
fs42/station_player.py - Station Player → Playback Overlays: renders overlays
fs42/station_player.py - Viewer / Operator → Program Guide: views schedule
- Viewer / Operator → On-Screen Display: views channel info