Convert Figma logo to code with AI

jaedb logoIris

Discover, explore and manage your music library across multiple sources with this beautiful web-based interface. Iris is a Mopidy frontend extension.

1,138
134
1,138
109

Top Related Projects

Linux/FreeBSD DAAP (iTunes) and MPD audio server with support for AirPlay 1 and 2 speakers (multiroom), Apple Remote (and compatibles), Chromecast, Spotify and internet radio.

11,657

๐ŸŽงโ˜๏ธ Modern Music Server and Streamer compatible with Subsonic/Airsonic

3,643

Looks and smells like Sonarr but made for music.

:satellite: :cloud: :notes:Airsonic, a Free and Open Source community driven media server (fork of Subsonic and Libresonic)

Quick Overview

Iris is an open-source, self-hosted music server and streaming platform. It provides a web-based interface for managing and playing your music collection, integrating with various music sources and services like Spotify, LastFM, and local music libraries.

Pros

  • Customizable and feature-rich web interface for music playback and management
  • Integration with multiple music sources, including Spotify and local libraries
  • Self-hosted solution, giving users full control over their music data
  • Active development and community support

Cons

  • Requires technical knowledge for setup and maintenance
  • May have performance issues with large music libraries
  • Limited mobile app support compared to commercial alternatives
  • Some features require additional configuration or external services

Getting Started

  1. Install dependencies:

    sudo apt-get install nginx php-fpm php-mysql mariadb-server
    
  2. Clone the Iris repository:

    git clone https://github.com/jaedb/Iris.git
    cd Iris
    
  3. Install Node.js dependencies and build the application:

    npm install
    npm run build
    
  4. Configure your web server (e.g., Nginx) to serve the Iris application.

  5. Access Iris through your web browser and follow the setup wizard to configure your music sources and preferences.

Competitor Comparisons

Linux/FreeBSD DAAP (iTunes) and MPD audio server with support for AirPlay 1 and 2 speakers (multiroom), Apple Remote (and compatibles), Chromecast, Spotify and internet radio.

Pros of OwnTone

  • More mature and established project with a longer development history
  • Supports a wider range of audio formats and streaming protocols
  • Better integration with various music services and smart home ecosystems

Cons of OwnTone

  • Less focus on modern web technologies and user interface design
  • Potentially more complex setup and configuration process
  • Limited customization options for the web interface

Code Comparison

OwnTone (C language):

int mpd_command_playid(struct mpd_command *command, struct evbuffer *evbuf)
{
  int id;
  int ret;

  id = safe_atoi(command->arg1);
  ret = player_playid(id);

  return mpd_send_ok(evbuf);
}

Iris (JavaScript):

playTrack(uri, {
  spotify_token,
  provider,
  from_uri,
}) {
  return (dispatch) => {
    dispatch({ type: 'PLAY_TRACK', uri });
    // ... more code ...
  };
}

Summary

OwnTone is a more established and feature-rich music server with broader compatibility, while Iris focuses on providing a modern web-based interface for Mopidy. OwnTone may be better suited for users seeking a comprehensive music server solution, whereas Iris might appeal to those prioritizing a sleek, customizable web interface for their existing Mopidy setup.

11,657

๐ŸŽงโ˜๏ธ Modern Music Server and Streamer compatible with Subsonic/Airsonic

Pros of Navidrome

  • Built with Go, offering better performance and lower resource usage
  • Supports a wider range of audio formats, including FLAC and OGG
  • Provides a built-in web UI, eliminating the need for separate frontend setup

Cons of Navidrome

  • Less customizable interface compared to Iris
  • Fewer integrations with third-party services like Spotify and Last.fm
  • Limited playlist management features

Code Comparison

Iris (JavaScript):

export default function getTrackIcon(track){
    if (track.type == 'spotify'){
        return 'spotify'
    } else if (track.type == 'local'){
        return 'music_note'
    } else {
        return 'audiotrack'
    }
}

Navidrome (Go):

func (s *selection) GetIcon() string {
    switch {
    case s.client != nil:
        return "computer"
    case s.album != nil:
        return "album"
    case s.artist != nil:
        return "person"
    default:
        return "music_note"
    }
}

Both projects aim to provide music streaming solutions, but they differ in their approach and feature set. Iris focuses on a highly customizable interface with broader third-party integrations, while Navidrome prioritizes performance and native audio format support. The code comparison shows how each project handles icon selection for different types of content, reflecting their distinct architectures and programming languages.

3,643

Looks and smells like Sonarr but made for music.

