Empowering feed with Media RSS via Yahoo Pipes
- Interfacelift is one of the best wallpaper sites.
- John’s Background Switcher (JBS) is one of the best wallpaper changers.
They were destined to be together, but for destiny to happen someone (me this time) must take his tools and make it happen.
Feed support in JBS
Support for RSS feed is latest feature of JBS. RSS is excellent format and is good alternative to hard-coding support for services. Basically you take feed with images and they jump on your desktop.
Since feature is in early stages of development turns out it only supports specific RSS extension – Media RSS. Interfacelift doesn’t provide feed in this format so I started to think how to work around this limitation.
Media RSS format
MRSS is extension of RSS format developed by Yahoo. It is completely backwards-compatible to RSS markup but with additional tags for precise description of linked media.
MRSS specification http://search.yahoo.com/mrss
So to get MRSS-capable feed out of regular one I needed to take image links and add them to feed, wrapped in additional tags. All good except Interfacelift feed does not have link to images.
Tinkering with Yahoo Pipes
I like to use Yahoo Pipes (except times it drives me crazy with bugs) so it was my first-choice tool to throw at task.
- I carefully studied content of Interfacelift feed and links to actual images.
- First I tried to use link to wallpaper description page but it was too different and solution quickly got bulky (in pipes terms – not fitting into screen, literally).
- After that I only had description to work with. I run it through regex filter extracting link to thumbnail that went to media:thumbnail tag.
- Thumbnail link I got was pretty close to image except minor difference in path and lacking image dimensions. Interfacelift provides wallpapers in numerous sizes so I added user inputs to choose size needed and linked those into formed link in media:content.
- It was all good except live feed was missing media:content tag, while working perfectly in debug mode. Took a lot of troubleshooting until I remembered about pipes forum and found answer. I had to put my newly-formed media tags in media:group to escape bugged behavior.
- Feed was working but JBS could not find images in it. This required adding medium and type attributes to media:content.
Resulting converter
After cleanup I got decent converter, producing feed with images of user-specified size (as long as it fits one of actually provided by site). Resulting feed doesn’t validate because media:group is not supposed to be used with single element. Still good enough for JBS and works perfectly after day of testing.
Converter http://pipes.yahoo.com/rarst/interfacelift2mediarss
Feed with default 1024×768 images
Do you like idea of pulling wallpapers from RSS? Know good wallpapers sites without Media (or any at all) RSS? Share those in the comments and I might try to tinker with those.




Hey,
I just came across this post whilst browsing for an answer to an issue I have been seeing with John’s Background Switcher. Your solution was the same as mine, to use Pipes that is except you managed to get yours to work [1]! So thanks for publishing this, it’s been really helpful.
So that others that come here, I’ve also published the work that I did to alter your implementation to suit my needs [2] here: http://pipes.yahoo.com/danrough/deliciouswallpapertagtomediarss
[1] I continue to get an error saying John’s Background Switcher [feeds] – Not found. Did you get this at any stage, if so what was the issue?
[2] My requirements were subtly different to yours in that I use delicious and then tag all the wallpapers that I want to display using wallpaper and get the rss feed from there and enter it into JBS as an rss feed (I was suffering the same issue as you in that it did not meet the MediaRSS specification)
@Dan Rough
I took quick look, seems my pipe is broken as well because format of links to images had changed.
Even worse it now seems that links became dynamic. So if you save direct link to image in delicious it will expire and stop working after some time.
For example you have tagged
http://interfacelift.com/wallpaper_beta/D9e668a7/01903_summervines_1920×1200.jpg
but it now returns 404 and working link from site is
http://interfacelift.com/wallpaper_beta/D8091f8c/01903_summervines_1920×1200.jpg
I will look into changes and try to update my pipe (if possible at all with new format), stay tuned. :)
Hey,
Thanks, that had me stumped last night too. I did a little more investigation but even going to http://interfacelift.com/wallpaper_beta/Download/imagename_widthxheight.jpg doesn’t seem to do the trick either so I must confess that at that point, I gave up with the intention of looking at it again today.
Let me know how you get on and I’ll do likewise for you.
Cheers, Dan.
[Your blog engine is surpressing comments with more than 1 link so I've had to try and work round it - if this content is at all unclear feel free to drop me a direct mail, you should have the email address]
I’ve just done a little more investigation on this and have noticed that they as you suggest, must be signing requests to their image server. Looking at the site proper, when you have selected an image size the Download button then builds a link of the following format:
interfacelift.com/wallpaper_beta/dl/imageidentifier_widthxheight.jpg
Meaning that to request the bamboo picture that was recently posted you would need to construct your link as follows:
interfacelift.com/wallpaper_beta/dl/01905_bamboo_1920×1200.jpg
I’ve tested whether or not the signed request relies on a session cookie by opening a browser from fresh that hasn’t ever been to interfacelift and pasting the above url in which works as it then bounces me to an address that contains the signed portion. Whether this could be relied upon within JBS, I’m not sure, I need to alter my Yahoo Pipes implementation. Given that mine contains some links to content that isn’t on interfacelift, for now I might clone yours and see how it goes.
I’ll keep you informed.
If you know how to do conditional replacements within Pipes (and I’m guessing that this is where the String RegEx module comes in) only on interfacelift content some advice / guidance would be really appreciated.
Cheers, Dan.
Final update from me on this, then I’ll leave you alone, I promise ;-)
So I took your Pipe and cloned it, the result of which can be found here: http://pipes.yahoo.com/danrough/interfacelift2mediarss
It would appear though that they are using the session variable or something to sign requests because I now get an error when I click on a link in the feed to the download location.
I’m not sure how to proceed on this.
@Dan Rough
Ok, sorry – took me some time to get to it. :)
This format of link
interfacelift.com/wallpaper_beta/dl/imageidentifier_widthxheight.jpg
seems to work differently depending on referrer. So clicking on such link from piped feed doesn’t work BUT pasting such link in address bar does.
Luckily it seems to work in JBS as well so I changed link format in my pipe and now testing it. Works fine so far.
Ok, now about your delicious feed.
First – wth you actually need MediaRSS for? :) Delicious puts link to image in enclosure tag which JBS is supposed to understand. I added your feed (without using pipe) to JBS and it shows non-interfacelift images just fine.
So why exactly you went looking for MediaRSS if it works without it? :)
For interfacelift images try bookmarking that link format /wallpaper_beta/dl/ before it gets signed.
[...] One can say it is all that’s required from wallpaper site. Personally I trust Interfacelift to supply wallpapers for my desktop automatically, but I won’t trust Desktop Wallpaper to do [...]
[...] – same evening Interfacelift cut their RSS to single item and few days later I discovered my Interfacelift RSS to Media RSS extension silently killed (waiting for explanation from [...]
[...] a post about publishers going after syndication which was triggered by vague situation around my Media RSS enhancer for Interfacelift wallpapers [...]