05/09/2022, version 2.0.0
I've just released version 2.0.0. With the introduction of Music.app in
macOS Catalina (10.15), Apple broke iTunesFS in several technical ways.
Version 2.0.0 addresses the issue of the library XML file not being
generated automatically and instead makes use of Apple's
for this purpose.
Please note that this framework isn't capable of notifying its clients of
updates on the fly, hence iTunesFS loses this capability on macOS 10.15 and
I've received questions recently regarding the state of
For one, Apple replaced iTunes.app with Music.app which, by default,
doesn't write its
iTunes Music Library.xml file and which
iTunesFS needs for displaying the library contents.
There are two possible solutions to the problem:
- Use the
File -> Library -> Export Library… menu to manually create the
iTunesFS to use the
iTunesLibrary framework for rendering the
- I've already pushed a
ITLibrary branch to the source code repos
that implements this (and also links against
iTunesLibrary.framework's implementation unfortunately is lacking
syncing on-the-fly, providing a worse user experience (at least at the
I'll probably make a release soon, but I still have to find some time.
Current macFUSE 4.0.4 has a bug that makes it binary incompatible with
versions < 4.x, see kGMUserFileSystemMountPathKey removed in macFUSE 4.0.x
This will be fixed in 4.0.5, so for the time being you need to keep using
Yesterday I stumbled across a problem that occured to me for the first time
but seems to have been around for a while:
2020-11-30 16:02:38.340790+0100 iTunesFS[2317:54610] did add library <iTunesLibrary 0x6040000e9390: name:iTunes (v18.104.22.168) path:/Users/znek/Music/iTunes/iTunes Music Library.xml>
kext load failed: -603946985
mount_osxfuse: the file system is not available (255)
In fact when trying to manually load the
kext the error messages don't help
to solve the mystery:
znek@optimist:(~)$ defaults read /System/Library/CoreServices/SystemVersion.plist ProductVersion
10.14.6 # <- for determining which `kext` to load!
znek@optimist:(~)$ sudo kextload /Library/Filesystems/osxfuse.fs/Contents/Extensions/10.14/osxfuse.kext
/Library/Filesystems/osxfuse.fs/Contents/Extensions/10.14/osxfuse.kext failed to load - (libkern/kext) kext (kmod) start/stop routine failed; check the system/kernel logs for errors or try kextutil(8).
A bit of searching around pointed me to the solution: I had too many (!) 3rd party extensions loaded…
there appears to be a hard limit (couldn't find which limit exactly, though) to the number of loaded 3rd party
extensions and unloading some (i.e. from Virtual Box in my case) did the trick:
znek@optimist:(~)$ sudo kextunload -b org.virtualbox.kext.VBoxUSB
znek@optimist:(~)$ sudo kextunload -b org.virtualbox.kext.VBoxNetFlt
znek@optimist:(~)$ sudo kextunload -b org.virtualbox.kext.VBoxNetAdp
znek@optimist:(~)$ sudo kextunload -b org.virtualbox.kext.VBoxDrv
znek@optimist:(~)$ sudo kextload /Library/Filesystems/osxfuse.fs/Contents/Extensions/10.14/osxfuse.kext
Not that obvious I guess.
09/30/2016, version 1.3.6
The problems with macFUSE (3.5.x) have been fixed by new iTunesFS version 1.3.6.
Thanks to Edoardo Comar for reporting this issue.
iTunesFS doesn't work with current
OSXFUSE macFUSE (3.5.x) - it will hang/crash your machine.
03/25/2015, version 1.3.5
Version 1.3.5 will now scan all local volumes for mounted iPods and
iPhones. If you're using i.e.
for mounting your iPhone, this will now work out of the box.
01/14/2015, version 1.3.4
Version 1.3.4 fixes an M3U playlist encoding bug. If you need UTF-8
encoded m3u playlists (m3u8), use the new
If you need to manually adjust the playlists' file extension (i.e. to
M3UPlaylistFileExtension override will come in handy.
01/14/2015, version 1.3.3
Version 1.3.3 adds
M3U playlists via two new user defaults. While
M3U playlists have a very limited feature set, they're supported on a vast
variety of devices (and software). It's also very easy to implement.
In iTunesFS 1.3.3, a new folder Playlists (M3U) can be exposed which
presents all iTunes playlists as their respective M3U equivalents. These can be
used by i.e. your media server (in my case that's
and thus then served via DLNA or UPnP without any hassle.
The second M3U related feature is the optional addition of M3U playlists in the
Playlists folder. If enabled, copying these folders to i.e. an SD-card
also provides proper playlists which some devices (i.e. car hifi systems) might
recognize and use.
08/07/2012, version 1.3.2
New version 1.3.2 brings back PPC support (made possible via changes
to OSXFUSE, thanks to Benjamin Fleischer) and addresses a couple of internal
issues. This version of iTunesFS has been tested on Mac OS X 10.5.8 and 10.8.
NOTE: code release will be delayed for a while as I'm currently
shifting towards using git for development and need to address open publishing
09/25/2011, version 1.3.0
I've just released version 1.3.0 which brings along several changes,
which are not related to iTunesFS itself.
For this version I changed the requirement from MacFUSE to
OSXFUSE. I briefly investigated
FUSE4X as an alternative, but it didn't work out of the box in my
10.6.8 system and had another couple of issues. OSXFUSE, on the other hand,
did work out of the box on 10.6.8 (i386) and on a 10.7.1 (x86_64) testing
So, if 1.2.2 still works for you there's no real need to upgrade to 1.3.0 as
it doesn't bring along any new functionality. If you're on Lion, however, you'll
probably enjoy the update!
NOTE: Current MacBook Pros (2011) boot the 64-bit kernel by
default. This means that MacFUSE 2.0.3 (32-bit) will not load as a kernel extension.
If you see something like this in your logs (i.e. via /Applications/Utilities/Console.app),
you've probably run into this problem:
16.05.11 17:29:53 [0x0-0x5d05d].com.mulle-kybernetik.znek.iTunesFS /Library/Filesystems/fusefs.fs/Support/fusefs.kext failed to load - (libkern/kext) link error; check the system/kernel logs for errors or try kextutil(8).
16.05.11 17:29:53 [0x0-0x5d05d].com.mulle-kybernetik.znek.iTunesFS the MacFUSE file system is not available (71)
Thanks go to Leif Linsert for running into this mess and reporting it. ;-)
04/26/2011, version 1.2.2
On request I've added a couple of useful properties for use by the formatters,
including %(discNumber), %(rating), etc. Also fixed several minor issues and
finally added persistent IDs for playlists on your iPod/iPhone.
The reason I dislike sites like versiontracker, macupdate and mac.informer
most is that not only do they take control over my own products away from
me, but they're also lying about the versions being published. 2 days ago
I released v1.2.1, which is not in beta anymore. Mac.informer goes as
far as saying 1.1.13 is the latest release… sigh.
02/21/2011, version 1.2.1
The new version 1.2.1 provides just two new attributes %(grouping)
and %(genre) for formatting, which might come in very handy if you use
I took some time to port iTunesFS to
GNUstep (once again). As part of the
port and because I'm working on another MacFUSE filesystem, I moved FUSEOFS
into its own repository. It turned out that the port
required a lot more work than initially thought and isn't quite polished as
it could be… but it features a port of the sdk-objc part of MacFUSE
and is thus once again on par with MacFUSE. For those interested, it means you
can use GSFUSE as if it were identical to MacFUSE, but
for any other Unix like OS where FUSE is available, i.e. FreeBSD.
The only prerequisite here is a recent version of GNUstep.
Read more details about the GNUstep port of iTunesFS.
12/23/2010, version 1.2.0
This time the improvements are big enough to justify a jump to
version 1.2.0. ;-)
User defaults, which have been a bit cumbersome to use for ordinary users,
are now exposed as regular text files! There are a couple of files now,
as defaults can be made persistent per playlist. In conjunction with a new
formatter option, which allows arbitrary virtual hierarchies to be defined
as you wish, this brings quite a lot of adjustability to the game. :-)
The contents of the file system are updated as soon as these files are
being saved. When deleting a per-playlist file, the default formatting
is restored for this playlist. Incredible. ;-)
All new options are described in detail in the
tricks section (since version 1.2.0).
09/22/2010, version 1.1.13
Version 1.1.13 works now seamlessly in conjunction with
iphonedisk, a MacFUSE filesystem for the iPhone (be it jailbroken or not). Upon launch iTunesFS will discover an iPhoneDisk volume and offer its contents automatically.
07/09/2010, version 1.1.12
Hannes Nützmann reported that iTunesFS 1.1.11 didn't run on his Leopard (10.5)…
and indeed there was a mistake in the iTunesFS Xcode project that required
10.6 instead of 10.5. I fixed the build and committed the new version
1.1.12 which just fixes 10.5 backwards compatibility. If you're on
10.6 there's no need to update.
03/15/2010, version 1.1.11
A final word on Snow Leopard compatibility: iTunesFS does run on Snow
Leopard and indeed does not require a special version. I've uploaded
version 1.1.11, which not only introduces proper Snow Leopard
compatibility via the stock MacFUSE Core, but also fixes a couple of bugs
with current iPod detection. Please note that mounting an iPhone via
works flawlessly for me (and
10/05/2009, version 1.1.11b3
Yet another word on Snow Leopard compatibility: I've uploaded a version
which fixes a compatibility bug in Google's NSImage+IconData.m,
enabling iTunesFS to run on 10.6. Grab
iTunesFS-1.1.11b3.dmg while it's still
Please note that in my tests I had to use the inofficial 2.1.7
version (see below) to make it work, despite
Amit Singh's explanations why MacFUSE is ok on Snow Leopard. I run
into a different problem that seems to be solved with 2.1.7, only.
Another word on Snow Leopard compatibility: iTunesFS doesn't
(officially) work with Snow Leopard, yet!
Currently there's no official MacFUSE version available which works on Snow Leopard. However,
a contributed inofficial version does indeed work for me on Snow
Leopard (your mileage may vary). If you really need iTunesFS, give it a
Just a word on Snow Leopard compatibility: iTunesFS doesn't work with Snow Leopard, yet!
AFAIK, MacFUSE itself isn't officialy compatible with Snow Leopard, yet,
and the backtrace of the failed iTunesFS mount seems to back this theory.
08/26/2009, version 1.1.11b2
Despite seriously lacking time for proper development, I stumbled across
an interesting inquiry from Yann Ricquebourg to support mounting his
non-jailbroken iPhone. Yann provided me with enough details to
make this happen!
If you want to give it a try, you'll need a brand new beta: iTunesFS-1.1.11b2.dmg. This new version
is able to read the new iTunesCDB database format introduced with iPhoneOS 3.0.
I'm currently lacking time for iTunesFS development, so there'll be no
updates anytime soon (IMO it's feature complete, thus no need for updates
anyways). I had a brief look at
Dokan on Windows which looks promising,
but unfortunately it's not in the shape to begin a port of iTunesFS for
it, yet. Dokan has
bindings which is pretty nifty, given that a mechanism similar to Objective-C
(called extension methods)
was introduced in C# 3.0.
If I were to port iTunesFS to Windows, I'd do a rewrite in C# 3.0 or above
and use extension methods for the FUSEOFS approach.
In C# 4.0, one could even use
via the new dynamic
pseudo type to make this even nicer and more similar to the Objective-C
01/30/2009, version 1.1.10
While reviewing some code, I noticed that I totally forgot implementing
hierarchical playlists, which are possible in later iTunes versions.
It was pretty easy (10 minutes work) to implement, so grab
version 1.1.10 while it's still hot. ;-)
Please note that I've added a new entry in the
cheap tricks section which
explains how to share the
iTunesFS file system via
01/29/2009, version 1.1.9
Thanks to code contributed by Frederik Seiffert of
version 1.1.9 sports a new flawless
iTunes library detection.
01/28/2009, version 1.1.8
Version 1.1.8 fixes a bug introduced
in 1.1.7 release. The allow_other FUSE option, required for
sharing the iTunesFS filesystem
is disabled by default in
1.1.8 but can be triggered via the new
01/25/2009, version 1.1.7
Version 1.1.7 was released 2009-01-25. It should have been released in January 2008,
but unfortunately my new contracting work stalled every personal software
project until now (and will probably continue to do so for several years).
This version fixes another set of Leopard issues and adds support for burn
folders in Finder - now you can directly burn your playlists from
Finder, without the need to do this in iTunes™ -
thanks go to Dan Villiom Podlaski Christiansen for
contributing this addition.
Starting with this version, a freshly mounted iTunes file system will
automatically open a Finder™ window.
Both changes can be controlled via
new user defaults. Worth noting: this version fixes a long standing
Unicode encoding problem which lead to some files not being able to be
copied by the Finder! Users with tracks bearing accented characters
(i.e. Brazilian songs) will be delighted to hear this most likely! ;-)
This new version requires MacFUSE core 2.x!
Mac OS X 10.4 (Tiger) support has been dropped in 1.1.7.
I don't have a proper Tiger system available for testing and thus cannot
guarantee that 1.1.7 will work on Tiger. If someone wants to step up
and provide this support for Tiger, I'll reenable the build for Tiger.
12/31/2007, version 1.1.6
Version 1.1.6 fixes the
"not visible in Finder's sidebar" problem on Leopard. Also,
there's a new NoITunes default which, if set,
prevents the iTunes library from being displayed.
10/30/2007, version 1.1.5
Version 1.1.5 sports support for
Jailbroken iPods and iPhones (tested with an iPod Touch,
thanks to Terrance Lam).
For users who mount their iPhones and iPods via
MacFusion, set the new iPodMountPoints
user default to the appropriate mount point.
Also new in this release is the existence of a new
Compilations group, thanks to code contributed by Mark Wallis.
07/03/2007, version 1.1.4
sports formatters which enable
you to customize
the formatting of track names displayed in Albums and Playlists in
a very generic way. If you don't like the playlist index as a prefix
you can easily redefine the formatter to not include it, and so on.
06/14/2007, version 1.1.3
introduces "categories", which means that from now on you can browse
by Artists and Albums in addition to the playlists. The file system
hierarchy will be expanded, accordingly and has been localized for this
purpose in German, French, Italian,
Spanish and Japanese. If you don't need this feature,
which is enabled by default, you can turn it off using
One more thing! ;-) This version has also been ported to
GNUstep - this means that from now on you can write FUSE based
file systems in
Objective-C on any platform which is supported by GNUstep!
05/31/2007, version 1.1.2
Version 1.1.2 fixes a bug
that prevented tracks from being accessible which had a question mark
("?") somewhere in their path name. Also, file metadata is
now computed from the libraries' contents. Libraries having just one
playlist (i.e. Shuffle devices) do omit this playlist and instead
display all tracks at once. Last but not least,
added the ability of
symbolic links instead of "faking" the presence of
files. People using iTunesFS in association with shell scripts might
prefer that option.
05/29/2007, version 1.1.1
Released version 1.1.1. It fixes a bug
that prevented iPods from unmounting. Also, iTunesFS
can be told not
to scan for iPods at all. In case no iPod is found, the file system
hierarchy will be missing the libraries entry, which is much more
convenient in these cases I guess.
05/24/2007, version 1.1.0
Released version 1.1.0. It adds the
not-so-long anticipated support for iPod™s!
05/23/2007, version 1.0.4
Just released version 1.0.4. It currently
supports a single iTunes™ library only, but there will be support
for iPods in the near future I guess! ;-)