Feature Overview¶
What's Now Playing (WNP) is a free, open-source application for Windows, macOS, and Linux that reads live track data from DJ software and sends it anywhere your audience can see it: overlays, chat bots, Discord, text files, and more.
Setup¶
On first launch, WNP automatically detects which DJ software you are using, with no manual source selection required for most setups. Software-based sources (Serato, Traktor, Virtual DJ, etc.) are detected from files they write to disk. Hardware-based sources (Denon StageLinQ) are detected from the network. The detected source is shown in Core Settings → Source and can be changed at any time.
Two-Computer Setup¶
Many DJs stream from a dedicated PC while running their DJ software on a separate laptop. WNP is built for this. The Remote Output feature automatically sends live track data from the DJ machine to the streaming machine over the local network.
- No IP addresses to configure; uses Bonjour/Zeroconf auto-discovery
- No port forwarding needed; works on any home or venue network
- Works across platforms (DJ laptop on macOS, streaming PC on Windows, or any combination)
- Install WNP on both machines, point the streaming machine at the DJ machine, and it just works
See Remote Output for setup details.
Input Sources¶
WNP reads track data directly from DJ software and media players. No manual updates required.
DJ Software¶
- Serato DJ — full library support, crate/playlist queries, streaming services, artist search
- Traktor — database integration with background refresh, artist search
- Virtual DJ — history and playlist database with background refresh, artist search
- Denon DJ (StagelinQ protocol) — direct network connection to supported hardware
- djay Pro — track detection and metadata
- DJUCED — database integration, smart playlists, artist search
- JRiver Media Center — via network API
- MIXXX — via MPRIS2 (Linux) or Windows Media API (Windows)
Protocol-Based Sources¶
- Icecast — receives metadata from butt, Traktor, MIXXX, and other Icecast-compatible streaming sources
- Remote API — HTTP-based input for MegaSeg, Radiologik, and other software with HTTP output support
- M3U playlists — file-based input for any software that writes M3U files
System-Level Sources¶
- Windows Media API — reads from Spotify, Amazon Music, SoundCloud, Windows Media Player, and any other Windows media application
- MPRIS2 (Linux) — reads from VLC, Rhythmbox, Spotify, and any MPRIS2-compatible player
Vinyl, CDJs & Analog Mixers¶
- WNP EarShot — companion app for macOS, iOS, and watchOS that uses Shazam-based audio identification to detect tracks playing on vinyl decks, standalone CDJs, Rekordbox, and analog mixers, then sends them to WNP automatically over the local network. No software integration with the hardware required.
- Always-Accept mode — enabled by default. When EarShot identifies a track it overrides the active DJ software source automatically, with no manual source switching required mid-set. Can be disabled for setups where EarShot should only be used as the primary source.
Remote WNP Instance¶
- One WNP instance can receive track data from another WNP instance over the network, the standard solution for a two-computer DJ/streaming setup. Supports auto-discovery via Bonjour/Zeroconf.
Track Recognition¶
For tracks that are untagged or missing metadata:
- AcoustID — audio fingerprinting to identify tracks by sound
- MusicBrainz — look up detailed track and artist metadata by fingerprint or ID
Artist Data Enrichment¶
WNP can automatically fetch additional artist information to enhance displays:
- Discogs — artist biographies and images
- TheAudioDB — artist biographies, images, and album art (free tier available without API key)
- FanArt.TV — high-quality fan art, artist logos, and background images
- Wikimedia / Wikipedia — artist biographies and images
- Last.fm — album art lookup
- MusicBrainz — artist website links, IDs, and relationship data
Artist biographies are deduplicated per session; the same bio will not be shown twice during a stream.
Outputs and Display¶
OBS Integration¶
- OBS WebSocket — push track data directly to OBS text sources in real time
- Browser Sources — serve custom HTML overlays via the built-in web server for display in OBS or any browser
- OBS Scene Export — generate a ready-to-import OBS 28+ scene collection JSON file from the system tray ("Export for OBS…"). Select which browser sources to include, choose the template for each, set dimensions and layout hints (fill, top, bottom, left, right, center), and preview each template before exporting. The file is saved directly to the OBS scenes directory (auto-detected per platform) so it appears in OBS immediately without manual file copying.
Web Server¶
WNP includes a built-in web server that serves customizable browser-based overlays using the Jinja2 template engine. Supports:
- Real-time updates via WebSockets
- Full HTML, CSS, and JavaScript customization
- 42 bundled OBS browser overlay templates, including 7 animated WebGL/canvas effects
- Access to all track metadata as template variables
- Remote control APIs
Text Output¶
Write track data to plain text files for use with any software that can read a text file, including older OBS setups and streaming tools.
Set Lists¶
Real-time set list generation as tracks are played, available as a template variable and exportable.
Chat Bot Integration¶
Twitch Bot¶
- Automatic track announcements when tracks change
- 36 bundled announcement and response templates for Twitch, Kick, and text output
- Configurable announcement templates with full Jinja2 support
- Chat commands for viewers:
!track,!artist,!album, and more - Contextual help via
!track help - Channel point redemption support
- Automatic stream title updates on each track change using a Jinja2 template
- Per-command permission controls (broadcaster, moderator, subscriber, VIP)
- Cooldown timers per command and per user
Kick Bot¶
- Automatic track announcements when tracks change
- Configurable announcement templates
Discord Bot¶
- Track announcements posted to a Discord channel
- Optional cover art in announcements
- Rich Presence support (independently toggleable from Bot Mode)
Audience Engagement¶
Guess Game¶
A Twitch chat-based guessing game where viewers try to identify the current track. Features include:
- Viewers guess artist and/or title via chat commands
- Configurable scoring and timing
- Leaderboards and personal stats accessible via chat commands
- Real-time OBS overlay showing game state
- Integration with the whatsnowplaying.com online leaderboard
- System tray toggle to enable or disable at runtime
Track Requests¶
Viewers can request tracks directly from Twitch chat:
- Fuzzy matching handles typos and natural language (e.g. 'anything by Nine Inch Nails')
!hasartistcommand to check if an artist is in the library- Supports searching the full library or specific crates/playlists
- Channel point redemption support
- Moderation queue with approve/reject controls
- Animated GIF/meme responses via Klipy
Metadata Processing¶
Template System¶
All outputs use the Jinja2 template engine with access to a rich set of template variables including artist, title, album, artwork, biographies, MusicBrainz IDs, timestamps, and more.
Filters¶
Clean up track metadata before output:
- Remove unwanted text from titles (e.g. "(Radio Edit)", "feat. ...", "- Original Mix")
- Configurable via the UI with a simple rule system
- Works across all outputs simultaneously
Track Skip¶
Automatically skip tracks matching configurable metadata rules. For example, skip any track with "SKIP" in the genre field.
Multi-Value Fields¶
Handles multi-value metadata fields (multiple artists, multiple ISRCs) across MP3, FLAC, M4A, and AIFF formats.
Charts and Analytics¶
What's Now Playing Charts is an optional community service that tracks what DJs are playing across streams. It is free, requires no account to start, and is built into WNP with no configuration needed.
- WNP automatically submits track data using an anonymous API key generated on first run, with no account required to contribute
- Create an account (via Twitch or Kick login) to unlock a public DJ profile at
whatsnowplaying.com/profile/(your-username)showing: - Play statistics: total plays, unique songs, and unique artists
- Top 10 tracks and artists with play counts
- Genre profile: auto-generated breakdown of your sets by genre and subgenre
- DJ setlists from recent streams, downloadable in multiple formats
- Recent track feed with artist, album, and timestamp
- Replay: year-in-review analytics for your streams
- Community charts showing top tracks and artists across all streamers
- Online Guess Game leaderboard integration
Platform Support¶
- Windows 10 and later
- macOS 11 (Big Sur) and later
- Linux — native binary builds available
Configuration and Portability¶
- Export and import configuration as JSON for moving between systems
- Home directory paths are automatically remapped on import
- Stale legacy configuration keys are automatically cleaned up on upgrade
References¶
- Template Variables — full list of available metadata variables
- Input Sources — detailed setup for each DJ software integration
- Output & Display — OBS, web server, text output, and set lists
- Artist Data — Discogs, FanArt.TV, TheAudioDB, Wikimedia
- API Reference — web server REST API