About this project

Static is an open-source, web-based embedded radio player. It uses webpack to generate a static page that can be hosted as a GitHub Page, so the whole player runs client-side without a backend. How it works: a hidden iframe switches between different URLs for embedded live streams from YouTube depending on the station you select. The code hooks into an unofficial YouTube API that allows pausing a stream. Backgrounds are videos from giphy loaded into a background video element and played at 50% speed for a more relaxing effect. Stations and backgrounds are data-driven. You update the streams JSON in src/data to listen to your preferred live streams; currently only YouTube is supported. You update the backgrounds JSON in src/data to choose the relaxing animations shown behind the player. Radio stations can be submitted from YouTube as pull requests, or the repository can be forked to create a personal playlist. Development: build locally with webpack, place the output files in a public directory, and serve them with a static server. From the repository root, run npm install, npm run build, and npm run local. Notes: some browsers block automatic video playback, so autoplay may need to be enabled on YouTube for Static to work. The project is licensed under AGPLv3.