Skip to content

About

Real-time Windows Now Playing + Audio Visualizer data over WebSocket (JSON). Perfect for OBS overlays, dashboards, and web apps.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽง NowPlaying.WebSocket

Real-time Windows Now Playing data + Audio Visualizer JSON over WebSocket

NowPlaying.WebSocket is a lightweight Windows application that:

  • Streams Now Playing media data
  • Streams real-time Audio Visualizer data (real FFT-based frequency analysis, not a fake amplitude sampler)
  • Exposes everything via local WebSocket (JSON)
  • Works as a standalone desktop media controller

App Main ScreenShots

Settings UI

Flyout UI

๐Ÿ”ฅ Why this project exists

Most tools can show Now Playing.

Very few provide:

  • Real-time Audio Visualizer data
  • Clean JSON over WebSocket
  • Easy integration for browser apps, overlays, or OBS

This app focuses on all of them together.


โšก Core Features

๐ŸŽต Real-Time Audio Visualizer (WebSocket)

The main feature.

The app streams live audio analysis data, computed with a real FFT (not a time-domain approximation):

  • Volume level (mono + separate Left/Right channel levels)
  • Bass / Mid / Treble
  • 16-band frequency spectrum array

Perfect for:

  • Audio visualizers
  • Reactive UI
  • OBS browser sources
  • Web-based overlays
  • Stream tools

๐Ÿ“ก Endpoint: ws://localhost:27871


๐ŸŽง Now Playing Data (Live JSON)

Real-time media information:

  • Title
  • Artist
  • Album
  • Playback state
  • Timeline (position / duration)
  • Album art URL

๐Ÿ”Š Example: Audio Visualizer

{
  "type": "audioVisualizer",
  "schemaVersion": 1,
  "appVersion": "6.8.26",
  "volume": 35,
  "volumeLeft": 33,
  "volumeRight": 37,
  "bass": 59,
  "mid": 43,
  "treble": 40,
  "spectrum": [50, 36, 42, 40, 41, 38, 37, 42, 38, 41, 35, 30, 22, 15, 8, 2],
  "updatedAt": "21:18:20"
}

๐ŸŽต Example: Now Playing

{
  "type": "nowPlaying",
  "schemaVersion": 1,
  "appVersion": "6.8.26",
  "title": "Come Together - Remastered 2009",
  "artist": "The Beatles",
  "album": "Abbey Road (Remastered)",
  "playback": "Playing",
  "isPlaying": true,
  "positionSec": 74,
  "durationSec": 259,
  "positionText": "1:14",
  "durationText": "4:19",
  "timelineVisible": true,
  "timelineState": "interpolating",
  "timelineReason": "trusted.native.timelineEvent",
  "albumArtUrl": "http://localhost:27871/album-art",
  "updatedAt": "21:18:20"
}

All JSON fields use camelCase. Every message also carries schemaVersion (a protocol version number) and appVersion (the running app's version) โ€” check schemaVersion if you're building an integration that needs to detect an outdated/mismatched client.

๐Ÿ–ฅ๏ธ Desktop App Features

Not just a WebSocket server โ€” a full Windows app.

๐ŸŽฎ Media Controls
  • Play / Pause
  • Next / Previous
  • Mute / Unmute
  • Volume control (slider + mouse wheel)
๐Ÿงฉ Smart UI & Tray
  • Tray icon with quick access
  • Click to open flyout panel
  • Lightweight, always accessible
๐Ÿ”„ Built-in Updates
  • Checks for new versions automatically
  • One-click update from the About panel โ€” downloads, verifies, and installs the new version for you
  • Update status is echoed as a small banner when it's relevant
โœจ Quality of Life
  • Click Title / Artist / Album โ†’ copy to clipboard
  • Always on top (optional)
  • Run at startup
  • Start minimized to tray (no visible flash on launch)
  • Dark theme
  • Hide tray icon
๐Ÿ”Š Audio Capture & Devices
  • Automatic loopback capture
  • Manual device selection:
    • Speakers
    • Headphones
    • Microphones (WASAPI)
๐ŸŽš๏ธ Visualizer Interval

Control update speed:

  • Lower = smoother animation
  • Higher = lower CPU usage

Useful for fine-tuning real-time visualizers.

๐Ÿ–ผ๏ธ Album Art: http://localhost:27871/album-art

Use directly in:

  • <img>
  • Canvas apps
  • Overlays

๐ŸŒ Built for Developers

Designed for:

  • Frontend developers
  • OBS users
  • Stream tool creators
  • Dashboard builders

๐ŸŒ Examples (Ready-to-Use HTML)

This repository includes ready-to-use HTML examples that connect to the WebSocket server and visualize real-time data.

๐Ÿ‘‰ Just open them in your browser while the app is running.

๐ŸŽต Basic Now Playing

  • Displays title, artist, album
  • Shows playback state
  • Timeline & progress bar
  • Live JSON stream

๐Ÿ“„ File: examples/basic-nowplaying.html

โšก Advanced Audio Visualizer

  • Adaptive bars
  • Beat punch effect
  • Radial visualizer
  • Smoothing & gain control

๐Ÿ“„ File: examples/advanced-plus-audio-visualizer.html

๐Ÿ’ก Use Cases
  • Audio Visualizer (web)
  • OBS browser source
  • Desktop widgets
  • Music dashboards
  • Stream overlays
  • Web-based music UI

๐Ÿ“ฆ Download

Latest version: Releases

๐Ÿ” Privacy

  • No personal data collected
  • No media content sent externally
  • Everything runs locally

Optional: Anonymous usage analytics (can be disabled)

โ˜• Support

If you find this useful: "Buy Me A Coffee"

โš ๏ธ Notes

This repository contains compiled application only. Source code is not included.

๐Ÿ“„ License

Free for personal use. Commercial use requires permission.

About

Real-time Windows Now Playing + Audio Visualizer data over WebSocket (JSON). Perfect for OBS overlays, dashboards, and web apps.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors