Welcome to GCS Radio, a dynamic internet radio web-app. GCS Radio allows users to create and share custom music playlists, then converts them to dynamically generated internet radio stations! To try it out, check out the Live Deployment.
GCS Radio is developed primarily in typescript. The frontend is built in React TSX, while the backend is ts-node. The two layers connect through a custom REST API, while data-storage and caching is done via mongoDB.
GCS Radio is currently available in
- English (en)
- German (de)
- French (fr)
- Italian (it)
- Japanese (ja)
- Norwegian (no)
- Portuguese (pt)
- Swedish (sv)
- Mandarin (zh)
If GCS Radio guesses your language wrong, add ?lang=code
with your language code to the URL.
Core Features
To start using GCS Radio, start by creating an account. While the site can be navigated, and anonymous playlists can be created without one, a Spotify-linked account is currently required in order to play the songs themselves. You may sign-up using an email (verification is required, check your spam folder!), Google account, or Spotify account, however linking Spotify is required in order to play music, so if you choose email or Google, you will need to further link your Spotify once you have logged in.
Once logged in, head over to the Browse page where you can view an assortment of playlists curated by other users. Each one has the option to be played, or "edited", which allows you to add a copy to your own profile, where you can make adjustments, and even re-share it with the community.
Once you're ready to build your own playlist go to the Build page. Here you can add songs either by textual search, or by Spotify ID or link. Spotify resources can be individual songs, full albums, artists, or even entire pre-made playlists. Once you've picked your songs, hit Add Details to add a title, description, privacy setting, and select up to three featured thumbnail songs! If you leave the title field blank, the playlist, while still listenable, will not be saved to your profile, and will not be visible on the browse page. Hit Save to save the playlist to your profile, and Play to start listening!
Not sure what you want to listen to? No problem, hit the Generator page, where you can select up to five "seed" songs to generate a playlist off of! If you know what types of music you want, activate and play around with the optional sliders below. These sliders represent fields from the Spotify Recommendations API. Additionally, if your account has spotify connected, over on your Dashboard you will find a Generate button which will build you three custom playlists tuned specifically for your tastes.
Once you start listening to a playlist, GCS Radio will play auto-generated radio host voice lines before and in-between songs! These voice lines will talk about the music, give local news, weather, and traffic updates, and sometimes show a little of their personalities! Want radio in a different language? No problem, the voice selector can request from 16 different personalities!
The Future
GCS Radio has an exciting future, and I welcome any and all comments, criticism, and support! Feel free to leave an Issue if you find a bug (there are likely many), or submit a Pull Request if you want to collaborate!
In terms of specific features, GCS Radio has a major usability choke-point in it's requirement for users to authenticate with Spotify in order to actually play music on the frontend. This needs to be expanded to allow multiple music playing methods. Both the frontend and backend have sufficient levels of abstractions that this should be not only possible, but relatively easy, but these alternate methods need to be found and implemented. Possible services could include YouTube Premium (YouTube IDs can already be matched with songs), SoundCloud, Apple Music, or Tidal.
API endpoints need to be updated to support pagination as both the browse and dashboard pages will not scale with mass adoption.
Further localization and documentation is always welcomed, specifically in the form of JSDocs comments.
Additional login methods such as GitHub and GitLab would be a neat feature to appease fellow developers.
All in all, GCS Radio has a very exciting future, so make sure to leave a star on the GitLab page, and check in soon!
Update: Apple Music support is currently in Beta, and pagination is somewhat complete.