How to stream iTunes music on a local network

How to stream iTunes music on a local network
Credit: Stephen Glasskeys

Stream music, full blast


You've probably heard by now that the latest version of iOS no longer supports Home Sharing. To substitute for this lost functionality -- as Jared Newman astutely noted -- many users will now likely turn to Plex or Subsonic. Shortly after reading Jared's report, I decided to look on the bright side, and to accept the loss of Home Sharing as a challenge.

So after a caffeine fueled hack-fest of experimenting, script writing, and app testing, I created the following nine step process for my Mac OS X Yosemite machine, a process that could also enable you to stream iTunes music from a Mac to other devices on your home network.

Step 1

Create a new playlists folder under the home directory.

Create playlists folder

Step 2

Using Finder, share the new folder, making sure the everyone group privilege is read only.

Share playlists

Step 3

Copy the iTunes Music Library XML file, and place it in playlists.

Copy music library

Step 4

Download Eric Daugherty's iTunes Export utility. If you chose the console version, extract the zip file to the playlists folder.

$ unzip ~/downloads/ -d ./playlists
Extract zip files

Step 5

Create UTF-8 M3U files (*.m3u8) based on playlist data contained in the iTunes Library file placed in the folder in Step 3.  

$ cd ~/playlists
$ java -jar itunesexport.jar -fileTypes=ALL -useM3U8Ext -library=iTunes\ Music\ Library.xml
Create m3u8 files

Step 6

List all m3u8 files in the playlists directory:

ls m3u8 files

Step 7

Download my script from Github and place it in the playlists folder. This script transforms all of the "file:///" music links found in the original playlist to web URLs in a new m3u file, using the local machine's internal network IP as the webserver address.

This screenshot shows how I ran the script using a rock-n-roll playlist file name  (Rock.m3u8) as parameter. The script used information from the m3u8 file to create a new "URL based" playlist file named Rock.m3u.

$ chmod +x
$ ./ Rock.m3u8
Chmod and run script

Step 8

Return to finder to view Home's Music folder information. The Shared folder property should be checked and enabled.

Next, click the everyone group -- found in the Sharing and Permissions section. This too, should have a read only privilege. If all looks well, click Apply to enclosed items...

Music info

Step 9

Finally, open terminal to find Apache's DocumentRoot folder location. Create a symbolic link named Music in this location, linking it to Home's Music directory (~/Music).

$ cat /private/etc/apache2/httpd.conf | grep 'DocumentRoot "'
$ sudo ln -s ~/Music /Library/WebServer/Documents/Music
Find DocumentRoot

You now should be able to share iTunes music to phones, tablets, and other desktop computers connected via Wi-Fi to your Home's internal network.


For the iPad and iPhone, use the Goodplayer app to download the playlist file and stream music from your Mac's Apache server.

I downloaded the Rock.m3u playlist from my Mac's playlist folder via the SMB/CIFS Client menu:

Goodplayer download playlist

Navigate to the Download folder and tap the Rock.m3u file.

Goodplayer music


In a technique very similar to iOS, download the m3u playlist file using explorer or other file manager, then use VLC to play the music stream:

VLC on windows

This article is published as part of the IDG Contributor Network. Want to Join?

ITWorld DealPost: The best in tech deals and discounts.