OPML の扱い

OPML は購読リストを別サービスへ持ち運ぶための形式です。何が入っていて何が入っていないかを、移行前に確認できます。

入っているもの

OPML に入るのは購読リストとフォルダ構成だけです。

ファイルの中身

OPML はただのテキストファイルです。拡張子は .opml のことが多いですが、中身は XML なので、メモ帳でもテキストエディタでも開いて中を見られます。

1件の購読は outline という要素ひとつで表されます。おおよそ outline text="サイト名" xmlUrl="https://example.com/feed" htmlUrl="https://example.com/" type="rss" という形の1行です。

フォルダはどう表されるか

xmlUrl を持たない outline がフォルダです。その中に子の outline が入れ子で並びます。つまりフォルダとフィードは同じ outline という要素で、xmlUrl の有無だけで区別されています。

ここが移行でいちばん壊れやすいところです。書き出したサービスが3階層以上のフォルダを使っていると、取り込む側がその深さを扱えず、フォルダごと消えたり全部が最上位に並んだりします。

freefeed では3階層以上を2階層へ畳んで取り込みます。先頭のフォルダ名を親にして、それより下は「子/孫」のようにつないだ1つの名前にするので、どこに入っていたかは名前として残ります。

入っていないもの

既読状態・スター・タグ・ルールは入りません。これは特定のサービスの制限ではなく、OPML という形式そのものにその欄がないためです。

したがって、どのサービスからどのサービスへ移っても既読状態は引き継げません。移行直後にすべて既読にしてから読み始めるのが実用的です。

書き出しの手順

主要なサービスからの書き出し方法です。

取り込む前に確認する

何年も使っていた購読リストには、更新が止まったフィードや重複が混ざっています。取り込む前に中身を確認すると、いらないものを持ち込まずに済みます。

ブラウザ内だけで OPML の中身を見られるツールを用意しています。ファイルはどこにも送信されません。

ログインした状態で取り込む場合は、実行前に1件ずつ判定した一覧が出ます。すでに購読しているもの、更新が止まっているもの、取得できなくなっているものには印が付き、重複と停止中のものは最初からチェックが外れた状態で並びます。そのまま進めれば持ち込まれません。

取り込みでつまずくところ

取り込みが思った通りにならない原因は、たいてい次のどれかです。

件数が多いときの動き

取り込みは、その場で処理する分と、あとから順に処理する分に分かれます。最初の 50 件はボタンを押した時点で入り、残りは順番待ちに回って背後で処理されます。

そのため件数の多いリストでは、取り込み直後の一覧に全部は並んでいません。処理が進むにつれて増えていくので、画面を閉じても構いません。記事の取得はさらにその後なので、最初の記事が並ぶまでには少し時間がかかります。

取り込んだ後にやること

既読状態が引き継げない以上、移行直後にやっておくと後が楽なことがあります。

書き出すときの注意

freefeed から書き出した OPML にも、購読リストとフォルダ構成だけが入ります。お気に入りの印は入りません。

これは形式の制約によるものです。OPML はフォルダの木を表す形式で、木と直交する印(お気に入り)を表す標準の属性がありません。お気に入り用の outline を別に作ると同じフィードがファイル中に2回現れ、移行先で二重購読になります。

お気に入りを含む全データは、設定からダウンロードできる開示用の JSON に入っています。データ自体が失われるわけではありません。

よくある質問

OPML ファイルはどこかに送信されますか?
いいえ。中身を確認するツールはブラウザの中だけで完結し、ファイルはサーバーに送られません。
既読状態は引き継げますか?
引き継げません。OPML という形式に既読・スター・タグの欄が無いためです。
フォルダ構成は保持されますか?
保持されます。ただし3階層以上のフォルダは2階層へ畳まれます。先頭が親になり、それより下は「子/孫」のようにつないだ1つの名前になるので、どこに入っていたかは分かる形で残ります。
OPML を手で編集してもいいですか?
構いません。テキストファイルなので、いらない行を消すだけで取り込む対象を減らせます。ただし xmlUrl の属性を消すとその行はフォルダとして扱われるので、行ごと消してください。
ファイルや件数の上限はありますか?
ファイルは 5MB まで、購読は 1,000 件まで、フォルダは 100 個までです。上限に当たった場合は超えた分が取り込まれないだけで、エラーで全部が失敗することはありません。
複数のサービスの OPML をまとめて取り込めますか?
1つずつ順番に取り込んでください。2回目以降、すでに購読しているフィードは重複として印が付き、既定でチェックが外れるので、同じものが二重に入ることはありません。
取り込んだのに記事が並びません
購読が入った直後は記事がまだ取得されていません。取得は購読の登録とは別に順番待ちで進むので、少し待ってから見てください。それでも何も出ない場合は、フィード側が更新を止めている可能性があります。

他のガイド