[Rhythmbox-devel] autoqueue plugin for rhythmbox
- From: eric casteleijn <thisfred gmail com>
- To: rhythmbox-devel gnome org
- Subject: [Rhythmbox-devel] autoqueue plugin for rhythmbox
- Date: Mon, 25 Aug 2008 23:51:39 +0200
Hi all,
I've ported my autoqueue plugin (originally written for quod libet):
http://code.google.com/p/autoqueue/
to rhythmbox, as a sort of proof of concept project after factoring out
all player specific stuff from the original.
It's sort of early days, in that it doesn't support all the features
that the original does yet, and it's not configurable at all for now,
but it does seem to work, so I thought I'd start asking for feedback.
What it does is look up similar tracks and artists to what's playing on
last.fm and puts them in the queue. It is similar to Alexandre
Rosenfeld's 'Last.fm Dynamic Tracks' plugin, but (potentially as
mentioned above) has some more features (but also takes more resources
and is less simple/elegant).
What it does differently right now is:
- it remembers played artists, and doesn't queue them again for a period
of time (now set to 1 day, will be configurable)
- it also looks up similar artists, if none of the similar tracks are in
your local library. (The original also looks up by your personal last.fm
tags, I don't know if this can be ported. See below.)
- it stores all the similarity data locally in a sqlite database, so it
should work (after a fashion) even when you or last.fm are not online.
This also means fewer queries to the last.fm webservice.
What I will be able to figure out myself but have yet been too lazy to
do, is:
- hooking up the configurable variables to some UI, so that they can be
easily changed by the end user.
- porting the other restrictions, so that the same songs don't come by
too often.
The features I would like to port, but might need rhythmbox specific
help with:
- I would like to take the 'version' id3 tag into account when looking
up songs, since it often makes quite a difference to the actual
similarity of songs if you have a remix or live version or
original/album version of a song. I know the version is often just
appended to the title between parentheses (in fact last.fm does this),
but I'm anal about this kind of tagging, so I have them split off into
the version tag. There currently seems no way to get at that tag from
the python API, correct?
- I synchronize my last.fm 'tags' (in the web 2.0/folksonomy/tag cloud
sense of the word, not the id3 sense) between my local collection and
last.fm. I put these in a custom id3 tag, unhelpfully and
unimaginatively named 'tag'. I would like to get at these too from the
python API, so I can do similarity lookups on them, when the other
lookups fail, and use them to restrict and relax the searches in smart
ways. In general, is there a reason the actual tags are all hardcoded
into the API? Couldn't an api method be added that takes the tagname as
an extra argument? (I guess that there probably *is* a very good reason,
I just don't know what it is ;)
Anyhow: for now, checking out the trunk, and putting the following files
in your plugins directory:
autoqueue.py
rhythmbox_autoqueue.py
rhythmbox_autoqueue.rb-plugin
will work. If you want to see under the hood a little, while it's
running, run rhythmbox from the command line with:
rhythmbox -D autoqueue
Any feedback is greatly appreciated (if it's not rhythmbox specific,
please send it to me directly, or join the plugin mailing list on the
project page), and if anyone would like checkin rights just drop me a line.
cheers,
--
- eric casteleijn
http://thisfred.blogspot.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]