Pros of Lidarr

  • Specialized for music collection management and automated downloading
  • Integrates with various indexers and download clients
  • Offers detailed music metadata and album artwork

Cons of Lidarr

  • Limited to music management, lacks multi-media support
  • More complex setup and configuration process
  • Requires additional tools for playback functionality

Code Comparison

Iris (JavaScript):

export default function getTrackIcon(track){
	if (track.playing) return 'play_circle_filled';
	if (track.enabled) return 'play_circle_outline';
	return 'remove_circle_outline';
}

Lidarr (C#):

public static string GetRelativePath(string rootPath, string path)
{
    if (string.IsNullOrEmpty(rootPath)) return path;
    return path.StartsWith(rootPath) ? path.Substring(rootPath.Length).TrimStart('\\', '/') : path;
}

Summary

Iris is a versatile music player and manager with a focus on user interface and multi-source integration. It supports various streaming services and local files, offering a unified playback experience.

Lidarr, on the other hand, is specifically designed for music collection management and automated downloading. It excels in organizing and acquiring music but lacks built-in playback features.

While Iris provides a more all-in-one solution for music enthusiasts, Lidarr is better suited for users who prioritize maintaining and expanding their music libraries through automation.

:satellite: :cloud: :notes:Airsonic, a Free and Open Source community driven media server (fork of Subsonic and Libresonic)

Pros of Airsonic

  • More mature and established project with a larger community
  • Supports a wider range of audio formats and streaming protocols
  • Offers advanced features like podcast support and internet radio

Cons of Airsonic

  • Less modern user interface compared to Iris
  • Slower development pace and less frequent updates
  • Higher resource usage, especially for large music libraries

Code Comparison

Iris (React-based frontend):

const App = () => (
  <MopidyProvider>
    <Router>
      <Layout>
        <Switch>
          <Route exact path="/" component={Home} />
          <Route path="/library" component={Library} />
        </Switch>
      </Layout>
    </Router>
  </MopidyProvider>
);

Airsonic (Java-based backend):

@RestController
@RequestMapping("/rest/api")
public class MediaRetrievalController {
    @GetMapping("/stream")
    public void stream(@RequestParam("id") String id, HttpServletResponse response) {
        // Streaming logic
    }
}

Summary

Airsonic is a more feature-rich and established music streaming server, while Iris focuses on providing a modern, responsive web interface for Mopidy. Airsonic offers broader format support and additional features, but Iris excels in user experience and frontend design. The choice between them depends on specific requirements and preferences for self-hosted music streaming solutions.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Iris

Iris is an extension for the Mopidy music server. With support for Spotify, LastFM, Genius, Snapcast and many other extensions, Iris brings all your music into one user-friendly and unified web-based interface that works beautifully, no matter your device.

Built and maintained by James Barnsley.

.. image:: https://static.pepy.tech/personalized-badge/mopidy-iris?period=total&units=international_system&left_color=grey&right_color=green&left_text=Downloads :target: https://pepy.tech/project/mopidy-iris .. image:: https://img.shields.io/pypi/v/mopidy-iris.svg?style=flat-square :target: https://pypi.org/project/Mopidy-Iris/ .. image:: https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square :target: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=james%40barnsley%2enz&lc=NZ&item_name=James%20Barnsley&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted

Features


  • Full web-based interface controls for Mopidy
  • Improved support for local libraries (powered by Mopidy-Local)
  • Browse and manage your playlists and tracks
  • Discover new, popular and related music (powered by Spotify)
  • Multiple language support. Want to provide a translation? <https://github.com/jaedb/Iris/wiki/Contributing#translations>_
  • Streaming controls with the ability to play audio from your browser (requires Snapcast)

Integrations


  • Spotify <https://developer.spotify.com/web-api/>_
  • LastFM <https://www.last.fm/api>_ for rich music metadata and artwork
  • Genius <https://docs.genius.com/>_ for lyrics
  • Snapcast <https://github.com/badaix/snapcast/>_ to stream audio to multiple devices

.. image:: https://raw.githubusercontent.com/jaedb/Iris/master/screenshot.jpg

Requirements


  • Mopidy
  • Mopidy-Spotify (recommended, not required)
  • Mopidy-Local (recommended, not required)

Getting started


  • Installation <https://github.com/jaedb/Iris/wiki/Getting-started#installing>_
  • Debugging <https://github.com/jaedb/Iris/wiki/Advanced#debugging>_
  • Issues and requests <https://github.com/jaedb/Iris/wiki/Support#before-you-log-an-issue>_
  • Changelog <https://github.com/jaedb/Iris/releases>_