I’ve been working on getting the RSS that Concerto provides via its API to be as compatible as possible. Adding media RSS support seemed pretty straightforward and enabled us to do cool thing with some RSS visualizers like Cooliris and Google’s Photo Screensaver, but the built in OS X RSS Picture Screensaver never worked with any of our generated feeds. Feeds from Picasa, NASA, Flickr, and alike all worked well in OS X so I tried copying and pasting different formats to no avail. It seemed no matter what I did, substituting the urls for our images crashed the feed.
Turns out, the file extension is important to the OS X screensaver. Since the Concerto API is self-contained, it links back to itself to render images in various sizes. The PHP script that handles the requests responds just like an image with a correct mime-type, some caching headers, and valid image data. Calling this ‘index.php’ with the GET parameters (like index.php?&select=content&select_id=2911&format=raw) makes the screensaver display “The feed you have selected doesn’t have any pictures” or something like, because it thinks all the feed has is PHP files. While it does only have PHP files, those files are outputting image data… not HTML, JavaScript, or text. Maybe this is the quick way Apple avoids downloading files that it doesn’t want to handle like a doc, mov, etc… but the media:content field clearly has a mime-type parameter describing the mime-type of the content.
The solution I came up with: use mod_rewrite and a .htaccess file to send all requests in the API directory to index.php. That way, I can link to something like image_2911.jpg and index.php will get to handle it like it is suppose to.
I can’t take all the credit for finding this bug, August directed me towards the file extension area… I was thinking it was more related to the image headers.
Tags: api, Concerto, os x screensaver

Interesting work around for your problem. Tiger’s RSS visualizer screen saver comes in handy so often. Nice post!