While some parts of this application are only applicable to Sonos owners, there is no requirement that you have Sonos equipment.

1. Python

This application depends upon version 2.7.x of Python, which you will need to install before installing my application.

  • the current version of Python preferred. At the time of writing this is 2.7.13, although AlbumPlays may work without problem against any of the 2.7.x releases
  • you do need to use at least version 2.7.9 if you want install any of the optional components:
    • fuzzy logic assistance during scrobble tag matching
    • connect to your Google Play Music library
  • !! NB: AlbumPlays will not run under the 3.x versions of Python
How to get and install Python

Download the current Python realease from

download version 2 of Python

Select the current Python 2.7.x release, and then chose between:

  • Windows x86 MSI Installer
  • Windows X86-64 MSI Installer

select Python installer for Windows

You can chose the later if you have a 64 bit version of Windows, although the 32 bit version would also work. You need to ensure you standardise on one or the other for Python and for any Python add-on that you apply … I choose the 64 bit version … To check whether you a 64 bit version of Windows, right click “My Computer”, and then select “Properties”; look for the System Type line

Then run the downloaded install program. I took all the default options.

  • Python is installed into C:\Python27

2. MediaMonkey

A key deliverable of this application is to populate a MediaMonkey database with your track and album play counts.

  • AlbumPlays can work with either v4 or v3 of MediaMonkey, although v4 is preferred.
  • It works with either the free version of MediaMonkey, or the Gold version ($US 25).
  • The Gold version allows you to create your own indices, for example:
    • Never Played
    • or Unplayed for a year
    • or Played less than 5 times
    • etc etc

You will save yourself a good deal of hassle if you review, and do any tidy up of, the structure of your computer’s music directories before you start using AlbumPlays or MediaMonkey. While it is possible to relocate your files after you start using AlbumPlays, it will be easier if you do any tidying up beforehand.

How to get and install MediaMonkey

Download the current version of MediaMonkey from:

You can chose either the Gold version, or the free version. Only the Gold version supports “customised collections”, which is worth having.

Run the Setup program. I took all the defaults. It created its database in:

C:\Users\\{your profile\}\AppData\Roaming\MediaMonkey\MM.DB
 nb: In Windows XP, version3 of MediaMonkey installed its data at:
    C:\Documents and Settings\\{your profile\}\Local Settings\Application Data\MediaMonkey\MM.DB


Sonos owners

If you intend to use AlbumPlays in Spy mode, you should try to enrol your tracks into MediaMonkey using an equivalent file addressing scheme to that which you used to enrol your tracks into Sonos.

In Spy mode, AlbumPlays observes any local library track which you play using your Sonos equipment, and then matches those observations to your MediaMonkey database. It can make the matches using either of two methods:

Match method Requirements
tags in the music AlbumPlays matches your Sonos plays to MediaMonkey using the tags in your music tracks
Less preferable; but works ok. This is the same matching method that will be used for all of your non-Sonos plays.
track location AlbumPlays sees where the track was played from, and matches to MediaMonkey using track location
Preferable; most efficient, less prone to issues caused by any duplicated tags in your music collection
It is the default method, but requires that either:
    1. your music is on a NAS (or some other network device other than the PC running MediaMonkey),
        and that you enrol your music into both Sonos & MediaMonkey using the same network share name
    2. or, if you don’t have a NAS-like device, all of your music is stored under a single root directory
      nb. your tracks can be further broken down by a folder for each Artist, Album, or whatever you like
          but all of your music folders need to be stored within one upper level directory
          ie. it is ok to have this c:\xxx\music\Jims music\The Rolling Stones\Aftermath
                with this c:\xxx\music\Joans music\The Beatles\Rubber Soul
          just as long is there is common upper level directory, like c:\xxx\music in this example
          This also applies to a NAS; eg. you can have //my_nas//my_share/Jims_files
            and you can also have //my_nas//my_share/Joans_files

Avoid the following:

  • avoid using a network share name for one, and then an IP address for the other
  • and avoid using a network share name in one environment, and a full path specification in the other

If you are not using a NAS and enrol with a common share name, AlbumPlays will be forced to revert to tag matching if you do not have have common upper level directory which contains all of your music (see the Music directory or the my_share network share name in the examples above).

You are able to add music to Sonos or MediaMonkey using multiple non-connected directories. AlbumPlays can handle this also, but that means that it will only use tag matching when trying to match your Sonos plays for importation into MediaMonkey.

Here is an example showing how Sonos & MediaMonkey have been configured to address music tracks. I have obscured the name of my Nas, but you can see that both Sonos & MediaMonkey address my tracks using an equivalent format.

Enrol tracks in Sonos

Enrol tracks in MediaMonkey

You can use the track properties display to review how you enrolled your tracks into MediaMonkey.

review your track location specification


3. Windows

I run most of the application under Windows.

The Python programming language is a good environment for supporting cross-platform program development. There is probably not too much work required to allow the whole application to run under Linux, but I lack the skills and motivation to do this. Anyone with the energy and skills to help me achieve this could contact me.

Sonos owners: There is a part of this application that I do run under Linux. It is the optional part of the application which detects Sonos track plays directly, ie. without the need to to go via the service. I run this part of the application upon a Raspberry Pi (setup instructions here), which is a inexpensive Linux device, requiring minimal power, and which can attach to the network. This enables Sonos track plays to be detected and recorded without the need to leave a PC running. This component can also run under Windows.

4. (optional) Microsoft Visual C++ Compiler

While the C++ Compiler is not a requirement, its presence will boost scrobble matching throughput if you use the optional fuzzy logic component of AlbumPlays.

How to get and install the C++ Compiler

Download the C++ Compiler from here or here

Accept the Microsoft Agreement term, and allow the install to complete.