Migrating from Songbird to Rhythmbox

June 4, 2010 4:40 pm

Once upon a time a company created Songbird. A music player designed to supplant all other music players and have Linux compatibility with iPod support. So we set Jess up with it and she started using it to organize and play her music. And it was good.

Mostly.

Turned out that the iPod support was flaky at best, but they were supposedly working on it. Then Songbird announced that they were dropping iPod support. A few months went by and then Songbird announced they were dropping Linux support. So now they're just another music player in a sea of existing and mature players with nothing much to distinguish them from the rest.

So lacking iPod support and getting no further updates for the Linux version we needed a new solution for Jess' music needs. However, she'd already gone through all the hassle of getting her music library setup just right in Songbird with all her ratings and playcounts and playlists. Since she has several thousand songs she didn't want to try to redo all that by hand.

Being the master of computer science that I am I decided to take it upon myself to figure out how to automagically migrate her music out of Songbird and in to Rhythmbox. (When combined with Gtkpod these 2 make an acceptable and working solution for music management and iPod syncing.)

Unfortunately, for unknown reasons neither system used any kind of normal standard for storing their data. Well, that's not entirely true. Most of the data is just fine. But file location data was a mess. Songbird stored it in some weird convoluted ascii encoding of unicode. Rhythmbox stores it in some randomly/partially url-encoded form of unicode. But lacking any clear documentation on the matter I had to reverse-engineer both formats. It was a pain.

But I did it! And now for your benefit I present my automagic music migrator to get you successfully and as painlessly as possible from Songbird to Rhythmbox.

I'm hosting this project on Github: http://github.com/kdickerson/Export-from-Songbird

Download the file songbird_to_rhythmbox.py file and then run it:

#python songbird_to_rhythmbox.py

or make it executable and run it:

#chmod +x songbird_to_rhythmbox.py
#./songbird_to_rhythmbox.py

It will ask you 2 questions. 1. What user you'd like to migrate (the default is the current user, so most people will just hit enter). and 2. If you would like the script to overwrite your existing rhythmbox library or just output the migration to a new file for you.

I wrote and used the script with Python 2.6.5

What this script WON'T do:
It won't migrate playlists. Jess already had an export function for playlists in Songbird and exporting the playlists as M3Us and then importing to the migrated Rhythmbox worked with only a very small percentage of errors for files with special characters.

I thought about spending the time to automate migrating playlists, but I don't feel like it. Rhythmbox stores playlists in another xml file and Songbird stores them in the same database as the other data, so you can use my script as a guide to write your own playlist migrator if you'd like.

Our day off

May 31, 2010 10:02 pm

Today we finally got around to renting a Rug Doctor and getting the carpets cleaned. Overall they hadn't been too bad, but there were some spots near the kitchen. Several months ago I knocked the syrup bottle off the counter (or dropped it or something). Plastic bottle, no problem--except when it lands on the brittle plastic lid, which explodes sending syrup all over and then allowing syrup to pour forth all over the floor. Luckily most of it was on the tile, but some of the splashes from the explosion got on the carpet. We cleaned it up as best we could, but over time the spots held on to more and more dirt and grime.

So we finally got that all cleaned up. After moving the furniture off of the carpeting (as much as possible) and vacuuming it only took about an hour to do the actual carpet cleaning.

So then we got to leave and let the carpet dry as much as possible. So we went and got lunch and then went to the park. But the sun decided to go hide behind some clouds and with the wind it wasn't very warm. So we went and watched Iron Man 2, which was about what you would expect from a summer action movie. It wouldn't have been quite so ridiculous if they didn't have two gaping problems: 1. When Ivan is wielding his light-saber-whips (for lack of a better term) why doesn't anyone just shoot him? He's not wearing any armor! Instead he gets to destroy things for awhile until Tony finally puts him down. Then cops show up with their guns and arrest the guy. 2. Tony's multiple suits are designed for his body, which means they've been designed to use his implanted-into-chest power source. However, Roadie (however you spell it) is able to just hop into one of the suits without a problem.

Anyway, it was about what you'd expect from a summer action movie. Not as good as the first one though.

After the movie we came home to check on the carpet which was drying satisfactorily. So we lounged about for a bit and then went and got dinner. After dinner it was time to put the apartment back together. And here we are. An exciting day overall.

It's really nice to have the carpets clean again.

Is copyright actually beneficial to society?

May 26, 2010 9:32 am

Copyright law is one of the areas that keeps coming up for scrutiny as more of our daily life occurs within a digital (and thus trivially copied and shared) world.

There is a TED talk by Johanna Blakley entitled "Lessons from fashion's free culture" in which she discusses the lack of intellectual "property" protection in the fashion world (and in a myriad of other industries). It is very interesting and I highly recommend watching it. It's only 15 minutes and is available on the TED website here: Johanna Blakley: Lessons from fashion's free culture or on YouTube here: Johanna Blakley: Lessons from fashion's free culture. She refers to a website for more information which has currently been Slashdotted (that's slang for "collapsed under the strain of trying to serve up content to all of the Slashdot readers, like me, trying to view the site"). When it comes back to life it's available at readytoshare.org.

One of her best points is that copyright is always touted as the protection which drives innovation and investment into an industry. She then shows a graphic comparing the gross sales of industries with no or little IP protection against gross sales of industries with lots of IP protection. It's absolutely staggering how small industries with incredibly strong copyright protection like film, books, and music are when compared with industries with no copyright protection like clothing and food.

