Pandora One Desktop Client Controlled from iPhone

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.

Advertisements

10 responses to “Pandora One Desktop Client Controlled from iPhone

  1. hi.. nice project..
    currently, i did a project about controlling remote control car using iphone. I am stuck in applying asyncsocket into iphone app to send signal through TCP socket port 1000. I would like to send to arduino which act as server.
    can you help me about how to start? any simple tutorial since i am new in xcode. thanks a lot..

    • Hi Nilay,

      Thanks for the comment! 🙂 I never got around to polishing this up for the app store, but I will be looking at that project again soon and will let you know if I get it clean enough to go live!

      Thanks!

  2. Hey Phil,
    Good job, your pandora one iPhone controller is exactly what I’m looking for, I really hope you make it in to the app store, I’ll be the first to buy your app!

    • Hi Jimmy, unfortunately I don’t think I’ll be pursuing the app store route. I’ve since written a google chrome plugin to allow much more control over pandora http://snipt.org/MaOc8. I have it wired into my app with a socket connection, but you could control it with a socket connection straight from the idevice.

  3. Typically I do not read post on blogs, even so I wish to say that this write-up really forced me to take a look at and do so! Your writing taste has been amazed me. Thanks, very excellent post.
    Nike Shox Junior pink italy

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s