« PreviousNext »

Rhythmbox iPod sync plugin

16 November 2007

Since Rhythmbox doesn’t handle smart playlists on my iPod, my days of listening to music directly from my iPod are over.

While I do use iTunes at home to do my normal master sync, I need to have my music on my computer at work. So I simply rsync my iPod’s Music to my computer.
rsync -av --delete /media/BFUNGUS/iPod_Control/Music/ ~/Music/
Change the location of your iPod if named and/or mounted differently.

This works great. Rhythmbox found and read the tags of my music, and I have a fully functional music player. Except for one thing. I regularly use ratings and time of last play to make smart playlists. I need this data synchronized to and from my iPod.

Enter the iPodsync plugin for rhythmbox to synchronize ratings, time of last play and play count to and from the iPod. It will autodetect the iPod via GnomeVFS calls. It connects the rhythmbox API to the libgpod API to make the mesh. After installing and enabling the plugin, it will add a Tools -> Sync iPod menu item to initiate the sync. There is no other GUI yet to give you an indication of progress, but it is pretty darn quick. Any Rhythmbox GUI experts want to help out?? :)

Anyway, here it is.
Just extract this archive to your rhythmbox plugins directory (/usr/lib/rhythmbox/plugins). Restart rhythmbox, and you should be good to go.
Rhythmbox iPod Sync plugin

Tags: , | Trackback | del.icio.us | Top Of Page

    17 Responses to “Rhythmbox iPod sync plugin”

  1. Download Music » Rhythmbox iPod sync plugin Says:

    […] You can read the rest of this blog post by going to the original source, here […]

  2. mockenh Says:

    Wed Nov 28 20:33:36 CET 2007 xxx
    * Guess which side’s rating to update if both sides have ratings that differ (instead of prefering RB’s rating)
    diff -rN -u old-ipodsync/__init__.py new-ipodsync/__init__.py
    — old-ipodsync/__init__.py 2007-11-28 20:34:45.000000000 0100
    new-ipodsync/__init__.py 2007-11-28 20:34:45.000000000 0100
    @@ -103,8 103,18 @@
    rating = self.db.entry_get(entry,RATING)
    if rating:
    if track.rating != rating:
    - print “Updating ipod rating”
    - track.rating = rating
    # If the track is rated on both sides but ratings differ our
    # best bet is to use the rating from the side where it was
    # played last since that’s likely where the rating was changed
    # (prefer RB if ‘last played’ is equal on both sides)
    t = track.time_played
    e = self.db.entry_get(entry,LAST_PLAYED)
    if t >= e:
    self.db.set(entry,RATING,track.rating)
    print “Updating rhythmbox rating”
    else:
    print “Updating ipod rating”
    track.rating = rating
    else:
    if track.rating:
    print “Updating rhythmbox rating”

  3. mockenh Says:

    Let’s try that again:
    At hhttp://pastebin.com/m3675ec84 I posted a patch that takes an educated guess concerning which side’s rating to update if both sides’ tracks have ratings that differ

  4. legatoloco Says:

    so where will this plugin log errors? i copied it to the plugins directory. it showed up in my list of plugins. but when i try to activate it, i only get:
    “plugin error: unable to activate plugin iPod synchronization”
    is there a log i can check to know what it happening?
    thank you

  5. legatoloco Says:

    never mind, i started rhythmbox from a terminal and started seeing the errors on screen.
    i was missing the python-gpod module.
    downloaded and now sync is running (but no idea if it’s working correctly, yet :) )

  6. upssy Says:

    hmm, the plugin doesn’t work for me.
    rhythmbox crashes:

    ** (rhythmbox:27038): WARNING **: iTunesDB and ArtworkDB artwork sizes inconsistent (0 1 != 664022313)

    ** (rhythmbox:27038): CRITICAL **: error_no_itunes_dir: assertion `error’ failed
    Segmentation fault

    rhythmbox 0.11.2-0ubuntu4~feisty1
    python-gpod (0.4.2-0ubuntu2)
    iPod Photo (Fourth Edition)

    any hints?

  7. paulw Says:

    At first I was having the issue that legatoloco described (the missing package). After installing that I’m able to turn on the plugin. Now when I try to Tools > Sync iPod, I get this in the terminal followed by a crash:

    paulw@shady:/usr/lib/rhythmbox/plugins$ rhythmbox
    Rhythmbox: could not connect to socket
    Rhythmbox: No such file or directory

    ** (rhythmbox:5396): CRITICAL **: error_no_itunes_dir: assertion `error’ failed
    Segmentation fault (core dumped)

    So I checked to make sure that I do have a default music directory set (I do) in preferences. What will I need to do to correct this?

  8. Alex Glasser Says:

    Whenever I try to sync my iPod (touch, mounted at /media/ipod/), it just waits about 5 seconds, then doesn’t do anything. Just goes back to the normal Rhythmbox screen, showing the current contents of my iPod.

    What do I do now?

  9. Luke Says:

    Where can I get the ‘rb’ and ‘rhythmdb’ modules?

  10. raulr Says:

    umm, i think my problem’s probably a little more basic, but i’m pretty newb-ish when it comes to the linux filesystem structure

    i can’t even get it to show in my list of plug-ins, and yes, i did extract the .gz to the right directory.

    although i did so using a “sudo nautilus” window

  11. Stefan Says:

    Make this official. Please. :)

    Also make it sync playlists and podcasts so I can finally delete itunes and get my mom to switch to ubuntu.

  12. emmajane Says:

    When I unzipped the file I noticed the file name was ipodsynctar. I renamed this to ipodsync.tar and then was able to see the plug-in listed in rhythmbox.

    To install the “gpod” module I used the following command in a terminal window:
    $ sudo apt-get install python-gpod

    The module is now visible and can be enabled within rhythm box. I think I’m still having problems with syncing data, but maybe this will be helpful to those who have a more recent iPod. :)

  13. emmajane Says:

    I forgot to mention once I renamed the file to ipodsync.tar I still had to unpackage that archive with the following command in a terminal window:
    $ sudo tar -xvf ipodsync.tar

  14. Bobbo Says:

    After installing python-gpod, I could enable the plugin… but when trying to hit “sync ipod” rhythmbox would just close.

    The console revealed this:
    ** (rhythmbox:28023): CRITICAL **: error_no_itunes_dir: assertion `error’ failed
    Segmentation fault (core dumped)

    Any ideas?

  15. abo Says:

    The same here:

    andreas@fizban:~$ rhythmbox

    ** (rhythmbox:20192): CRITICAL **: error_no_itunes_dir: assertion `error’ failed

    Segmentation fault (core dumped)

  16. Travis Says:

    So to date we still have no one who can help us fix this little problem? Seems like a lot of people have the same problem with getting the package in the right place, getting the missing file and then being stopped by nothing happening… WTF?

  17. fungus Says:

    Updates here.
    http://www.kittypee.com/2008/04/22/updated-rhythmbox-ipod-sync-plugin/

Leave a Reply