explaingit

notfrankgraves/borealis

Analysis updated 2026-05-18

1PythonAudience · generalComplexity · 3/5Setup · moderate

TLDR

A self-hosted streaming audio system for Raspberry Pi combining internet radio, YouTube and podcast streaming, a local music library, and a web UI, with optional physical display via Pirate Audio HAT.

Mindmap

mindmap
  root((Borealis))
    Playback sources
      Internet radio
      YouTube streaming
      Local library
      Podcasts
    Features
      10-band equalizer
      Queue and playlists
      Sleep timer
      Bluetooth audio
    Interfaces
      Web UI all modes
      Physical HAT display
      Keyboard shortcuts
    Tech
      VLC and yt-dlp
      Flask web server
      PipeWire audio
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Turn a Raspberry Pi Zero 2W into a self-contained music player with a small color display and physical buttons using the Pirate Audio HAT.

USE CASE 2

Stream audio from YouTube, Bandcamp, or SoundCloud to a Raspberry Pi by pasting the URL into the web interface.

USE CASE 3

Add podcast RSS feeds and resume episodes from the last position across listening sessions.

USE CASE 4

Record a live internet radio stream to an MP3 file stored on the Pi for offline listening.

What is it built with?

PythonVLCyt-dlpFlaskffmpegPipeWireBlueZ

How does it compare?

notfrankgraves/borealisa-bissell/unleash-liteabhiinnovates/whatsapp-hr-assistant
Stars111
LanguagePythonPythonPython
Setup difficultymoderatehardhard
Complexity3/54/53/5
Audiencegeneralresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Python 3.10+, VLC, ffmpeg, and PipeWire, the install script handles dependencies on Raspberry Pi OS or Debian-based Linux.

No license is stated in the README.

In plain English

Borealis is a streaming audio system for Raspberry Pi that combines internet radio, YouTube and podcast streaming, and a local music library into a single application with a web interface. You control it from any browser on the same network, making it suitable for a small music player on a shelf or a headless audio server in another room. At its core, Borealis uses VLC for playback and yt-dlp to extract audio from YouTube, SoundCloud, Bandcamp, Mixcloud, and over a thousand other sites. You can paste a URL to stream it immediately, search YouTube from the web interface, or add RSS podcast feeds and resume episodes from where you left off. A local library scans a music folder and connected USB drives, organized by artist and album. Beyond basic playback, the app includes a 10-band equalizer with presets, a play queue that works across all sources, named playlists, bookmarks, crossfade between tracks, playback speed control from half to double speed, a sleep timer, and stream recording to MP3 via ffmpeg. Bluetooth is supported through BlueZ and PipeWire, so you can route audio to wireless speakers or headphones. If you use a Pimoroni Pirate Audio HAT on a Pi Zero 2W, you get a small 240 by 240 pixel color display and four physical buttons for navigation without a browser. The display shows now-playing information, an EQ visualizer, and menus for browsing radio, the library, and queues. Without the HAT, the web interface provides the same features, with a sidebar layout on desktop and a tabbed layout on mobile. Installation covers three paths: with the HAT on a Pi, headless on a Pi without the HAT, and headless on any Linux machine. Each has a script that sets up the required system packages and a systemd service so the app starts automatically on boot.

Copy-paste prompts

Prompt 1
I want to set up Borealis on a Raspberry Pi Zero 2W with the Pirate Audio HAT. Walk me through the install steps and what the INSTALL.sh script configures automatically.
Prompt 2
How do I add an internet radio station to Borealis, and how do I reorder stations in the preset list?
Prompt 3
I want to download a YouTube playlist as FLAC files using Borealis. Which format preset do I choose and where do the files go?
Prompt 4
Explain how Borealis routes Bluetooth audio using PipeWire and BlueZ, and how I pair a wireless speaker from the web UI.

Frequently asked questions

What is borealis?

A self-hosted streaming audio system for Raspberry Pi combining internet radio, YouTube and podcast streaming, a local music library, and a web UI, with optional physical display via Pirate Audio HAT.

What language is borealis written in?

Mainly Python. The stack also includes Python, VLC, yt-dlp.

What license does borealis use?

No license is stated in the README.

How hard is borealis to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is borealis for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub notfrankgraves on gitmyhub

Verify against the repo before relying on details.