Skip to content

Collectif-Pixel/orpheus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orpheus

typescript-image bun-image licence-image


Why Orpheus?

Display what you're listening to on your stream. Orpheus detects music from any app (Deezer, Spotify, Apple Music, YouTube...) and serves a customizable overlay for OBS.

  • Cross-platform — Stable on macOS and Linux, experimental on Windows
  • Universal detection — Works with any music app (Spotify, Deezer, Apple Music...)
  • Real-time updates — SSE streaming with <50ms latency
  • Community themes — Install themes from GitHub with one command
  • Daemon mode — Runs in background, no terminal needed

Orpheus Demo

Installation

macOS

brew install collectif-pixel/tap/orpheus

Linux / macOS (universal script)

curl -fsSL https://raw.githubusercontent.com/collectif-pixel/orpheus/main/scripts/install.sh | bash

Note: Linux requires playerctl for media detection. Install it with your package manager (apt install playerctl, pacman -S playerctl, etc.)

Windows (experimental)

Warning: Windows support is experimental. You may encounter issues with Windows Defender blocking the binary or compatibility problems on ARM64 devices.

irm https://raw.githubusercontent.com/collectif-pixel/orpheus/main/scripts/install.ps1 | iex

Usage

# Start server (background)
orpheus start

# Start with custom port
orpheus start --port 8080

# Keep terminal open
orpheus start --foreground

# Check status
orpheus status

# Stop server
orpheus stop

# Show current track
orpheus now

Then add http://localhost:4242/now-playing as a Browser Source in OBS.

Themes

# Browse & install from marketplace
orpheus search

# List installed themes
orpheus themes

# Install from GitHub
orpheus add @roseratugo/colorz

# Switch theme
orpheus use @roseratugo/colorz

# Update a theme
orpheus update @roseratugo/colorz

# Update all themes
orpheus update

# Remove theme
orpheus remove @roseratugo/colorz

Create a Theme

Use the theme template to get started:

gh repo create my-theme --template Collectif-Pixel/orpheus-theme-template

A theme is a single theme.html file that connects to the SSE endpoint:

<!DOCTYPE html>
<html>
<body>
  <div id="track"></div>
  <script>
    const es = new EventSource('/api/stream');
    es.addEventListener('track', (e) => {
      const { title, artist, artwork } = JSON.parse(e.data);
      document.getElementById('track').innerHTML = `${artist} - ${title}`;
    });
  </script>
</body>
</html>

Publish to Marketplace

  1. Push your theme to GitHub
  2. Submit a PR to orpheus-themes registry

API

Endpoint Description
GET /now-playing Serve current theme
GET /api/now-playing Current track JSON
GET /api/stream SSE real-time updates
GET /api/health Health check

Development

git clone https://github.com/collectif-pixel/orpheus
cd orpheus
bun install
bun run dev

License

MIT

About

Now Playing overlay for OBS works with any music service

Resources

License

Contributing

Stars

Watchers

Forks

Contributors