Viktor's blog

Spotify Social Jukeboxes

October 23, 2018

My take on the current available “social jukeboxes” out there

Having participants at a party voting for songs to be played is a common app idea that is often mentioned, or silently thought about, when IT students have parties and social events with music. The party’s playlist can often be handled by a tyrant who has a very specific taste in music. It can default to some bland music because nobody is willing to risk their reputation as a music connoseur by playing their guilty pleasure songs. With Spotify’s queue, a carefully crafted queue can be ruined by one well-meaning contributor clicking the wrong button and erasing the queue. The solution is, an idea as old as the good old jukebox, a computer program selecting songs in order based on input by the participants at the party. What will follow is the apps and websites doing that function that I know about, and concluding remarks about what yet another such service can do better and differently.

Festify

Festify is a web app that uses Spotify’s Web Playback SDK to play tracks directly in the party host’s browser. Participants join by visiting a url or entering the party name on the landing page. It has a nice UI, a search function, fallback playlists, and more. I have tried it without discovering any bugs, which together with having the basic features locked in, a clean UI, and no-installation setup, makes it the best social jukebox app out there, as far as I can tell. The source code is openly available on Github, and is maintained by what appears to be three German students. They don’t work full time on it, but have been working steadily for several years, doing a great job. They have an active account on Twitter, and have captured the top spot on Google search results when searching for “vote songs spotify”. The technology stack is based on various front-end web frameworks and libraries. The web app itself is in React and Typescript, while authentication and global state (the queue and votes) are handled by Google Firebase. The main weakness of Festify is that it’s only available on a desktop device, as the media playing protocol for using Spotify in the browser is not supported on mobile browsers. While it’s extremly easy to get started by only using the browser, I suppose there are some situations where people would prefer to play music from their smart phone, Chromecast, or other device. Further, I can only think of improving their markering and promotion, as their product is quite solid. But that #1 spot on Google will probably take them a long way if the concept of social jukeboxes goes viral.

Mubo

Mubo is downloadable on the app stores as an app that implements the Spotify jukebox functionality on a smart phone. Once installed, it works seamlessly. The UI is nice, it has the basic functions pinned down, and I did not discover any bugs. I don’t know anything about the developers or technology used, but I suppose they use the Spotify SDK for Android and IOS. The drawback is of course that the host and participants need to download an actual app from the app store to their device before they can use it. I think something like this might have worked in 2012, but having a large amount of people download an app for a niche use case is not something I think works anymore. If only the host needs to download it, it might actually work, and all they need to do is have a global state in a back-end and a simple web client for that to work. My guess is that Mubo, like several other apps that do the same thing are not under active development.

OutLoud

Outload is available as an app on Android and IOS. The party host needs to install the app to play from their phone, and it does not support playing from other sources. The participants can join through the browser which works on any platform. It supports using both Spotify and Soundcloud as sources from music, which gives Outloud an advantage over its competitors. I did not, however, find the songs I was looking for when trying to search with Soundcloud in the web interface, so I guess either Soundcloud’s search API is limited, or there is a bug in Outloud. It is also the most advances app I tried as there are many options for the party host to configure their party. I can turn on downvotes, choose a custom url, only allow participants in the vicinity to join (via geolocation), disable explicit songs … I consider this too much, especially as you needed to select an url and party name before starting it. The UI is quite intuitive and easy to understand, but it was too slow on my kinda shitty Android phone. In addition to the unresponsivness due to lag, I think it lacks a polished finish that makes some apps just look attractive. The developers seem to have focused too much on the technical, and not been able to create a really good user experience in my opinion. The technical parts are quite good, though, and apart from lag, I could not find any bugs. At the first glance, I thought the project was abandoned, but they made a recent Facebook post, and the app was updated recently in the Play Store. The developers seem to know what they’re doing, and with a better user experience and some marketing, they might be the superior option.

Others

Just from a DuckDuckGo search, I found several clones who all are smart phone apps. Jukebox for Spotify and Jukestar both look to be abandoned, and it doesn’t seem like they offer anything the other apps can’t do better.

What’s missing?

What’s missing is something that is as easy to set up as Festify, and that works on all devices, especially on smart phones. I think being share the party as fast and seamlessly as possible is very important. You don’t want to ask everybody in your party to enter a url, then join ‘Luke’s party’, and all that. So just a QR code, sharing links on messenging apps, invitations with push notifications, is the way to go for quickly sharing. The UI should probably be very simple, as people at a party often have more interesting things to do than learning how to use various “cool” features in a new app.
As long as the encrypted media standard does not work on mobile, the only way to be playing from a smart phone is by installing an app or managing the queue and playback in the cloud. This is what I’m doing in my app, tentatively called Votify, but the name needs to change, as the Google real estate is taken for searches on “votify”. I have a server running that sends commands to the Spotify Web API, which again controls the party host’s currently playing Spotify instance, whether it be on a desktop computer, a smart phone, on Chromecast, or whatever. This makes it somewhat error prone and hard to program, but offers great flexibilty in that it basically works everywhere without needing to download anything. Both the host and participants start, vote and manage their party in the browser, mobile or desktop work equally well.

Afterthoughts

A quick search on DuckDuckGo actually bears witness to the inviability of social jukebox apps. The top 10 results show many abandoned projects, or apps with few users, so I’m not convinced that the social jukebox idea is actually something enough people want to use. It is, however, quite fun to work with, and people who hear about the idea often say it’s a good one. So there’s that.


Written by Viktor Frede Andersen. You can reach me on Twitter @vikfand