I recently moved away from the OCR method of reading data from pandora, and moved to a google chrome plugin. This has the downside of requiring chrome to be running, but it allows infinitely more control.
I’ll do a better writeup soon, but following files make up the plugin:
This is a demo of an iPhone app I’ve been working on to control the Pandora playing on your desktop.
Set the mood with some Barry White before you walk in the door.
Thumbs up/down a song from the couch or anywhere in the world.
See what song is playing without getting up and squinting at the monitor.
Blast the speakers off the deck and pause or turn it down with your iPhone when you hear the cops rolling up.
Using C# I wrote a socket server that coupled with the ASyncSocket library for the iPhone, allowed me to create the Pandora control part of my home-automation app. Here’s a demo video I made for a member of iphonedevsdk.com.
This uses windows APIs to first focus and bring to the front the Pandora One Adobe Air standalone client, then it will grab an image of the screen and Pandora’s coordinates to crop it down to show me what’s going on in the window. Then I chop up the full screenshot and grab the album art send it to the phone and then strip out areas I know contain text and assemble them into a new image that only contains text. Then I run OCR on the image, using the Microsoft Office Document Imaging library, and viola, String objects for the song name, artist, song position, length, etc. I then use pixels colors to determine if it’s on the right screen (stations/playing) and if it’s playing or thumbed up. Note that this will stop working if Pandora changes their UI/colors and the app would need to be updated. I may release source if I can clean up my obj-c and there is interest.
It works great with Pandora v2.0.1 and I use it daily, but I still have lot’s more to do in other areas of the app. I’ll be posting more as it nears completion.