Created in 2018, Radios.YT is a content curation website that provides an up-to-date list of YouTube music livestreams.
What problem did I solve?
I always enjoyed listening to music on YouTube, specifically browsing some of my favourite channels looking for live-streaming music videos. These never-ending video streams can be considered “radio stations”, broadcasting music of a specific genre all day long.
Consequently, I decided to play around with YouTube API, trying to list all the active music livestreams for a specific genre… and I ended up creating Radios.YT!
It is a free-to-use website powered by WordPress. It lists all the current (and past) music live-streaming videos available on YouTube. These radio stations are categorized by music genre for a better navigation and discovery.
A radio station can be added to favourites, so users can keep track of all the various livestreams that they like.
The creation and management of a list of favourites does not require any account creation: a user just needs to bookmark a simple “secret URL”. Once accessed, the visitor will be considered the owner of the list and will gain the permission to add or remove radio stations to the list.
Custom WordPress solution
Radios.YT is fully-powered by WordPress: radios stations are stored in a custom post type whereas channels, genres and favourite lists are taxonomies. This native WordPress structure is perfect to automatically handle content archive pages.
The YouTube API is heavily used to keep data fresh and consistent. A custom CRON job regularly runs in order to:
- delete “dead” videos that were removed from YouTube
- import new videos in each musical genre
- fetch information on the video channels listed on the site
Each Genre taxonomy term owns custom meta values used as keywords for querying the YouTube API. The API results are then imported as new radio stations in the database.
The front-end part of this project uses Roots Sage. It gives me a modern way to create the WordPress theme thanks to Gulp, SASS and Browsersync.