Euterpe is a Python framework for synchronizing music files with a portable music player.


This started as a script for personal uses and hasn’t yet evolved into anything bigger. You can download it and give it a spin (see Usage, but don’t expect anything extraordinary from it.)

For me the only task Euterpe does is this:

  • scan the specified source directory for files named “directory.euterpeidx”,
  • check if corresponding files already exist in the specified target directory,
  • copy missing files from source directory to destination,
  • recode them to supported formats if necessary (recoded file is saved in cache).

Although at first I tried to maintain a decent level of abstraction in Euterpe, at a certain moment I got bored and just hacked the remaining pieces together. So there is some weird code there (see Drawbacks)


  • Download the latest snapshot:

    and unpack it.

  • In a directory with your music files create file named “directory.euterpeidx” listing all the files you want on your media device. For example:

    $ cd $HOME/Music
    $ ls
    Album1 Album2
    $ cd Album1
    $ ls
    $ cat directory.euterpeidx
  • Run the examples/ script. Like this:

    $ ls
    COPYING euterpe examples
    $ PYTHONPATH=. python examples/ $HOME/Music /mnt/player/music
    [ N C  ] Artist1 - Track1
    [ N    ] Artist2 - Track2
    [ N C  ] Artist2 - Track3
    Total: 3 (3 new, 2 to encode)
  • Press Enter and wait until it finishes.


  • There are some obvious hacks, for example the Russian letters transliterator,


  • Support for video can be implemented rather easily


You can get the sources with the following command:

git clone git://