Extracts the currently playing Artist/Title from Virtual DJ and saves it to a text file, or sends it to a website.
Virtual DJ by Atomix Productions is a fantastic piece of software for DJing and VJing. It's also fairly extensible, if you understand code and scripting, there's very little you can't do with it.
Case in point here, if you need to know what the current song is, in order to send it to an RDS system, or perhaps display it in OBS, there isn't a built-in way to extract that information in text form. So I put together this app that retrieves it from "History" and sends it to a couple of possible destinations.
By adding a checkmark and choosing a filename, you can have the current song always saved to a text file. When the song updates, so does the text file. If you use OBS for streaming, you can add a text element to "Read From File" (and enable Chat Log mode), point it at this file, and it will always display the current song on your stream!
There is also the option to "Open URL with Song." This is useful for some radio station systems that need to update artist/title information by visiting a specially crafted URL. This is also helpful if, say, you want to update the currently playing song on your website, you'll just need an outward-facing script to do it. Please note that this function in TitleStreamer will NOT open a browser window, the URL is visited invisibly via cURL. You can use the %song% variable in your URL and it will be converted to the URLEncoded version of your song title. For example, if you're playing "Shut Up & Drive" by Rihanna, and the URL you provide is https://updatemysite.com/songupdate.php?password=1234&title=%song%, then invisibly, the program will open the URL https://updatemysite.com/songupdate.php?password=1234&title=Rihanna%20-%20Shut%20Up%26%20Drive
Keep in mind, this program will only read the song once it's been marked in Virtual DJ's "history." By default, this is after 45 seconds of playback. You can reduce this value by changing the HistoryDelay value in Virtual DJ's options. I find 30 seconds works well for me. Also, make sure Record History is turned on or this won't work at all.