Michal Kohutek
An iPhone with earphones

The surprising difficulty of playing local music on iPhone

In the era of music services, it’s surprisingly difficult to find a good traditional music player for iOS. While there are many options, most were designed with only one use case in mind.

The question whether Android is better than iPhone is a topic for another day. This post assumes dealing with an iPhone.

Although music services like Spotify allow downloading music for offline playing (and work like charm on iPhone), having a traditional music folder with mp3 files is still a relatively popular option. This post assumes using a folder with mp3 files. Which one is better or whether to hold to old habits is again a topic for another day.

Also, there’s an assumption that the data allowance is not great.

Problems with Apple Music

Apple has iTunes, an application for Windows and Mac that can be used to move files to iPhone. It is not provided for Linux and it doesn’t always work on Wine. I was also told that it’s rather annoying to do even on Windows, but I haven’t tried it myself.

Ubuntu allows connecting to an iPhone and moving files into it without installing anything, but the files need to be indexed in some way, simply moving them there will not make them visible. Ubuntu has an application called gtkpod that should be able to move files into an iPhone, however, it only supports very outdated models.

Searching the App Store

Typing music player into App Store shows a load of application front ends to various streaming services. These were unfit for the same reasons as Spotify.

Here comes a problem with the iOS platform. Because of its sandboxing, it is not possible to have an app access data copied via a USB/lightning cable or make its folder available for copying via USB/lightning. But I guessed that somebody had to figure something out.

Typing offline music player yielded better results. There is an app called Offline Music Player that can open the HTTP port that can be accessed from a computer to upload files there, copying the files over WiFi without needing a good Internet connection. The problem seemed solved.

However, it turned out this music player had a set of problems unrelated to its ability to play music offline. Closing the app (which was done automatically after some time) causes it to forget its playlist position. The web interface allows uploading multiple files, but that requires mass selecting them from a single folder. The music can be sorted into playlists and also by artist or by album, but albums cannot be sorted by artists. Also, iPhone allows opening ports only to apps that are currently active, which causes the upload to fail when the phone’s screen turns off after a while of inactivity. Another problem is that when magnetic Bluetooth earphones connect with each other, which is normally a signal to hang up, it starts playing music and would not stop until they’re separated (this isn’t an iOS problem).

Put the earphones in this position and Offline Music Player will play… pointlessly

Another app is called Cloud Music Player (named so because it allowed downloading mp3s from Google Drive and iCloud) that actually supports restarting from the place where it was when shut down, however, it cannot sort music files into artists and albums. Its main use case seems to be playing a shuffled collection of favourite songs. It supports manually sorting them into playlists, but doing that for several hundred songs… I wouldn’t ask this from anyone.

There are some other apps, but they usually have one or more of the following problems:

  • A Chinese clone of Cloud Music Player with no additional functionality and extra ads
  • No way of copying without using Google Drive or iCloud (which is a way, but needs high upload speeds across the Internet, not only inside the local network)
  • Requiring payment without any guarantee it doesn’t have any of the above listed problems, or even periodic payment for usage

Using Google Search

Searching though Google pointed me to several additional solutions. The first one, foobar2000, worked as an FTP server, allowing very convenient access, and was able to keep the screen on to prevent server shutdown. It was good but surprisingly, when it was turned off, it forgot its playlist position. So close.

More refinements of Google Search and more unfit apps finally led to one that fitted the requirements. It’s called Capriccio. It offers both a web interface for uploading and FTP access, while keeping the screen on. It can sort music by artists and albums. It remembers its position. It doesn’t have any problems with Bluetooth earphones. Only its restricted version is free, but it’s good enough for most purposes.

Its downsides are that there doesn’t seem to be a play queue feature (maybe only the paid version has) and its interface is not very intuitive (it doesn’t even look like an iPhone app), requiring a lot of trial and error to find out how to use it, but that isn’t a big deal in the long run.

Capriccio doesn’t have particularly good appearance, but serves its purpose well.
The black space on the bottom is reserved for ads, even if the phone is offline.


In the era of music services, it’s surprisingly difficult to find a good traditional music player for iOS. They are available by default on platforms like Windows, Linux, Android or Toyota Touch. The main barrier seems to be the difficulty to access files copied from a computer.

While there are many options, most were designed with only one use case in mind. Neither is perfect, but Capriccio seems to be the best option.

Leave a Reply

Your email address will not be published. Required fields are marked *