LDRのフィードデータからレート(★★★☆☆)をカテゴリとしたOPML(XML)ファイルを作成するコマンドラインツールを作りました。

Live Dwango Readerから他のRSSリーダへ移行する際に、レートデータを維持して移行する用途です。

fastladderへの移行の場合は別の方法もあります。

必要なもの

  • Node.js 6>=
  • 後述するldr.json

ldr.json

LDRのopmlエクスポートにはカテゴリ(ディレクトリ)の情報しか含まれていません。 なので、編集画面に使われてるAPIのレスポンスデータ(ldr.jsonとここでは呼ぶ)を使います。

ldr.jsonは http://reader.livedoor.com/api/subs?unread=0のレスポンスです。

簡単な方法だと以下の手順で取得できます。 (ApiKeyがいるので、curlなどだと余計に面倒なので、ログインしてるブラウザでコピーするのが楽)

image

  1. ブラウザの開発者ツールでネットワークを開く
  2. “編集”をクリック
  3. http://reader.livedoor.com/api/subs?unread=0へのリクエストを探す
  4. レスポンスをコピーして ldr.json として保存する

ldr.jsonにはカテゴリ、レートなどの情報が含まれています。 普通にexportできるexport.opmlの上位互換なデータなので、閉鎖する前に取得しておくと便利だと思います。

Install

ldr-export-opmlはnpmなどでインストール出来ます。

npm install ldr-export-opml -g

使い方は書いてないですが普通にモジュールとしても使えるので、適当に使ってください。

使い方

取得した ldr.json を引数に渡して実行するopml形式のXMLを出力してくれます。

Usage
  $ ldr-export-opml ldr.json

Options:

  --output path to output
  
Examples
  $ ldr-export-opml path/to/ldr.json
  $ cat path/to/ldr.json | ldr-export-opml 

おわり

LDRもサービス終了です。

乗り換え先をどうするのかがまだ決まってないけど多分必要になるので作りました。(バグってたらPull Requestください)

一日数千エントリ見てるので、j, k, n、s, aあたりがどれだけつまらずに動くかが大事になってくるので、乗り換え先の相性が大変。

なので、Feedlyとかのビジュアルよりなマガジン系はあんまり向いてない。 Fastladderを使えるといいけど、維持コスト(手間/値段)が高くなるので手を出しにくい。Tiny Tiny RSSも同じような理由。

inoreader.comは悪くは無さそうだけど、スムーズスクロールが遅かったり、プリロードがなかったりしてちょっとチューニングが必要そう。(コードを見てたけど結構レガシーな感じだったのでどこまでhookできるんだろ)

クライアント側はどうにでもなる気がするので、サーバ側をServerlessな感じにしたものがあればコスト少なくて済むのかなと思ったけど、LDRのようなサービスはクローラーとその結果の保存データで容量食うのであんまり向いて無さそう。Firebaseみたいなところでやったほうがコスト的には良さそう。

あとはCappuccinoとかみたいなクライアント側だけでどうにかするパターンかな。(未読管理的な問題はありそうだけど)