You are here: Home » Topic » Banshee/Rhythmbox: Smart playlists over DAAP?

Banshee/Rhythmbox: Smart playlists over DAAP?

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #1651
    jcornwall
    Participant

    I’ve set up Firefly 0.2.4 on Ubuntu Feisty 7.04 and it seems to be going well. iTunes sees my entire collection and a smart playlist I’ve configured.

    I’d like to achieve the same on Linux. Rhythmbox was my first choice – it found the library correctly but 0.10.0 failed to see the smart playlist due to this bug: http://bugzilla.gnome.org/show_bug.cgi?id=390643. I’ve now set up Banshee and this also fails to the shared smart playlist – just the main Library appears.

    Have I configured something incorrectly, or do no Gnome-based Linux media players work with DAAP-shared smart playlists yet? Is it worth building development versions of either of these players?

    #12175
    rpedde
    Participant

    @jcornwall wrote:

    I’ve set up Firefly 0.2.4 on Ubuntu Feisty 7.04 and it seems to be going well. iTunes sees my entire collection and a smart playlist I’ve configured.

    I’d like to achieve the same on Linux. Rhythmbox was my first choice – it found the library correctly but 0.10.0 failed to see the smart playlist due to this bug: http://bugzilla.gnome.org/show_bug.cgi?id=390643. I’ve now set up Banshee and this also fails to the shared smart playlist – just the main Library appears.

    Have I configured something incorrectly, or do no Gnome-based Linux media players work with DAAP-shared smart playlists yet? Is it worth building development versions of either of these players?

    I don’t know any, sadly.

    The Rhytmbox bug seems strange, if the resolution noted by the poster is right — that it couldn’t find the name. that’s the minm, and that gets set in all playlists.

    Not sure what the deal with that is.

    #12176
    jcornwall
    Participant

    OK, no worries.

    I’ll dig into Rhythmbox’s code when there’s a spare moment on my TODO list and see what I can come up with. Will let you know the results. 🙂

    #12177
    rpedde
    Participant

    @jcornwall wrote:

    OK, no worries.

    I’ll dig into Rhythmbox’s code when there’s a spare moment on my TODO list and see what I can come up with. Will let you know the results. 🙂

    If you can find what it is that makes it unhappy, I can fix it on my side too… I’d like to get that working. If we both get patches on both sides, then upgrading one or the other would be enough to make it work, which would be easier.

    — Ron

    #12178
    jcornwall
    Participant

    OK, I have the beginnings of an answer here.

    A bit of tracing shows that Rhythmbox’s parser doesn’t recognise the ‘aeSP’ (com.apple.itunes.smart-playlist) content code, causing it to bug out before it reads the ‘minm’ playlist title (which later causes it to give up on the playlist altogether).

    I’m not entirely familiar with the DAAP protocol yet so I’m not sure if Rhythmbox is meant to ignore that entry and continue parsing. Let me grab some documentation.

    Edit: OK, here’s the problem. I think Rhythmbox developers were a bit lazy and didn’t bother to request ‘/content-codes’ for the correct dictionary. Instead, all of the content codes are hard-coded which means they cannot parse any code newer than the ones they have (because they don’t know it’s size).

    The correct solution is to implement a /content-codes parser, which I will suggest, but don’t have the time to do this myself. So instead I’ve added the offending content code into a hard-coded patch and will submit this upstream with the aforementioned comment.

    http://www.jcornwall.me.uk/patches/rhythmbox-aesp-daap.patch

    #12179
    jcornwall
    Participant

    Playlists pop up but there’s one more bug to hunt now. Rhythmbox crashes with lots of console warnings upon trying to stream a radio URL from Firefly, although this works fine in iTunes.

    Investigating!

    Edit: Rhythmbox accepts the ‘asul’ (daap.songdataurl) content code but ignores the value. It later tries to stream the playlist URL from Firefly, which (correctly) responds with a 500: Can’t stream radio station. The error isn’t handled cleanly and causes havoc in GStreamer.

    The correct behaviour is to store the radio URL and to pass this to GStreamer later. I’m implementing this in a patch now because it’s quite important to my media server setup. 8)

    And the second patch is done, will file a new bug report for submission.

    http://www.jcornwall.me.uk/patches/rhythmbox-daap-radio.patch

    #12180
    rpedde
    Participant

    @jcornwall wrote:

    Edit: OK, here’s the problem. I think Rhythmbox developers were a bit lazy and didn’t bother to request ‘/content-codes’ for the correct dictionary. Instead, all of the content codes are hard-coded which means they cannot parse any code newer than the ones they have (because they don’t know it’s size).

    I can also make a “don’t claim to be aeSP” config value as well, for compatibility until the patch makes it to release.

    As a generic thing, one can always “parse over” atoms that aren’t recognized, just by getting the size and skipping over it.

    That might be the cleaner patch.

    — Ron

Viewing 7 posts - 1 through 7 (of 7 total)
  • The forum ‘General Discussion’ is closed to new topics and replies.