Made settings configureable without changing code
This commit is contained in:
45
README.md
45
README.md
@@ -6,14 +6,36 @@ Why not? Try it out. It's fun.
|
||||
|
||||
Did not see how you died in that round? Just say "replay that" and see the last 30 seconds of your gameplay in a little overlay box that does not disturb your game.
|
||||
|
||||
## Configuration
|
||||
|
||||
Before starting, configure the application by creating a `config.json` file:
|
||||
|
||||
1. Copy the example configuration:
|
||||
```sh
|
||||
cp config.example.json config.json
|
||||
```
|
||||
2. Edit `config.json` to customize your settings:
|
||||
- **directories.watch_dir**: Where OBS saves replay buffers (e.g., `E:\OBS`)
|
||||
- **directories.moveto_dir**: Where processed replays are stored (default: `./replays`)
|
||||
- **server.port**: HTTP server port for serving video files (default: `8000`)
|
||||
- **server.websocket_port**: WebSocket port for Electron communication (default: `8001`)
|
||||
- **replay.length_seconds**: Duration of replays in seconds (default: `20`)
|
||||
- **replay.default_location**: Overlay position (`center`, `top_left`, `bottom_left`, `top_right`)
|
||||
- **replay.default_size**: Overlay size from 1 (smallest) to 10 (largest)
|
||||
- **voice_recognition.enabled**: Enable/disable voice commands (default: `false`)
|
||||
- **hotkey.enabled**: Enable/disable hotkey (default: `true`)
|
||||
- **hotkey.key**: Hotkey to trigger replays (default: `pagedown`)
|
||||
- **commands**: Customize voice command phrases for activation, stop, replay last, and clear
|
||||
|
||||
## Start the thing
|
||||
|
||||
1. Clone this repository.
|
||||
2. Install Electron globally (if you don't have it):
|
||||
2. Configure the application (see Configuration section above).
|
||||
3. Install Electron globally (if you don't have it):
|
||||
```sh
|
||||
npm i -g electron
|
||||
```
|
||||
3. Open multiple terminals and run the following commands:
|
||||
4. Open multiple terminals and run the following commands:
|
||||
1. **Terminal 1:** Start the Python server that listens for commands and communicates with OBS & the Electron app:
|
||||
```sh
|
||||
python main.py
|
||||
@@ -22,23 +44,26 @@ Did not see how you died in that round? Just say "replay that" and see the last
|
||||
```sh
|
||||
npx electron electron-main.js
|
||||
```
|
||||
3. **Terminal 3:** Serve the replays folder on port 8000:
|
||||
3. **Terminal 3:** Serve the replays folder on the configured port (default 8000):
|
||||
```sh
|
||||
npx serve ./replays -p 8000
|
||||
```
|
||||
|
||||
## Usage
|
||||
1. Make sure OBS is running with a scene that has your game or desktop.
|
||||
2. Make sure the everything is running.
|
||||
2. Make sure everything is running.
|
||||
3. Make sure you have the WebSocket server configured correctly, check the code or change the port in OBS to 4455 and disable authentication.
|
||||
4. Make sure the Replay Buffer is enabled in OBS and set to the same length as in `main.py` (default 30 seconds), else ffmpeg will clip to the duration set in the `main.py` script.
|
||||
5. Say "replay that" (you can change the hotword in `main.py`) to save the last X seconds of gameplay.
|
||||
4. Make sure the Replay Buffer is enabled in OBS and set to the same length as configured in `config.json` (default 20 seconds), else ffmpeg will clip to the duration set in your configuration.
|
||||
5. Press your configured hotkey (default: Page Down) or say "replay that" to save the last X seconds of gameplay.
|
||||
|
||||
## Other commands
|
||||
- **Activation:** Say "instant replay" to save the last X seconds.
|
||||
- **Stop:** Say "stop replay" to hide the replay overlay.
|
||||
- **Replay Last:** Say "replay last" to show the most recent replay.
|
||||
- **Clear Replays:** Say "clear replays" to delete all saved clips.
|
||||
- **Hotkey Toggle:** Press your configured hotkey (default: Page Down) to trigger or stop replays
|
||||
- **Activation (Voice):** Say "instant replay" to save the last X seconds
|
||||
- **Stop (Voice):** Say "stop replay" to hide the replay overlay
|
||||
- **Replay Last (Voice):** Say "replay last" to show the most recent replay
|
||||
- **Clear Replays (Voice):** Say "clear replays" to delete all saved clips
|
||||
|
||||
All voice commands can be customized in `config.json`.
|
||||
|
||||
## Requirements
|
||||
- OBS Studio with a working Websocket Server
|
||||
|
||||
Reference in New Issue
Block a user