Sage用のFeedリストをOPMLで書き出してLivedoor Readerで読み込む

(追記)
なんかうだうだ書いておきながらアレですけど、Sage→ツール→OPMLエクスポートで普通に綺麗なOPMLが出力できるようになってました。日本語も全く問題ありません。thx to malaさん。
なんだ、この記事駄目じゃん。テヘっ!
(/追記)


FirefoxRSSリーダー*1機能拡張"Sage"は、Firefoxの普通のブックマークの特定フォルダをFeed一覧として取得しています。
なので、Sageで購読しているfeedの一覧はFirefoxのブックマークを書き出して得る事になります。


さて、Fxは標準ではブックマークの書き出しには妙なHTMLを使います。
他方、多くのRSSリーダーではOPMLを使って読み込むFeedの一覧を書き出し/読み込みする機能が備わっています。今回ちょっと手を出してみるLivedoor ReaderOPML読み込み有り。
で、FxにはOPMLでのブックマーク書き出しが無いので、機能拡張で導入します。
https://addons.mozilla.org/firefox/2625/
日本語での紹介記事窓の杜 - 【NEWS】OPML形式でライブブックマークをインポート・エクスポートできるFirefox拡張
で、ブックマークの管理...を開いた状態でファイル→Export→OPML...と選択すると、ブックマークの管理ウィンドウにシートが出てくるので、What do you want to Export?Bookmarksを選択。Maintain folder structure when exporting.を選びます。Remove possibly invalid charactors以下略はどっちでもいいです。
で、書き出されたファイルを適当なエディタで開きます。私はSmultronを使いました。文字コードが変とか言われましたが、無視します。
で、中身を見ると日本語が文字化けしていますが、いちおうブックマークが書き出されています。
中身はこんな感じになってると思います。あ、(略)ってなってるとこは本当は色々あったりします。

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
	<head>
		<title>Bookmarks OPML Export</title>
		<dateCreated>Mon Jan 08 2007 01:39:15 GMT+0900 (JST)</dateCreated>
	</head>
	<body>
		<outline text="ÖïÞü¯Äü">
			<outline (略) />
			(略)
		</outline>
		<outline text="(略)">
			(略)
		</outline>
(...略...)
	</body>
</opml>

んで、ちゃんとフォルダ構造が維持されてるので、bodyの中身を、Sageで読んでるFeedの入ったフォルダの部分だけにします。


んで、これを読み込めば大丈夫かと思ったら、上手くいきませんでした。どうやらOPMLであってもFeedのリストにはそれなりの作法があるみたいです。
RSSリーダーで取り込める OPML の形式: つちのこ、のこのこ。』を参考に、ちょっと弄ってみます。


OPML Supportで書き出されたOPMLのbodyの中身はこんな感じの形式になってます。

<outline text="フォルダの名前">
  <outline type="link" text="ページの題名" url="http://www.example.com/rss.xml" description="" keyword="" />
</outline>

で、textという属性名をtitleに、type="link"をtype="RSS"に*2、urlという属性名をxmlUrlに、それぞれ置換します。
するとbodyの中身はこんな感じになります。

<outline title="フォルダの名前">
  <outline type="RSS" title="ページの題名" xmlUrl="http://www.example.com/rss.xml" description="" keyword="" />
</outline>

そんで保存すれば、Livedoor Readerで読み込む事が出来ます。めでたしめでたし。
ちなみにOPML Supportで書き出したファイルのtextは、日本語部分が文字化けしたり中身が無かったりしておかしな事になってるんじゃないかと思います。で、これはいちいち打ち直さなきゃ駄目かというとそんな事無くて、打ち直すのはフォルダの名前だけで良いです。各feedの題名はLivedoor Readerが取得して修正してくれます。
また、descriptionやkeywordは無くても良いけどあっても良いのでいちいち消す必要はありません。


一度Livedoorに読ませてしまえば、今後はLivedoorから書き出させれば他のRSSリーダーへの移行も簡単なはず。

*1:Atomも読むんだからfeedリーダーだと思うけど、一般にRSSリーダーと呼ばれているので本稿もそれに従う。

*2:AtomならAtomにしなきゃ行けなかったのかもしれないけど。