OPML の 扱い
OPML は購読リストを別サービスへ持ち運ぶための形式です。何が入っていて何が入っていないかを、移行前に確認できます。
入っている もの
OPML に入るのは購読リストとフォルダ構成だけです。
- フィードの URL とタイトル
- フォルダ(カテゴリ)の構成
- サイトの URL(入っている場合と入っていない場合があります)
ファイルの 中身
OPML はただのテキストファイルです。拡張子は .opml のことが多いですが、中身は XML なので、メモ帳でもテキストエディタでも開いて中を見られます。
1件の購読は outline という要素ひとつで表されます。おおよそ outline text="サイト名" xmlUrl="https://example.com/feed" htmlUrl="https://example.com/" type="rss" という形の1行です。
- xmlUrl … フィードそのものの URL。ここが購読の実体で、これが無い行はフィードとして扱われません
- text / title … リーダーに表示される名前。両方入っていることも、片方だけのこともあります
- htmlUrl … サイトのトップページ。無くても取り込みには困りません
- type … ほぼ必ず rss が入っていますが、Atom 形式のフィードでも rss と書かれます
フォルダは どう 表されるか
xmlUrl を持たない outline がフォルダです。その中に子の outline が入れ子で並びます。つまりフォルダとフィードは同じ outline という要素で、xmlUrl の有無だけで区別されています。
ここが移行でいちばん壊れやすいところです。書き出したサービスが3階層以上のフォルダを使っていると、取り込む側がその深さを扱えず、フォルダごと消えたり全部が最上位に並んだりします。
freefeed では3階層以上を2階層へ畳んで取り込みます。先頭のフォルダ名を親にして、それより下は「子/孫」のようにつないだ1つの名前にするので、どこに入っていたかは名前として残ります。
入っていない もの
既読状態・スター・タグ・ルールは入りません。これは特定のサービスの制限ではなく、OPML という形式そのものにその欄がないためです。
したがって、どのサービスからどのサービスへ移っても既読状態は引き継げません。移行直後にすべて既読にしてから読み始めるのが実用的です。
書き出しの 手順
主要なサービスからの書き出し方法です。
- Inoreader: Preferences → Import/Export → Export subscriptions
- Feedly: Organize sources → Export OPML
- FreshRSS: 設定 → インポート/エクスポート → OPML をエクスポート
- The Old Reader: Settings → Import/Export
取り込む前に 確認する
何年も使っていた購読リストには、更新が止まったフィードや重複が混ざっています。取り込む前に中身を確認すると、いらないものを持ち込まずに済みます。
ブラウザ内だけで OPML の中身を見られるツールを用意しています。ファイルはどこにも送信されません。
ログインした状態で取り込む場合は、実行前に1件ずつ判定した一覧が出ます。すでに購読しているもの、更新が止まっているもの、取得できなくなっているものには印が付き、重複と停止中のものは最初からチェックが外れた状態で並びます。そのまま進めれば持ち込まれません。
取り込みで つまずく ところ
取り込みが思った通りにならない原因は、たいてい次のどれかです。
- ファイルが 5MB を超えている … 受け付けられません。購読数ではなくファイルの大きさの上限です
- 購読が 1,000 件を超えている … 先頭から 1,000 件までが対象になります
- フォルダが 100 個を超えている … 超えた分のフォルダは作られず、フィード自体は未分類に入ります
- 同じフィードが2回書き出されている … スターやお気に入り専用の outline を別に作るサービスがあり、同じ URL が2行になります。確認の一覧では2件目が重複として印が付きます
- 書き出しが壊れていて xmlUrl が1つも無い … すべてフォルダとして扱われ、フィードが1件も入りません。テキストエディタで開いて xmlUrl があるか見てください
件数が 多い ときの 動き
取り込みは、その場で処理する分と、あとから順に処理する分に分かれます。最初の 50 件はボタンを押した時点で入り、残りは順番待ちに回って背後で処理されます。
そのため件数の多いリストでは、取り込み直後の一覧に全部は並んでいません。処理が進むにつれて増えていくので、画面を閉じても構いません。記事の取得はさらにその後なので、最初の記事が並ぶまでには少し時間がかかります。
取り込んだ 後に やる こと
既読状態が引き継げない以上、移行直後にやっておくと後が楽なことがあります。
- 一度すべて既読にする … 何年ぶんかの未読が最初から積まれた状態で始めないため
- ルールとフィルタを作り直す … OPML に入らないので、移行先で改めて作る必要があります
- 取得エラーのフィードを外す … 何年も前に消えたサイトが混ざっていることがあります
書き出すときの 注意
freefeed から書き出した OPML にも、購読リストとフォルダ構成だけが入ります。お気に入りの印は入りません。
これは形式の制約によるものです。OPML はフォルダの木を表す形式で、木と直交する印(お気に入り)を表す標準の属性がありません。お気に入り用の outline を別に作ると同じフィードがファイル中に2回現れ、移行先で二重購読になります。
お気に入りを含む全データは、設定からダウンロードできる開示用の JSON に入っています。データ自体が失われるわけではありません。
よく ある 質問
- OPML ファイルはどこかに送信されますか?
- いいえ。中身を確認するツールはブラウザの中だけで完結し、ファイルはサーバーに送られません。
- 既読状態は引き継げますか?
- 引き継げません。OPML という形式に既読・スター・タグの欄が無いためです。
- フォルダ構成は保持されますか?
- 保持されます。ただし3階層以上のフォルダは2階層へ畳まれます。先頭が親になり、それより下は「子/孫」のようにつないだ1つの名前になるので、どこに入っていたかは分かる形で残ります。
- OPML を手で編集してもいいですか?
- 構いません。テキストファイルなので、いらない行を消すだけで取り込む対象を減らせます。ただし xmlUrl の属性を消すとその行はフォルダとして扱われるので、行ごと消してください。
- ファイルや件数の上限はありますか?
- ファイルは 5MB まで、購読は 1,000 件まで、フォルダは 100 個までです。上限に当たった場合は超えた分が取り込まれないだけで、エラーで全部が失敗することはありません。
- 複数のサービスの OPML をまとめて取り込めますか?
- 1つずつ順番に取り込んでください。2回目以降、すでに購読しているフィードは重複として印が付き、既定でチェックが外れるので、同じものが二重に入ることはありません。
- 取り込んだのに記事が並びません
- 購読が入った直後は記事がまだ取得されていません。取得は購読の登録とは別に順番待ちで進むので、少し待ってから見てください。それでも何も出ない場合は、フィード側が更新を止めている可能性があります。