# oc-music: a music player and server for ownCloud and Nextcloud

> The oc-music app turns audio files in your ownCloud or Nextcloud into a browsable library by artist and album, with shuffle, playlists, and Ampache and Subsonic endpoints for external clients. The ownCloud version is in maintenance mode and the Nextcloud version lives in a separate repository.

**nc-music/oc-music** — :notes: Music app for ownCloud

- Repository: https://github.com/nc-music/oc-music
- Stars: 632 · Forks: 218
- Language: PHP
- License: AGPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/nc-music-oc-music

## Two forks, and where the work continues

The README opens with a status note that decides which repository you should be reading. As of January 2026, the Nextcloud version of the Music app is hosted at the nc-music/music repository, and at the same time the ownCloud version has entered maintenance mode, where only bug and security fixes may still be released but no new features. All open issues have been transferred to the new repository. That is a common pattern in the ownCloud and Nextcloud world, where the two platforms forked and the community work followed the more active one, and the practical consequence is simple. If you run Nextcloud, the app you want is elsewhere. If you run ownCloud, the code here will still receive fixes but will not grow. The project is not archived, the last push was on 2026-10-18, and the recent tags are v2.6.1 from 2026-08-30, v2.6.0 from 2026-07-16 and v2.5.2 from 2026-05-10, so the maintenance promise is being kept. The licence is AGPL-3.0, and the primary language is PHP with a JavaScript front end.

## What the app actually does

The overview describes a music player and server for ownCloud and Nextcloud that shows the audio files stored in your cloud categorized by artists and albums. It supports MP3 and, depending on the browser, many other audio formats, and it supports shuffle play and playlists. The feature that the screenshots emphasise is breadth of surface. There is a full-screen albums view, a music player embedded into the files view so the app appears inside the normal file browser, integration with the media control panel in Chrome, and a mobile layout with media control integration to the lock screen and notification center on Chrome for Android. That last set of screenshots is the one to notice, because it means the app is not only a library browser but a background player that hands media controls to the operating system, which is what a phone user expects and what most cloud music apps get wrong.

## Format support runs into the browser's codec list

The supported formats list is long, with MP3 as `audio/mpeg`, FLAC as `audio/flac`, Vorbis in an OGG container, Opus in an OGG container, WAV, AAC in an M4A container, ALAC in an M4A container, M4B, AAC, AIFF, AU and CAF. The detail section is honest about why that list is not a promise. Modern browsers ship with a wide variety of built-in audio codecs usable directly through the standard HTML5 audio API, but no browser can natively play all of the formats listed. For the ones not supported natively, the app uses the Aurora.js javascript library, which can play most of them, excluding only the OGG containers. The trade-off is that Aurora.js may not play all individual files of the supported formats and is very limited in features, with no seeking and no adjustment of playback speed. The note adds that most recent versions of Chrome, Firefox and Edge should play all the listed formats, and that all browsers should manage at least the MP3 files.

## The MIME mapping step is not optional

There is one operational step that will bite you if you skip it, and it is a real configuration gap rather than a documentation nicety. In order to be playable in the Music app, the file type has to be mapped to a MIME type of `audio/*` on your cloud instance, and neither ownCloud nor Nextcloud has these mappings by default for the file types AIFF, AU or CAF. The mapping for AAC is missing from ownCloud but present on Nextcloud. To add the missing mappings, the README gives one command:

```bash
	php occ music:register-mime-types
```

This is the kind of detail that separates a usable app from one that silently ignores half your library, and it is worth running before you import anything rather than debugging individual tracks later.

## How the collection is built and rebuilt

The usage hints describe a sensible scan model. Normally the app detects any new audio files in the filesystem on application start and scans metadata from those into its database tables when the user clicks the prompt, and it also detects file removals and modifications in the background and makes the required database changes automatically. There is a recovery path too, because if the database somehow gets corrupted the user can force it to be rebuilt from scratch by opening the Settings at the bottom of the left pane and clicking Reset music collection. There is also a command line route, through the project's own wiki page on commands, which the README says may be quicker than scanning via the web UI in case of a large music library, and which optionally allows targeting more than one user at once along with some options not available on the web interface. For a large library that difference in ergonomics matters, since the web UI path is a click and a wait.

