The Fall and Rise of Code Radio

The Fall and Rise of Code Radio

Code Radio is an internet radio station run by the freeCodeCamp community. We play music designed to help you focus while you’re coding.

Over the past year, Code Radio had grown to be one of the largest music streams on YouTube. People played it in their coffee shops and co-working spaces. Wherever people coded, the familiar groove of Code Radio could be heard not too far off in the distance.

In the past 28 days alone, developers listened to Code Radio for more than 14 million minutes. (That’s the equivalent of a whopping 27 years of jamming out and coding.)

The Fall

One of the 1,400+ songs on Code Radio contained a short audio sample from an anime that played over a beat at the end of a song.

It turned out that a Japanese media company - through a series of acquisitions - happened to own the rights to that anime. And they used some sort of automated system to trawl YouTube and identify streams that had any samples from their vast catalog of intellectual property.

One of those streams was Code Radio. And on Wednesday morning, their system filed an automated takedown request to YouTube.

Just like that, the stereos in 1,000 cafes, offices, and hackerspaces around the world fell silent. Our Code Radio stream was replaced with this message from YouTube:

We immediately contacted YouTube support. This had to be a mistake.

The customer service reps we talked to were friendly. But they didn’t know how to fix it. They didn’t even know how we could regain access our channel’s streaming controls. Instead they said they “would look into it and get back to us.”

(As of Monday afternoon, we have yet to hear back from them.)

So in the depths of this confusion - in a sea of tweets and emails from dedicated Code Radio listeners asking what was happening - I came to see the truth: Code Radio needed a new home - a home where a single questionable automated takedown request couldn’t wipe it from existence.

Code Radio also rises

“Why do we fall, Mr. Wayne? So we can learn to pick ourselves back up.” - Alfred in Batman Begins

Ah - a self-hosted Code Radio! There would be several benefits:

  1. Watching YouTube uses a lot of data. Many people have limited data plans. If we self-host Code Radio, we could just serve the MP3 files themselves, rather than a video stream. We could even offer a data-light version of the music at a lower bitrate.
  2. YouTube is blocked in a lot of countries where freeCodeCamp is popular - including China. A self-hosted version of Code Radio would be available to everyone, anywhere in the world.
  3. With YouTube, you have to keep the YouTube app open or the music will stop playing (unless you pay them US $12 per month for YouTube Premium). A self-hosted Code Radio could continue playing in the background on your phone - even when you switch applications or lock your phone.
  4. With a self-hosted version, we could build Code Radio mobile apps, Alexa skills so you can easily listen to Code Radio on an Amazon Echo - the sky is the limit.

But how would we implement a self-hosted version? Wouldn’t it be expensive to serve 14 million minutes of audio each month. That’s a lot of data.

Building Code Radio

It turns out that the internet radio community is quite active. We immediately found an awesome open source self-hosted internet radio project called AzuraCast.

I reached out to the project maintainer through Twitter, and within minutes, we had him on a call with us. He was a former terrestrial radio guy. He brought us up to speed on the internet radio tooling ecosystem.

Yes - streaming digital audio to people around the world is a lot more expensive than just serving our coding curriculum data. But with some additional donations from supporters, we should be able to swing it.

With AzuraCast, plus some additional relay tools, we could run a self-hosted internet radio station at our previous scale for less than US $1,000 per month.

Side note: If you aren’t a supporter yet, we would welcome your support. Every little bit helps: https://donate.freecodecamp.org - And yes, we accept one-time donations, crypto, employer donation matching, and more: https://donate.freecodecamp.org/other-ways-to-donate/)

Code Radio is live. Help us load-test it and give us feedback.

You can start listening to Code Radio right now: :rocket: Listen to Code Radio :rocket:

Be sure to comment here on this thread with questions, ideas, any reproducible bugs - this will be helpful for us as we work on Code Radio.

We are working on a lot of additional features that we’ll roll out over the next few days:

  • bitrate controls (so you can save your mobile data by listening at 64 kbps)
  • some form of chat - preferably with existing forum accounts and forum moderators
  • a chatbot (maybe Nightbot again)
  • hotkeys
  • a better mobile experience
  • bringing back the classic Saron Yitbarek Code Radio animation

I would like to thank @abdolsa, @beaucarnes, @raisedadead, @askmp, @scissorsneedfoodtoo, and of course Code Radio DJ and curator Lawrence Yeo AKA Trebles and Blues. They all pulled together and within 24 hours helped get this prototype up and running.

YouTube da real MVP

In all seriousness, I would also like to thank YouTube. Through their own bumbling, they inadvertently forced us to take a step back and look into the possibility of self-hosting Code Radio.

