Skip to content

nasomers/iracing-camera-director

Repository files navigation

iRacing Camera Director

A Windows GUI application for automating camera switching during iRacing spectating and streaming sessions. Perfect for content creators, league admins, and anyone who wants professional-looking camera work without manual switching.

Python Platform License

Features

  • Automatic Camera Cycling - Set up primary cameras (cockpit, gyro) and occasional scenic cameras (TV1, blimp, chase) with configurable intervals
  • Smart Pattern System - Show primary cameras X times, then switch to an occasional scenic shot
  • Car Following - Select and follow any driver in the session
  • Camera Groups - Organize cameras into Primary and Occasional groups with different timing
  • Sequential or Random Mode - Choose how cameras cycle within each group
  • Presets - Save and load your camera configurations for different tracks/events
  • Optional Global Hotkeys - Control cycling without leaving iRacing (disabled by default to avoid conflicts)
  • Auto-Reconnect - Automatically reconnect if iRacing restarts

Quick Start (Standalone Executable)

No Python installation required!

  1. Download iRacing Camera Director.exe from the Releases page
  2. Start iRacing and enter a session (practice, race, replay, etc.)
  3. Run iRacing Camera Director.exe
  4. Click Connect
  5. Select cameras for Primary and Occasional groups
  6. Click Start Cycling

Installation (From Source)

If you prefer to run from source or want to modify the code:

Requirements

  • Windows 10/11
  • Python 3.10 or higher
  • iRacing installed

Setup

# Clone the repository
git clone https://github.com/YOUR_USERNAME/iracing-camera-director.git
cd iracing-camera-director

# Install dependencies
pip install -r requirements.txt

# Run the application
python main.py

Dependencies

  • customtkinter - Modern themed GUI
  • pyirsdk - iRacing SDK for Python
  • keyboard - Optional global hotkeys

Usage Guide

Basic Workflow

  1. Connect - Launch iRacing first, then click Connect in the app
  2. Follow a Car - Select a driver from the dropdown and click Follow
  3. Configure Cameras - Check the cameras you want in each group:
    • Primary: Driver-focused cameras (Cockpit, Gyro, etc.) - cycles frequently
    • Occasional: Scenic/broadcast cameras (TV1, TV2, Blimp, Chase) - shown periodically
  4. Set Timing:
    • Primary Interval: How long each primary camera shows (default: 20s)
    • Occasional Interval: How long scenic cameras show (default: 60s)
    • Pattern: Show Primary X times before switching to Occasional
  5. Start Cycling - Click the big Start button!

Controls

Button Action
Start/Stop Toggle automatic camera cycling
Next Camera Skip to the next camera immediately
Pause/Resume Pause cycling on current camera

Presets

Save your camera configurations for reuse:

  • Type a name and click Save to create a preset
  • Select a preset and click Load to restore settings
  • Presets are stored in ~/.iracing_camera_director/presets/

Optional Hotkeys

Global hotkeys are disabled by default to avoid conflicts with iRacing or other software. To enable:

  1. Check "Enable Global Hotkeys"
  2. Default bindings (can be customized):
    • Ctrl+Shift+F1 - Start/Stop cycling
    • Ctrl+Shift+F2 - Next camera
    • Ctrl+Shift+F3 - Pause/Resume

Building the Executable

To build your own standalone .exe:

pip install pyinstaller
pyinstaller --onefile --windowed --name "iRacing Camera Director" main.py

The executable will be in the dist/ folder.

Troubleshooting

"Could not connect to iRacing"

  • Make sure iRacing is running and you're in a session
  • Try clicking Connect again after entering the track

No cameras showing

  • Click "Refresh Cameras" after connecting
  • Make sure you're in an active session (not in menus)

Hotkeys not working

  • Make sure "Enable Global Hotkeys" is checked
  • Run the app as Administrator if needed
  • Check for conflicts with other hotkey software

Camera switches but car changes

  • Use the "Follow" button to lock onto a specific car
  • The app maintains focus on your selected driver

Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests

License

MIT License - feel free to use, modify, and distribute.

Acknowledgments


Made with coffee and late-night racing sessions.

About

Windows GUI app for automating camera switching during iRacing spectating/streaming sessions

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages