Convert Figma logo to code with AI

owntone logoowntone-server

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.

2,065
236
2,065
108

Top Related Projects

11,657

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

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

Server for Squeezebox and compatible players. This server is also called Lyrion Music Server.

1,194

UPnP Media Server for 2024: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices ๐Ÿ“ฑ๐Ÿ’ป๐Ÿ“บ

34,085

The Free Software Media System

Quick Overview

OwnTone (formerly known as forked-daapd) is an open-source media server that supports various streaming protocols, including DAAP (iTunes), MPD, and AirPlay. It allows users to stream their music library to multiple devices and clients, providing a centralized solution for managing and playing audio content across a network.

Pros

  • Supports multiple streaming protocols (DAAP, MPD, AirPlay)
  • Integrates with various smart home systems (e.g., HomeKit, Chromecast)
  • Offers a web interface for easy management and playback control
  • Actively maintained and regularly updated

Cons

  • Setup and configuration can be complex for beginners
  • Limited video streaming capabilities compared to some alternatives
  • May require additional setup for remote access outside the local network
  • Documentation could be more comprehensive for advanced features

Getting Started

To set up OwnTone on a Debian-based system:

  1. Install dependencies:
sudo apt-get install build-essential git autotools-dev autoconf libtool gettext gperf bison flex libconfuse-dev libunistring-dev libsqlite3-dev libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev libavutil-dev libasound2-dev libmxml-dev libgcrypt20-dev libavahi-client-dev zlib1g-dev libevent-dev libplist-dev libsodium-dev libjson-c-dev libwebsockets-dev libcurl4-openssl-dev libprotobuf-c-dev
  1. Clone the repository:
git clone https://github.com/owntone/owntone-server.git
cd owntone-server
  1. Build and install:
autoreconf -i
./configure
make
sudo make install
  1. Configure OwnTone by editing /etc/owntone.conf and start the service:
sudo systemctl start owntone

For more detailed instructions and configuration options, refer to the project's documentation on GitHub.

Competitor Comparisons

11,657

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

Pros of Navidrome

  • Built with modern web technologies (Go, React), offering a responsive and feature-rich web interface
  • Supports a wide range of audio formats, including lossless formats like FLAC
  • Active development with frequent updates and a growing community

Cons of Navidrome

  • Lacks some advanced features present in OwnTone, such as AirPlay support
  • May have higher resource usage compared to OwnTone, especially for large libraries

Code Comparison

OwnTone (C):

