Various improvements

This commit is contained in:
Joey Yakimowich-Payne 2026-01-07 15:21:16 -07:00
commit c0bc2298cc
8 changed files with 232 additions and 50 deletions

103
README.md
View file

@ -6,6 +6,7 @@ This app runs a **single local web server** that hosts multiple streamer widgets
- **Now Playing**: Display currently playing music from Windows Media
- **Live Chat**: Display Twitch and YouTube live chat with emote support (FFZ, BTTV, 7TV)
- **Viewer Count**: Display live viewer count from Twitch and/or YouTube
### Run (dev)
@ -18,15 +19,105 @@ Then add as OBS Browser Sources:
- **Now Playing**: `http://127.0.0.1:8765/widgets/nowplaying/`
- **Live Chat**: `http://127.0.0.1:8765/widgets/livechat/`
- **Viewer Count**: `http://127.0.0.1:8765/widgets/viewercount/`
- **Configuration**: `http://127.0.0.1:8765/config`
### Live Chat Setup
---
See [CHAT_SETUP.md](CHAT_SETUP.md) for detailed instructions on:
- Connecting to Twitch and YouTube
- Setting up OAuth authentication
- Configuring emote providers (FFZ, BTTV, 7TV)
- Customizing the chat widget
## Widget Documentation
### Now Playing Widget
Displays the currently playing song from Windows Media with album art.
**Features:**
- Real-time updates via WebSocket
- Album art display with animated bubble fallback
- Auto-hide when nothing is playing
- Marquee scrolling for long titles
- Playing/Paused status indicator
**OBS Setup:**
- URL: `http://127.0.0.1:8765/widgets/nowplaying/`
- Recommended size: 400×150 px
- Transparent background
**Note:** This widget reads from Windows Media Session (works with Spotify, Windows Media Player, browsers playing media, etc.)
---
### Live Chat Widget
Displays Twitch and YouTube live chat with emote support.
**URL Options:**
| Parameter | Values | Default | Description |
|-----------|--------|---------|-------------|
| `theme` | `dark`, `light` | `dark` | Background style (dark is transparent) |
| `direction` | `down`, `up` | `down` | Message flow direction |
| `fontsize` | `small`, `medium`, `large`, `xlarge` | `medium` | Text and emote size |
| `hidetime` | `true`, `false` | `false` | Hide message timestamps |
**Example URLs:**
```
# Default (dark, scrolls down)
http://127.0.0.1:8765/widgets/livechat/
# Light theme for light backgrounds
http://127.0.0.1:8765/widgets/livechat/?theme=light
# Large font, no timestamps
http://127.0.0.1:8765/widgets/livechat/?fontsize=large&hidetime=true
# Bubbles up (newest at bottom, anchored)
http://127.0.0.1:8765/widgets/livechat/?direction=up
```
**OBS Setup:**
- Recommended size: 400×600 px
- Check "Shutdown source when not visible" for performance
**Emote Support:**
- Twitch native emotes
- FrankerFaceZ (FFZ) - global + channel
- BetterTTV (BTTV) - global + top shared + trending + channel
- 7TV - global + top + trending + channel
See [CHAT_SETUP.md](CHAT_SETUP.md) for OAuth setup instructions.
---
### Viewer Count Widget
The viewer count widget displays your live viewer count from Twitch and/or YouTube.
**URL Options:**
| Parameter | Values | Default | Description |
|-----------|--------|---------|-------------|
| `theme` | `dark`, `light`, `minimal` | `dark` | Widget background style |
| `fontsize` | `small`, `medium`, `large`, `xlarge` | `medium` | Text size |
| `hidelabel` | `true`, `false` | `false` | Hide "viewers" label |
| `livedot` | `true`, `false` | `false` | Show animated red live indicator |
| `interval` | Number (seconds, min 10) | `30` | Refresh interval |
**Example URLs:**
```
# Default
http://127.0.0.1:8765/widgets/viewercount/
# Large with live dot
http://127.0.0.1:8765/widgets/viewercount/?fontsize=large&livedot=true
# Minimal for clean overlay
http://127.0.0.1:8765/widgets/viewercount/?theme=minimal&hidelabel=true
# Compact with fast refresh
http://127.0.0.1:8765/widgets/viewercount/?fontsize=small&interval=15
```
**Note:** The widget uses the Twitch channel and YouTube video ID configured in `/config`. Requires OAuth login for API access.
### Build a standalone `.exe` (PyInstaller)