Dec 11, 2012

Ridiculously Easy

iGoogle is shutting down. Pity, too: of all the newsreaders out there, it was the most “cloudish,” offering a good UX for both desktop and mobile devices. Call it a victim of appificiation, call it a change in user consumption models. Or call it unmonetizable, which is the real reason: the design was not ad-friendly. In any case, I needed to extract my feeds out of iGoogle to something more friendly.

I chose NetNewsWire. It’s stale, I’ll admit that, and the mobile client is barely usable; the important thing was that it is available, and available now.

Turns out migration was ridiculously easy:

  1. Under options (the “⚙” menu), select “iGoogle Settings”.
  2. At the bottom of the window, under “Export/Import”, click “Export”.
  3. Locate the iGoogle-settings.xml file in your download directory.
  4. Save a copy of the following XSL transform:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:ig="http://www.google.com/ig"
                    xmlns:gt="http://schemas.google.com/GadgetTabML/2008">
      <xsl:output method="xml" indent="yes"/>
    
      <xsl:template match="gt:GadgetTabML">
        <opml version="1.1">
          <head><title>Subscriptions from iGoogle</title></head>
          <body>
            <outline text="From iGoogle" title="From iGoogle">
              <xsl:apply-templates select="gt:Tab"/>
            </outline>
          </body>
        </opml>
      </xsl:template>
    
      <xsl:template match="gt:Tab[@title]">
        <outline text="{@title}" title="{@title}">
          <xsl:apply-templates select="gt:Section/ig:Module"/>
        </outline>
      </xsl:template>
    
      <xsl:template match="ig:Module[@type='RSS']">
        <outline type="rss">
          <xsl:copy-of select="ig:ModulePrefs/@xmlUrl"/>
        </outline>
      </xsl:template>
      
      <xsl:template match="*"/>
    </xsl:stylesheet>
  5. Apply the transform to the XML file. On UNIXish systems, xsltproc is usually available: xsltproc igoogle.xslt iGoogle-settings.xml > iGoogle.opml
  6. Import the iGoogle.opml into your newsreader.