This projects consists of a desktop studio app, used for streaming audio and complimentary metadata, as well as a web client where users can listen to the transmissions.
- Spotify Integration
- From the studio app you can search for songs on Spotify and display them as metadata on all connected web clients.
- From the web app, when you click on the Spotify icon, you will be redirected to their login page. After successfully authenticating, you will be able to save any song you want from the audition to a special playlist. When a song is saved, the button turns green.
- From the studio app you can search for songs on Spotify and display them as metadata on all connected web clients.
- Questions from listeners
- Multiple Input Audio Devices
- Custom Metadata
The project is written in Typescript. Audio transfer is performed with the WebRTC protocol. The studio app was made in Electron and Svelte. It runs a Socket.io server in the background, which is necessary to negotiate and establish a peer-to-peer connection. The web app is also written in Svelte. Both parts use Tailwind CSS for styling.
Both the Studio App and the Web App require a Spotify_Client_Id and Spotify_Client_Secret to interact with the Spotify api. You can provide them as environment variables in a
.env file, located at the root of web
and studio
folders.
.env
SPOTIFY_ID=<spotify api id goes here>
SPOTIFY_SECRET=<spotify api secret goes here>
Studio App
cd studio && npm run start
Web App
cd web && npm run dev