When I noticed some bugs in the amarok2 dynamic playlist
-- or it could even be that it was just a feature, but turned out to be bad in my case --
the things which annoyed me a lot where songs which where constantly repeated.
It made the dynamic playlist not so random in my opinion..
So this was when I thought to create my own dynamic playlist which will act as an injector. And by keeping track of the amount of times a song was played, I would distinct them from any other songs, and kept them from playing too many times over and over. Except when it was specified in the condition of the dynamic created playlist..
I took an md5 of the data from every song, so for example, in case they got moved or something, the metadata would still be there. But of course, converting those files or having duplicates which where for example converted to an other encoding or bitrate wouldn't be detected.
Since it was a separate tool, it was also possible to change to another player whenever you wanted to, without losing any data about the songs which where played, or the configuration you had to play those songs randomly. If a dynamic playlist would even had been possible, since that wasn't even possible as most players didn't even had the option to create a dynamic playlist..
The source code can be found here.