She has a quote from Stuart Weitzman, a shoe designer, who says that while the lack of copyright protection is frustrating it actually forces him to innovate far more than otherwise because he has to stay ahead of the curve before the cheaper knock-offs catch up rather than making one design. He also has to try to come up with designs that will be difficult for the cheap knock-offs to copy.

Sounds to me like he actually has to work, unlike one-hit-wonder music artists who live off of a single song for 30 years and feel entitled to never having to work again.

If you haven't gone to watch the video you really should. As I said, it's only 15 minutes and it's very interesting.

Florida Part 3

May 16, 2010 12:14 pm

IMGP1887Friday was the big day of the launch. Our vehicle placard was for 9:00am, so we were supposed to arrive at the visitors' center by that time. Expecting traffic to be a disaster we planned to be on the road by 7 at the latest. Mom had decided to ride with us to make travel arrangements easier for everyone else and since she'd probably be up by that time anyway.

So we got up before the sun and got ready to go. The free breakfast at our hotel started at 6:30 so we popped in there right after it opened and grabbed some food to eat on the road. We picked up Mom and headed off. I re-routed us around Orlando to avoid any normal traffic delays expecting regular commuter problem to be exacerbated by launch-watchers.

Being so early we didn't have much trouble. About 10 miles out we hit bumper-to-bumper traffic on the single-lane-per-direction road connecting to the causeway over to Merritt Island. It moved along fairly regularly though. The placard checkpoint was about 6 miles out from the visitors' center and once we passed that it was smooth sailing to the parking lot. All in all, our drive out was not bad. It took about 2 hours total.

Another group of our party was set to leave about an hour after us and their trip took a little longer but they arrived without too much trouble. The final group was supposed to arrive by 11. They were stuck in much worse traffic and it took them about 4 hours to get there, I think. Apparently the big hold up was the vast number of vehicles that didn't have placards that thought they'd just drive out there regardless.

Anyway, we arrived a little before 9.IMGP2138The Launch was scheduled for 2:20pm, so we had several hours to kill. We started by heading straight to the IMAX theater to watch the IMAX 3D Hubble Telescope story. Jess loved it. She really likes the Hubble pictures and they used some fancy techniques to create 3D models of the imagery and then fly you through it. It was pretty cool.

After the IMAX movie we met up with group 2 that was arriving. We also took the opportunity to apply ample amounts of sunscreen. Then it was time for lunch. We went to the Orbit Cafe and bought hamburgers and fries.

Once we were done with lunch we went and looked at the astronaut memorial and saw an alligator and a big turtle hanging out in the water. Then we wandered over to the Rocket Garden and read about some of the ridiculously large rockets that were built over the years.

It must have been around this time that the final group arrived and we went to find somewhere to try to watch the launch. It was crowded, to say the least. And it was insanely hot and also rather humid. All things that make for a great party on concrete. We had about an hour to wait. So we waited. We were able to see the screen they had set up so we had some status updates. Finally it was launch time. Everything was looking good and the 10-second final countdown began.

The engines fired up and the shuttle began to rise into the air. Being 7 miles away you don't hear much of anything for quite some time. But we watched it rise up over the treeline (no direct line of sight to the pad from the visitors' center). I had thought about renting a really fancy lens to try and get some sweet pictures. But decided against it and just snapped away with our dinky little 55mm lens.

The pictures are acceptable for remembering the event. Here's just after liftoff:
IMGP2025_26_27

And the smoke plume around the time the solid rocket boosters were getting dropped off:
IMGP2073_74_75

It was a mighty fun rumble when the sound wave finally reached us. After the shuttle was out of sight we went in to the Launch Status Center and watched some replays from the various NASA cameras. After some much needed air conditioning and sitting we went and saw the mock-up shuttle and then went to the Shuttle Launch Simulator. The SLS was pretty fun. I'd recommend it. The nice thing about the Visitors' Center is that the extras inside are included in the price. So it doesn't cost extra for the IMAX or the Launch Simulator.

After that we met up with the remaining other group and got ready to head back. One group left while we waited for Mike who would transfer to our vehicle. So we got some ice-cream cones and waited for him to checkout at the gift shop. We finally left about 30 minutes after the other group.

He checked his fancy Nexus One phone and found out how bad traffic was so we routed around the damage and had the GPS find us a new path away from the toll roads. We ended up one some little road with no phone service but also no traffic and cruised right along at 55-60 mph. We actually got home before any of the other groups. The first group to leave had left a couple of hours before us, but gave up and stopped for food. We thought it was pretty funny. It pays to travel with the nerds.

Florida Part 2

10:07 am

Our original plan was to go to Epcot on Thursday. But, seeing how we didn't get to the hotel until 2:30-3:00am we ditched that plan and slept in. We spent the day relaxing and recovering from traveling.

We eventually got up and went to lunch at Chick-Fil-A. Jess was very excited since the closest Chick-Fil-A to us in California is about 30 minutes away. It was very tasty and probably the best service I've ever seen at a fast food restaurant. After lunch it was back to the hotel for more rest and relaxation.

The hotel we're staying at is on a resort property which has a miniature golf course. Nothing fancy, but something to do for fun. So we played a round.IMGP1816As we walked back to our hotel room we discovered that the little covered bridge on the property was lit up. So we stopped to take some pictures.IMGP1854The rest of the Dickersons, all of whom also participated in this trip to Florida, had spent the day at Magic Kingdom. We met up with them at the house they're staying at to celebrate Chad's birthday.

That was pretty much the entirety of our second day. It was quite nice to just kick back and relax. So we were all rested up and ready to go for day three: launch day.