xscreensaver image RSS feeds

I made xscreensaver able to load images from RSS feeds. Test it for me? Let me know if you find any feeds that it screws up on, or if it seems to be re-downloading things too much, or whatever.

xscreensaver-getimage-file

On Linux, set imageDirectory in your .xscreensaver file to an RSS or Atom feed, and run any of the image-grabbing hacks (Carousel, GLSlideshow, etc.) For debugging, run it manually from the shell with -vv.

On MacOS, replace that file inside the .saver bundle and do:
defaults -currentHost write org.jwz.xscreensaver.Carousel imageDirectory URL

Tags: , , , , ,

9 Responses:

  1. jwz says:

    123 downloads and 0 comments?

  2. I couldn't get it to work. Tried it with Carousel and all I got was the default image, even when I tried selecting a folder. Without swapping the xscreensaver-getimage-file it works fine. I threw a couple of RSS feeds at it, but nothing. This is on OS X 10.7.1

    • jwz says:

      Error messages in Console? What happens when you run the script from the shell?

      • Frank Escamilla says:

        Looks like my initial problem was just a permissions deal. Adding +x to xscreensaver-getimage-file helped. So now what happens is a couple of images show up in System Preferences for some feeds, but only one image cycles.

        Errors I'm getting in console are like this:

        Aug 24 17:21:21 [Hostname] System Preferences[21978]: ScreenSaverDefaults does not respond to volatileDomainForName:

        When I try running it from a command line I get stuff like this:

        $ GLSlideshow.saver/Contents/Resources/xscreensaver-getimage-file http://jwz.org/blog/feed
        xscreensaver-getimage-file: empty feed: http://jwz.org/blog/feed

        Or it only returns one entry like this:


        $ GLSlideshow.saver/Contents/Resources/xscreensaver-getimage-file http://photoblog.msnbc.msn.com/_feeds/rss2/author
        /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/Qi8M239UVxqSIKhdvJtPwg.jpg

        • jwz says:

          My blog is not a feed of an image gallery, so no, that's not going to work.

          The last line is correct, that's the local cached file name of that image. Run it with -vv like I said.

          • Frank Escamilla says:

            OK here it is with -vv, currently this is giving me just the default image:


            $ GLSlideshow.saver/Contents/Resources/xscreensaver-getimage-file -vv http://photoblog.msnbc.msn.com/_feeds/rss2/author
            xscreensaver-getimage-file: awaiting lock: /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/.timestamp
            xscreensaver-getimage-file: young cache of http://photoblog.msnbc.msn.com/_feeds/rss2/author
            xscreensaver-getimage-file: unlocked /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/.timestamp
            xscreensaver-getimage-file: /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw is cache for http://photoblog.msnbc.msn.com/_feeds/rss2/author
            xscreensaver-getimage-file: recursively reading /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw...
            xscreensaver-getimage-file: + reading dir /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/...
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/0UYbHK8dkmI0aQ1th1j0Sw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/47ktVxzO-mZoY9W9dvvQhw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/9Y7DF_WXL7Ga2vz5YfJfKw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/bwMb7EE9uuwUq5aqSvoGVg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/ceGhVh8re5cue5XzGnabIQ.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/D3M8LlyKU1ggRxftHhRRJg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/eN_F2tBVb0JB98_H15usFg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/eojkSeMd8swegnO5z8morg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/f_FJPOzd43zdUh_2Yk2fZw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/fkyjEBzQ6QlAu4haNvizdw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/G7HVDY3ttFsGE-CfVA9NjA.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/iJT8QAADkvqoQDIZJdbYog.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/iKGb8VD-jTrjB3qJ3kQ5rQ.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/LYdC9oUM5Y2fAcrPWhNT6w.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/MrYH_QjT60C1A_tCrI6wyA.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/OZYWxm-9N5Ykyu346upEBg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/PBNMolhunKIuKi5L9-J27A.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/Qi8M239UVxqSIKhdvJtPwg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/RNtIamPDMqj-SXbco66nqw.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/RqAYzmrH8M9ORe6xbDGfPg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/tgy88g4OH1h4VNH3UqYg4Q.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/vL7n0po4ojrH1-EwOxGHmQ.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/xdqAMJJCu1EIDZpDv02Qqg.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/Y793FRwlSZWktoEMji-ygA.jpg
            xscreensaver-getimage-file: - found file /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/zJHh9YawnSqhrWjc3TU8tQ.jpg
            xscreensaver-getimage-file: f=25; d=1; s=0; skip=0+0=0.
            xscreensaver-getimage-file: /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/xdqAMJJCu1EIDZpDv02Qqg.jpg: too small (400 x 254)
            xscreensaver-getimage-file: /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/Qi8M239UVxqSIKhdvJtPwg.jpg: 400 x 271
            /Users/rusty/Library/Caches/org.jwz.xscreensaver.feeds/d2ZfhEOJeS7vAxvwwYDmhw/Qi8M239UVxqSIKhdvJtPwg.jpg

            • jwz says:

              That all looks like it's working fine to me. Every time you run it, that last line will be the pathname of a different image.

              • Yep, the image downloading seems to be working properly, and I can browse that directory in Finder and everything. I guess at this point the only thing that's not working for me at this point is that the screensaver isn't able to display the images for some reason. Permissions on the folder look correct, so I'm not sure what that's about.

  3. Jordan says:

    Crap, I just wrote a script a few weeks ago to pull images out of feeds and dump them to a directory for xscreensaver's consumption. I'll give this a shot...