Digital picture frames are neat little gizmos - especially for showing pics to my parents, who are rarely, if ever, inclined to poke around flickr (or anything much beyond their email). I have had various setups for a while using an old laptop. At first, I used Windows, because the wifi drivers for Linux were either missing for my card, or inadequate (non-functional, or locked up computer frequently). I have finally gotten a card that agrees with Linux (the Intel 2200BG MiniPCI), and the computer is now up and running with Xubuntu. Many options are out there for picking particular sets, or photos by interestingness, but I wanted simply a way to download my whole photostream and allow a screensaver to meander the collection. Not all of my photos are interesting, but they have other personal value of interest to parents.

The synopsis of what I do:
- Use flickrfs to mount my photos on the drive
- rsync to copy photos from flickrfs to local drive
- cron to run photo update scripts nightly

To do this yourself,

  1. Get flickrfs - on Ubuntu/Xubuntu 8.04 and 8.10, this can be accomplished with
    apt-get install flickrfs (sudo as necessary)
  2. Make 2 folders - one to mount flickrfs to, and another to store your pictures locally. Make sure you have write access to both of them (obviously)
  3. Mount the flickrfs filesystem to the folder you created for it. This is as simple as the command
    flickrfs /PATH/TO/YOUR/DESIRED/MOUNTPOINT

    After running that command, a web browser will open for you to authorize flickrfs to access your account. Eventually, the command line window will spit out something about updating your sets, and tell you when it's done.

  4. You should now have 2 folders in your flickrfs mount point - sets and meta
  5. If you have the 2 folders, create a folder named "stream" in the flickrfs mountpoint. If you don't have the 2 folders and you create the stream directory, fuse will complain about a non-empty directory. The flickrfs mount point must be empty until it (flickrfs) puts stuff there.
  6. Wait 5-10 minutes for flickrfs to populate the stream folder
  7. rsync to copy files from the flickrfs/stream/ folder to your local pictures folder.
  8. If anyone finds it useful, here's the script that I have cron run to update my local Pictures directory with the contents of my photostream. There's also a bit in there to clean up empty files. rsync seems to be not quite perfect with flickrfs, and I accumulated a few empty jpg's that confused the screensaver.

    flickr-update

    I display the pictures using GLslideshow, which is standard with xscreensaver. I replaced gnome-screensaver with xscreensaver, as configuration of xscreensaver is easier. To ensure that xscreensaver is always reading a fresh set of photos, I kill it and restart it nightly (cron is really useful!). I did have to tell XFCE to start xscreensaver at startup - it isn't a completely automatic drop-in replacement for gnome-screensaver. To point xscreensaver at your local pictures directory, check the advanced tab in the upper right, and change the folder where it looks for pictures.

    Side note: The Perl installation for Ubuntu 8.10 has a bug with xscreensaver. It dumps yellow text onscreen, something about a constant being changed. I fixed this by adding a debian sid repository to my third party software, and using the Perl version from there, since it's more up to date. It fixed the yellow text problem for me. The older this post gets, the less likely this will be an issue for you - I imagine the Ubuntu people will update this soon.