int db_queue_add_by_queryafteritemid(struct query_params *qp, uint32_t item_id)
{
  struct db_media_file_info dbmfi;
  char *query;
  int ret;

  memset(&dbmfi, 0, sizeof(struct db_media_file_info));

Navidrome (Go):

func (r *mediaFileRepository) Get(id string) (*model.MediaFile, error) {
	sel := r.newSelect().Columns("*").Where(squirrel.Eq{"id": id})
	var mf model.MediaFile
	err := r.queryOne(sel, &mf)
	return &mf, err
}

Both projects use different programming languages and approaches, with OwnTone focusing on C for performance and Navidrome leveraging Go for modern development practices. Navidrome's code appears more concise and readable, while OwnTone's C code may offer better low-level control and optimization opportunities.

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

Pros of Airsonic

  • More extensive feature set, including playlist management, user accounts, and podcast support
  • Larger and more active community, resulting in frequent updates and bug fixes
  • Better support for various audio formats and streaming protocols

Cons of Airsonic

  • Higher resource consumption, especially for large music libraries
  • More complex setup and configuration process
  • Less focus on integration with smart home devices and voice assistants

Code Comparison

Airsonic (Java):

public class MediaScannerService {
    @Autowired
    private MediaFileService mediaFileService;

    public void scanLibrary() {
        // Scan logic here
    }
}

OwnTone (C):

static void
library_rescan(void)
{
  // Rescan logic here
}

The code snippets show different approaches to media scanning. Airsonic uses a more structured, object-oriented approach with dependency injection, while OwnTone employs a simpler C function. This reflects the overall design philosophy of each project, with Airsonic offering a more feature-rich but complex solution, and OwnTone focusing on simplicity and efficiency.

Server for Squeezebox and compatible players. This server is also called Lyrion Music Server.

Pros of slimserver

  • More mature project with a longer history and larger community
  • Supports a wider range of audio formats and streaming services
  • Offers advanced features like smart playlists and dynamic playlist generation

Cons of slimserver

  • Heavier resource usage, especially for large libraries
  • More complex setup and configuration process
  • Less frequent updates and slower development cycle

Code Comparison

slimserver (Perl):

sub rescan {
    my $class = shift;
    my $client = shift;
    
    # Start a rescan
    Slim::Music::Import->clearProgressInfo();
    Slim::Music::Import->setIsScanning(1);
}

owntone-server (C):

static enum command_state
rescan(void *arg, int *retval)
{
  *retval = library_rescan();

  return COMMAND_END;
}

Both projects implement a rescan function, but slimserver's implementation is more complex, reflecting its broader feature set. owntone-server's code is more concise and focused on the core functionality.

1,194

UPnP Media Server for 2024: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices ๐Ÿ“ฑ๐Ÿ’ป๐Ÿ“บ

Pros of Gerbera

  • Supports a wider range of media types, including images and videos
  • More flexible in terms of customization and configuration options
  • Actively maintained with regular updates and improvements

Cons of Gerbera

  • More complex setup and configuration process
  • Higher resource usage, especially for large media libraries
  • Less focus on audio-specific features compared to OwnTone

Code Comparison

OwnTone (config example):

<library>
  <name>My Music</name>
  <path>/path/to/music</path>
  <scan_interval>3600</scan_interval>
</library>

Gerbera (config example):

<import>
  <filesystem>
    <autoscan>
      <directory location="/path/to/media" mode="inotify" recursive="yes"/>
    </autoscan>
  </filesystem>
</import>

Both projects are open-source media servers, but they have different focuses. OwnTone (formerly forked-daapd) is primarily designed for audio streaming, while Gerbera is a more comprehensive UPnP media server supporting various media types. OwnTone offers a simpler setup and is more lightweight, making it ideal for audio-centric setups. Gerbera, on the other hand, provides more flexibility and features for managing diverse media libraries but requires more configuration and system resources.

34,085

The Free Software Media System

Pros of Jellyfin

  • More comprehensive media server solution, supporting video, audio, and photos
  • Larger and more active community, leading to faster development and bug fixes
  • Cross-platform support with native apps for various devices

Cons of Jellyfin

  • Higher resource usage due to its broader feature set
  • More complex setup and configuration process
  • Steeper learning curve for new users

Code Comparison

OwnTone Server (C):

int db_queue_add_by_queryafteritemid(struct query_params *qp, uint32_t item_id)
{
  struct db_media_file_info dbmfi;
  char *query;
  int ret;

  memset(&dbmfi, 0, sizeof(struct db_media_file_info));

Jellyfin (C#):

public async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
    var user = query.User;

    if (query.Recursive)
    {
        return await GetItemsRecursive(query).ConfigureAwait(false);
    }

Both projects are open-source media servers, but Jellyfin offers a more comprehensive solution with support for various media types and platforms. OwnTone Server focuses primarily on audio streaming and is lighter on resources. Jellyfin has a larger community and more frequent updates, while OwnTone Server provides a simpler setup for those primarily interested in music streaming.

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

OwnTone

OwnTone is a media server that lets you play audio sources such as local files, Spotify, pipe input or internet radio to AirPlay 1 and 2 receivers, Chromecast receivers, Roku Soundbridge, a browser or the serverรขย€ย™s own sound system. Or you can listen to your music via any client that supports mp3 streaming.

You control the server via a web interface, Apple Remote, an Android remote (e.g. Retune), an MPD client, json API or DACP.

OwnTone also serves local files via the Digital Audio Access Protocol (DAAP) to iTunes (Windows), Apple Music (macOS) and Rhythmbox (Linux), and via the Roku Server Protocol (RSP) to Roku devices.

Runs on Linux, BSD and macOS.

OwnTone was previously called forked-daapd, which again was a rewrite of mt-daapd (Firefly Media Server).

Looking for help?

Visit the OwnTone documentation for usage and set up instructions, API documentation, etc.

If you are looking for information on how to get and install OwnTone, then see the Installation instructions.