I gotta write this down this time around. I did a post earlier on how I got my butt to talk to my icecast. That was Thrillouse Radio V0. This next iteration is hopefully going to be more reliable and functional. I have a wireframe written down for a Guest DJ CPL admin page. During the last iteration I realized the hardest thing for me with the radio station was keeping it broadcasting with content. I would make incredibly large playlists, like ones that were 12:42 hr:min long. BUt either the server would go down. A service would crash. Or I’d be doing something unrelated on the server to interrupt it and fuck it all up.
So this one has to be more independent, free from my fuckery, and hopefully playing music 99% of the time it’s running. To do this I’m going to use the same tools as before. But I’m going to add in a few more and try to expand the playback capabilities to include YouTube, Spotify, Google Play Music, Soundbutt, Mixbutt, and others. I also wanna give the option to either upload a song or a mix that will automatically get queued to play after the last song in the current playqueue. That way Guest DJs have more control over the radio station, and I get a little help with peppering the station with interesting and new content.
It also needs to be easily playable from any of my devices and possibly capable of syncing up between two separate devices playing in separate rooms.
(Kind of like a PA system) There are some systems that can already do things like this, like the SONOS lineup of bluetooth speakers and Google Chromecast. While this may make it much easier to accomplish, I’m going to have to take a stab at trying to do it for free or on the cheap. Fuck that I’m going to just use Chromecast whenever I require that sound-in-every-room feature.
I’ve been trying to use Spotify for 3 years, but I’ve been too much of a stubborn bitch to actually devote too much time to it. The thing that drove me away at first was the commercials. But I have since bought and paid for a family spotify music subscription. And I still don’t use it… My sisters do however, so it’s werth.
OK, after re-reading my original post about this system, I realize I can definitely do this now:
I can change songs with about ~1-2 sec delay in my home. I want to try VPNing into my network through my phone’s cellular data network sometime and try controlling the radio playlist from the wide world. But that’s a project for another day.
The thing I didn’t have before that I have now is VPN. I was able to set it up easily with the help of my router. Now I definitely know I could change the songs on a foobar2000-powered internet radio stations from anywhere just by VPNing into my network and then using the foobar2000 controller app on my android phone. God help me if I ever switched back to an iPhone now. So many silly little apps on the Android store that just aren’t in the Apple App Store.
And before, I was trying to get butt to update with my foobar2000 player’s metadata, so that the users logging into the IceCast inet radio station would be able to see the current song title and artist.
I need to figure out how to get my butt program to read the now-playing metadata associated with foobar2000, if that’s even possible… I can’t wait to start polluting my Google Search history with “now playing F.U.B.A.R. butt plug-ins”…
So, this time around, I could read into the foobar2000 apis and just construct a webpage that has icecast information AND the metadata info grabbed from a helper service reading the metadata from foobar2000. And I figure that webpage could also have an authentication system baked-in that allows authorized DJs to modify the queue, sneak songs in, and lock the playlist into a protected state where other users of the Ampache app couldn’t modify it. I’ve also thought about implementing a Twitter skipping system that would skip a song based on the number of #skip votes tweeted at a @radiostationhandle where the number of votes is one more than half the number of current listeners. Kind of a mouthful, kind of a lot of code, kind of not going to happen for a while…LOL!