We will continue to post in-depth coding tutorials and free programming courses on YouTube. We don’t hold their own incompetence against them. We are grateful they exist and provide the infrastructure for nonprofits like ours to serve HD video to 1 Million+ subscribers for free.

This is just the latest chapter in our community’s gradual move off of proprietary platforms like Medium and Facebook, and over onto our own tools like Developer News and this forum.

Thanks for reading, thanks for listening, and happy coding!

45 Likes

Awesome work guys!

Didn’t know CodeRadio but I am definitely cheking it out now!

Just opened the new website and loved the lean design! Just a play button and the song title :slight_smile:

2 Likes

Thanks, @gugacavalieri. It will get slightly more elaborate than it is currently, but we value simplicity.

Also, welcome to the community! I hope to see more of you here on the forum. :+1:

2 Likes

I have been using the code radio for a year now while attempting a transition to a web development career. Freecodecamp and the radio have been a great support!

That’s the reason I’m so happy you keep this up and I went to checked out the new site immediately.

I love that you can play the radio in the background now. I liked the animated background, I hope it will be back. I wonder what other cool features could be added. I’ll think about it.

This whole adventure really made me want to support the site even more. I’m glad to hear you’re accepting cryptos as payment. I’ll scoop some out for donations.

Fcc is the best! I hope I’ll be able to participate more to the open source projects going forward. Very inspiring :wink:

4 Likes

Thanks for your kind words. And yes - every little donation helps. Thanks for your support.

I’m looking forward to your feedback on Code Radio. Happy coding!

1 Like

Thanks Quincy for sending a tweet updating me on Code Radio. I’m glad it’s back. This time it will be better than ever. Whatever doesn’t kill us (pertaining to coding) will make us stronger! YouTube da real MVP (that’s a great quote). Thank you for all your hard work Quincy. I’m helping to load test Code Radio as I’m typing this (smile).

3 Likes

… for load testing, and for your support over the years. I’m looking forward to any suggestions you have. Enjoy the tunes!

I really appreciate NOT having to keep the YouTube app open! Thanks guys!

6 Likes

Good stuff. The worst thing about the new internet is the “centralization” of content, where a handful of corporations host and control everything and can pick and choose what they allow and what they deem “offensive” or “illegal”.
You can’t put a price on independence… Actually, you can and you just did… but hey - sounds better this way, doesn’t it?

4 Likes

Loving that FCC is starting to host all their own content on the website rather than on other platformers.

I’ll join the donator list some point in the future. Money is tight which is exactly why I support FCC’s free curriculum, if I ever join the dev world and make a living off of it. I’ll be sure to pay it back for sure.

Thanks for continuing code radio. :heart:

6 Likes

Yes - keeping the YouTube app open really limited situations where I could listen to Code Radio, too.

Also, it’s nice to see you on here again, man! I remember you from back in the day.

1 Like

Yes - the costs of moving off of large platforms are significant - both in terms of servers and in terms of technical debt. But we are confident this is the right move.

Don’t worry about donating if it’s an issue for you at the moment. We’d much rather you focus on your own family’s prosperity, then share some of it with our nonprofit once you get where you need to be :+1:

2 Likes

Personally, I appreciate the fact that first the blog and now code radio had been brought in-house, it’s much better to be in control of your own future :wink:

1 Like

Thanks for restoring the music. My son and I listen to it all the time while coding these lessons. You guys handled with professionalism and class. Unfortunately, a major corporation couldn’t do the same.

BUG

When you open it on mobile (Safari), it doesn’t play any sound, only after pressing pause/resume several times, it works.

On browser (Chrome) it didn’t play sound as soon as the web loaded, rather I had to pause and resume.

1 Like

Depending on your platform of choice, there are different rules regarding the autoplay functionality in JavaScript. For instance, on mobile, all platforms refuse to autoplay without a user interaction. On Desktop, there are flags you can set to autoplay however by default they are turned off. Why it is that you are cycling off then on to get it working, I cannot say.

You guys should post a short video about the rise and fall of Code Radio on your Youtube Channel. so that all those coders can find your stream again… Btw great work with this new stream… I would love to see a live chat functionality on that stream…Thanks for the free stream though.

1 Like

Not yet possible, right now it doesn’t support high traffic… Free Code Camp needs more money before being able to offer again a radio that can manage high traffic

So glad to hear this! The first time I found Code Radio I wished there was a way to use less bandwidth. This is great! Simplicity is great. I just need to hit play and let it go. YouTube is becoming more and more of a pain and I’m glad to see you move on. You’ll always get my financial support whenever I’m able. Thanks!

1 Like

That’s awesome guys, I am listening to it again, it was the norm in my work afternoon routine. This needs more visibility though, I think you should make an announcement on youtube or something.

3 Likes