Child pages
  • iRiver s10

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is I have to say a rather nice little music device. It's plays oggs which is of course fantastic, the only drawback is the strange playlist '.pla' format. These can be written using the windows only software which comes with the player, but for those of us on linux there is nop no such facility. I have spent some time with a hex editor reading the playlist file generated by the player and have determined the format which I detail here.

The file can be considered to be broken up into 512 byte chunks, the first is the header and every one after that is a songtrack.

File Header Format

Section
bordertrue
Column
width1%

#

Column
width5.5%

Format Header

Column
width93.5%

Playlist Header

The first 4 bytes are the number of tracks in the file, this appears to be big-endian bigendian as I have only seen the 4th of these bytes with anything in it.

...

The track listings appear to be in big-endian bigendian 16-bit format. That is there are two bytes for each character but I have only seen the second of these used for anything. I'm assuming the extra space is used for non-latin character sets but all the lists I've been working with simply have a '\0' as every other byte.

The first 2 bytes specify the 16-bit byte in this chunk from which to read the display part of the filename, that beign being the first character after the path. The remainder of the 512 bytes contain the path and file name of the track relative to the root of the s10 with '\' slashes.

...

A python script can be found here which does a decent job. It gets a couple of things wrong, namely the number of tracks before the header and the first 2 bytes of the track listing, so an incorrect track name will be displayed.

I have updated it to correct these two issues, iRiverPlaMaker.py

To continue with the example, the way to use the script would be from within the /Music/wish you were here directory on the s10.
# ls | ../../iRiverPlaMaker.py ../../Playlists/wish\ you\ were\ here.pla
when the python script is in the root directory of the s10.