Since version 8 JAlbum supports RSS feeds for the generated webalbums. Unfortunately, the feeds are not accepted by standard RSS readers like Google Reader and NetNewsWire. Bummer! The problems are caused by:

  1. the fact that the generated feeds contains relative URLS (and RSS requires absolute URLs)
  2. the way JAlbum feeds try to include feeds of subfolders. The goal of including the items of subfolders in the parent RSS feed is to make it possible to subscribe to 1 feed and also get items in subolders included (instead of having to subscribe to each subfolder feed separately). JAlbum uses a proprietary JAlbum tag (<jalbum:link..>)to include sub folder RSS feeds and this tag is nog recognized by regular RSS feeds

You can try this out by running the generated feeds through feedvalidator.org. As an example, here's the result of running an original JAlbum generated RSS feed through feedvaidator.org. In addition to the reported erros, the <jalbum:link..> tags are nog recognized by regular RSS readers.

Luckily JAlbum is pretty open and you can easily customized skins and also the template that generates the album.rss feed. The issue with the relative URLs could easily be fixed by adding a user defined variable in JAlbum and some minor adjustments to the album.rss template.

The issue with the inclusion of images from subfolders required a bit more work. It appears that there is no (standard) way to have an RSS feed include another RSS feed. So I changed the albums.rss template such that items of subfolder are also added to the album.rss feed file of the parent folder. No real inclusion and it feels a bit redundant to include items in the RSS feed of the folder itself and in the feeds of all parent folders, but at least the feed is now working in regular RSS readers. Here's an example of a feed.

While implementing the new template file I did run into a few problems that I could not explain, but did find a workaround for. First, it was not possible to use a javax.xml.transform.Transformer, but using org.w3c.dom.ls.LSSerializer it worked fine. Second, some of the standard JAlbum variable sdid not always have the same Java type and sometimes were simply not set when trying to access them from the album.rss tempate. So I had to test for this, try to convert to required type where possible and if all failed, the picture is ignored and not included in the RSS feed. The template now runs successfully on my webalbum picture collection (4500 pictures).

Also want to use this?

  1. Make a backup of the Jalbum/system/album.rss file. This is the original template file.
  2. Download the updated album.rss file and copy it to Jalbum/system directory
  3. Add a user variable 'webroot' to your JAlbum project. Go to Settings/Advanced/User Variables. The value of this variable should be the root of the webalbum on your webserver (for example http://my.domain/webalbum)
  4. (Optionally) Add a user variable rssItemsNotOlderThanDays to your JAlbum project. If set, then only pictures which is not older than 'rssItemsNotOlderThanDays' days are included in the RSS feed. If not set, all pictures found are included and that may lead to rather big feed files.
  5. --ADDED--
    (Optionally) Add a user variable topAlbumTitle to your JAlbum project. If set, then the value of the variable will be used as the title for the top level directory (if not set, the title of the top level directory is empty).
    -- EA ADDED--

Note: I've been using this with JAlbum version 8.1.5. I suspect that it will work with all 8.x versions, but I'm not sure.

Update:

Based on suggestions in the JAlbum forum I made some minor changes to the template:

  • JAlbum variable mediarssDate is used a pubDate (instead of picture date, this was already the case in the original template)
  • Added copyright notices
  • Corrected the way the guid is determined