## Serving the same library to other clients

The second half of the app is a server, and this is what makes it more than a player. It allows serving audio files from your cloud to external applications that are compatible either with Ampache or Subsonic. The URL you need to connect with an Ampache-compatible player is listed in the settings and looks like this:

```
https://cloud.domain.org/index.php/apps/music/ampache
```

That is the common path, and most clients append the last part automatically, while if you have connection problems you should try the longer version with `/server/xml.server.php` appended. The Subsonic equivalent sits under `/index.php/apps/music/subsonic` and follows the same pattern. The authentication detail is worth reading before you wire a client up. Ampache and Subsonic do not use your ownCloud password, you need a specifically generated APIKEY, and the key is shown once at creation and cannot be retrieved later, so if you lose it you delete it and generate a new one. The application also tells you which username to use, typically your ownCloud login name, or a UUID if you have set up LDAP authentication.

## Installation, and the ceiling on collection size

Installation is through the App Management available on the web interface of ownCloud or Nextcloud for the admin user, and afterwards you may want to select a specific sub-folder containing your music files through the application settings, which the README says is useful to prevent unwanted audio files from being included in the library. The known issues section is where the limits are stated plainly. Scalability for large music collections has gradually improved as new versions have been released, but if the collection is large enough the application may fail to load, and the maximum number of tracks supported depends on your server but should be more than fifty thousand. With tens of thousands of tracks you may also notice a slowdown of the web UI. The other known issue listed is translations, where partial translations exist for many languages. The top level of the repository shows the shape of the app, with `appinfo/`, `lib/`, `templates/`, `js/`, `css/`, `l10n/`, `img/`, `fonts/`, `3rdparty/`, `stubs/`, `tests/`, `build/`, `vendor-bin/`, a `phpstan.neon` and a `webpack.config.js`.

## Conclusion

oc-music fits an ownCloud or Nextcloud administrator who already keeps their music in the cloud storage and wants a browser player plus a standard API for desktop or mobile clients, since the Ampache and Subsonic endpoints are the part other tools can build on. It is the wrong choice for a Nextcloud installation, because the Nextcloud version moved to the nc-music/music repository in January 2026, and it is the wrong choice for a very large collection, since the documentation puts the ceiling around fifty thousand tracks. Before you install, note that the MIME mappings for AIFF, AU and CAF are missing by default and the AAC mapping is missing on ownCloud, so run the register command; and read the known issues on huge collections and translations. The last push was on 2026-10-18 with v2.6.1 released on 2026-08-30, under AGPL-3.0.

## FAQ

### Where do I get the Music app for ownCloud and for Nextcloud?

As of January 2026 the Nextcloud version is hosted at the nc-music/music repository, and the ownCloud version here has entered maintenance mode with only bug and security fixes and no new features, with all open issues transferred to the new repository.

### How do I make AIFF, AU and CAF files playable in the Music app?

Those file types have to be mapped to an `audio/*` MIME type on your cloud instance, and neither ownCloud nor Nextcloud ships those mappings by default, while the AAC mapping is missing on ownCloud but present on Nextcloud. Run `php occ music:register-mime-types` to add the missing mappings.

### How do I connect an external player to oc-music?

Use the Ampache or Subsonic URL listed in the app settings, for example `https://cloud.domain.org/index.php/apps/music/ampache`, and authenticate with the APIKEY generated in the settings rather than with your ownCloud password. The key is shown once at creation and cannot be retrieved later, so it can only be replaced.

### How large a music library can oc-music handle?

The README says the maximum number of tracks depends on your server but should be more than fifty thousand, and that with tens of thousands of tracks you may notice a slowdown of the web UI, and that the application may fail to load if the collection is large enough.

## Sources

- [Issues](https://github.com/nc-music/oc-music/issues)
- [License: AGPL-3.0](https://github.com/nc-music/oc-music/blob/master/LICENSE)
- [nc-music/oc-music on GitHub](https://github.com/nc-music/oc-music)
- [README](https://github.com/nc-music/oc-music/blob/master/README.md)
- [Releases](https://github.com/nc-music/oc-music/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nc-music-oc-music
