Last summer, chaos urupted on Twitch when users were suddenly bombarded with copyright infringement notices for content uploaded during 2017 and 2019.
That initial batch was the work of the RIAA and in October 2020 the problems were back again when the music industry group fired off a second wave of complaints.
In May, Twitch sent out an email noting that it had received another batch of DMCA takedown notices from music publishers, noting that the majority targeted streamers listening to background music while playing video games. But what if it was possible to stream copyrighted background music to users on Twitch, without receiving DMCA notices. And ensuring artists also get paid?
Achieving the Impossible, Simply
Unless users (or indeed Twitch) obtain licenses to stream mainstream music to the public, DMCA notices are always going to be a problem. However, with some lateral thinking, developer Peter Frydenlund Madsen, known on Twitch as Pequeno0, has come up with an elegant solution that will be useful to millions of users.
Pequeno0’s solution is SpotifySynchronizer, a Twitch extension that synchronizes the streamer’s Spotify with the viewer’s Spotify, so that stream viewers can listen to the same music as the streamer, at exactly the same time.
The beauty here is that no copyrighted tracks are distributed or recorded with or even without permission. The user simply connects to the streamer’s Spotify using the extension, executes a ‘force sync’ if necessary, and then listens to exactly the same music as the streamer, at exactly the same time, on their own machine. And because the music is being played on Spotify, the artists get paid.
SpotifySynchronizer, GTA V RP and Twitch
“I’ve watched a lot of GTA V RP on Twitch, and they used to play a lot of music, which fit the RP,” Pequeno0 informs TorrentFreak.
“When the DMCA strikes hit, they were hit hard. So it was actually with them in mind that I started the project. So I talked to a friend of mine, and we came up with this idea of synchronizing music in a way that would still pay the artists.”
Pequeno0 says he uses Spotify himself and since it’s a widely used service and accessible to millions – not to mention having a public API that is easy to use – the decision to integrate the platform was obvious. It was not without technical issues, however.
Twitch and Spotify – Please Play Nicely
“Getting to understand the Twitch API together with the Spotify API was problematic to start with. For example, it’s not possible to embed an iFrame in the Twitch extension. But usually logging in with Spotify happens in an iframe with OAuth,” Pequeno0 says.
“I had to make a popup, and figure out how to send back the results of this popup to the extension to get the token to use for Spotify. This might be changed in the future to a better system to support more platforms.”
Furthermore, Pequeno0 says that Spotify doesn’t provide any notification service when a song is changed. This means he has to ask Spotify which song is currently playing if the streamer changes tracks mid-song.
“I could have made a check every few seconds, but the Spotify API also has rate limitation, so I decided against it. To overcome these issues, I had to make the ‘Force Sync’ button. It basically asks Spotify what the streamer is currently playing, and updates it with the server.”
The developer says he doesn’t know how much time he’s spent on the project but does spend some money on a server to store a minimal amount of data. This is to make sure that viewers who log in when a track is already being played can discover the name of that track without having to communicate with the streamer’s part of the extension.
The Future: Maybe More Music Services
While Pequeno0 has been working on SpotifySynchronizer for some months now as a side project, he’s not ruling out more development. This will largely depend on how many people use the extension but he does have some early plans.
“If the extension gets very popular, it could be extended to use even more services, and maybe even lookup songs on different music services, so the viewer/streamer could use different services but listen to the same songs,” Pequeno0 explains.
In the meantime, the developer is providing instructions for those interested in testing SpotifySynchronizer on both the streaming and receiving ends. He promises there will be no DMCA notices for either.
1. The streamer installs the Extension and adds the panel to the channel.
2. Streamer starts Spotify, then starts the Live-Config panel found in the Creator Dashboard -> Stream Manager -> SpotifySynchronizer, then logs in with Spotify through the popup. The streamer then keeps this Live-Config panel open, as this is what does the synchronization.
3. If the streamer changes music mid-song, the “Force Sync” button has to be pressed to update it for the viewers.
4. Viewer opens Spotify and starts any song. This is a requirement, as the Spotify API can’t start playing if it doesn’t know which device is playing music.
5. Viewer logs in with SpotifySynchronizer below the stream on the streamer’s channel. If the viewer’s Spotify does not change to the song being played by the Streamer, the ‘Force Sync’ button can be used on the viewer’s side to get the currently playing song.