Bckgrnd Tgthr

app screenshot

Bckgrnd Tgthr is a lightweight, few-to-no-features web service that allows multiple users to listen to YouTube videos at more-or-less the same time. The terrible name and the lack of features are intentional, and are both inspired by Tumblr.

Because I've posted the code on Glitch, anyone can fork the site and run their own version; sharing their unique version of the service with whomever they like.

Why? There's a bunch of these and they're better than this one.

There's a group of us, mutual followers on Tumblr, who share music if/when the mood strikes. I got the itch to share some songs in 'real time' and allow Tumblr pals to do the same. (I have previously fooled around with Shoutcast, which is fun but one-way.) There are dozens of sites/apps/services that allow people to do this kind of sharing, but none of them seemed quite right for my use case. I'm interested in a very lightweight, 'drop in/drop out' experience: no logins, no software downloads, no premium music subscriptions. Just YouTube videos, like we share on Tumblr -- but synchronized.

And not even tightly synchronized! There seem to be plenty of "watch videos with your long-distance pal" sites too. Necessary if you're trying to watch a movie together - everyone should flinch at the same time when the monster jumps out of the shadows - but that's much more than my use case calls for.

Here's what I mean, and why I put a vowel-less 'background' in the name. I listen to music all day while I work -- just background music, not something I'm actively focused on. If I need to concentrate, I'm playing something quiet -- ambient music from soma.fm probably -- but if I'm just bashing away, I'll have Tumblr on my second screen and work my way through songs that mutuals have posted over the last day or so.

This is just a slightly more expanded version of that. Background music, shared loosely across workplaces (or wherever.)

How do I use this? What is a 'YT id'?

YouTube videos have unique IDs. The easiest way to grab one is to search for the video you want, and copy the ID from the end of the URL. If it's not at the end, study the URL; you'll find it after the "v=". (Depending on how you navigated around the YT site, there might also be "list=", or "index=", or other codes in there. You're looking for the "v=", every time.)

gif of copying ID from URL and pasting into webpage

What about YouTube ads?

Cost of doing business, I guess. Bckgrnd Tgthr adds a 5-second buffer between songs, so if you get a 5-second ad, or click the Skip Ad button after 5 seconds, it should work fine. Hypothetical: You're away from your desk when a new song comes on and you are served a 30-second ad. The song plays. You're roughly 25 seconds behind other listeners, and will get the last 25 seconds of the song clipped when the server pushes the next song to everyone.

This is what I mean by no-featured. You can definitely find a site that will sync you up perfectly. This is not that. But I also don't want your Facebook details. Or even a login name, for that matter.

What else?

iOS/Safari demands user action before playing a video. Makes total sense and I'm glad that's a feature of my phone's browser, but it makes this app a little wonky. I think it'll work fine, if you actively start the YouTube player as soon as the page loads. The thing's only been tested on a Mac (Chrome, Firefox, and Safari) and an iPhone. Feedback about other devices welcome.

I did tack on a chat window -- usage totally optional -- but even it is no-featured. Two or more people can have the same handle; it does no checking at all. If you so much as reload the page, the chat window will reset and the convo will be lost. It's about as fragile as can be. I could fix this relatively easily but it would require setting and tracking a cookie on users' devices, which violates the spirit of the thing. (I might do it anyway. Just for something to work on.)

There is currently no way to remove something from the playlist, once you've added to it. Several full-featured apps in this category have playlist editing, curating, even audience up- and down-voting. (I am considering a basic downvote-to-remove system, too.) With Bckgrnd Tgthr, the only way to edit a playlist in progress is to make a superficial change to the underlying code in Glitch; this will automatically reboot the server and zero-out the playlist. If anyone's on the page when that happens, they'll start to see errors because their browser thinks there's a playlist and maybe a chat, but everything's been wiped out, server-side. They'll need to refresh the page.

What is Glitch?

Alas, something has gone haywire with Google's API keys and Glitch and my understanding thereof. The code's on Glitch as linked, but the API won't respond. In any event, the code is also on Github if you're adventurous.

You almost definitely don't want to listen to my music. So run your own copy of Bckgrnd Tgthr. Go to this page on glitch.com, and press the "Remix your own" button. (It's called "Remix This" if you're logged in.) You'll get a new URL with another randomly-generated name.

Once you've got your own copy, you just need one more thing; an API key from YouTube. Assuming you have a Gmail account, this isn't hard. (It can be wonky though; the Google Developer docs change a lot. Start here and you'll get there eventually.) Once you have an API key, in your glitch dashboard, switch to the `.env` file on the left (with the Victorian key icon), and paste your key as the value where it says `G_YT_APIKEY=`. I can walk you thru this in no time, if you need help. Literally seconds. DM/IM me somewhere.