PandoraJam is a Mac application that turns Pandora.com into a desktop app without the awkwardness of Pandora’s first-party Adobe Air application. It does all sorts of nifty things, like responding to the system’s media keys, streaming to an Airport Express, and scrobbling tracks to Last.fm. Although Pandora somewhat recently rolled out an updated, HTML5 interface out to its customers, it still depends on the Adobe Flash plugin to playback audio.
For some time now, I’ve been running my system without the Flash plugin installed. This decision makes Safari more stable, keeps my MacBook Air’s battery lasting longer, and keeps its fan quieter. Whenever a website requires Flash, I open the site up in Google Chrome, which bundles its own version; when I’m done with that site, I quit Chrome.
That works great for general browsing, but it leaves other browsers and third-party applications, like PandoraJam, without a copy of the Flash plugin to use. Since abandoning Flash, I thought I had to give up on using PandoraJam.
I emailed the developer of PandoraJam, asking if there was a way to specify an external path to load the Flash plugin or anything else I could do to avoid installing the for my user (~/Library/Internet Plug-Ins) or globally (/Library/Internet Plug-Ins). Unfortunately, he wasn’t aware of anything I could do to solve my problem.
The last time I searched for an answer to this problem was late August. This evening, after a quick chat with my friend David, whose Google-fu is stronger than mine, we found a solution. A quick read of Daniel Jalkut’s answer to a question on Stack Overflow about WebKit’s plugin search path and Wikipedia’s page about Application Bundles revealed that a small modification to PandoraJam.app would solve my problem without any compromise in my stance on Flash.
PandoraJam’s primary interface is a WebView that loads Pandora’s HTML5 player. Here’s what Daniel Jalkut had to say about OS X applications, WebViews, and how they locate plugins:
By defauilt (sic), it appears the search path goes in this order:
- ~/Library/Internet Plug-Ins
- /Library/Internet Plug-Ins
- App Bundle’s plug-ins folder
So by design, any plugin you include in your app’s bundle will, by default be superseded by a version found in the user or system library folder.
Bingo! We have a solution.
- Quit PandoraJam.
- Find a copy of
Flash Player.plugin. If you don’t have one sitting around, install Flash, and move the plugin out of/Library/Internet Plus-Ins. - Show Package Contents on or
cdinto PandoraJam.app. - Drill down into
Contents. - Create a
Pluginsdirectory (folder) withmkdiror Right Click > New Folder. - Copy
Flash Player.plugininto thePluginsdirectory. - Open PandoraJam!
If I abandoned PandoraJam for several months due to my stubbornness about Flash, it’s likely someone else did, too. Now, we can fight the good fight with a great soundtrack.



