motetai.club

無料かつphpやjsを使わずに複数のRSS Feedをひとつにまとめる方法

複数の RSS Feedをまとめる 方法についての備忘録。
RSSをまとめる方法は検索すればその手のサービスなどがいくらかヒットします。ですがいくら古い情報なのですでにそのサービスが提供終了していたり、仕様変更で意図した動作をしなかったり、メンテされていないのかまともに動かなかったり…というものがヒジョーに多いです。(←自分で検索してみて思いました)

phpやJavascriptなどを組んでRSS取得→まとめてソート→表示、みたいな自作スクリプトもみつけたのですが、普段からコードに触れてない人にはなかなかハードルが高い…ってことで、今回の手法で重視した点は下記。

  1. phpやjsなどを使わずに実装できること
  2. まとめるRSSの数に制限がないこと
  3. 無料で利用できる方法(サービス)であること

とくに2つ目。検索でみつけた無料サービスなどを使うとRSSの数に制限(5つまでとか)があるものもあった。用途によってはこの数制限があるがために使用要件を満たさない場合も考えられるので数制限は極力とりはらいたい。

IFTTTを使って RSS Feedをまとめる

前項のポイントを押さえて落とし所的にだした結論が「IFTTT」を使う、です。
知らない人のために簡単に説明すると、IFTTTっていうのは様々なSNSやWEBサービス、スマホアプリなどを連携させて自動で動かしたりできるサービスのこと。よくみる使い方だとInstagramに投稿したら自動でTwitterにインスタのリンクや画像を投稿させたり、とか。

今回の使い方としては、IFTTT経由でRSSから更新情報を取得し、それをPocketへ流し込む。そして自身のPocket TLのRSSを取得すれば、間接的にではあるけどRSS FeedがPocket上でひとつにまとめられる、ってもの。
手順をおって説明しよう。

1,IFTTTに登録する

まずIFTTTを使うために登録する必要がある、すでにアカウントを持っている人はそれを使えばOK.
サインアップ画面からメールアドレスとパスワードを入力。入力要素がこの2つだけで登録できるのでカンタン。

登録後はチュートリアル等あるけど読んでも読まなくても可。今回はとばす。

2,pocketに登録する

pocketのアカウントも必要なので作っておきます。こちらも既にアカウントを持っていればそれを使ってもかまいません。
ただ、pocketのタイムライン上すべての要素を最後にRSSとして取得するので、普段からpocketを常用している場合、普段使いでチェックした要素がRSSに混同してしまいます。それを避けたければ、RSSまとめ用の別のアカウントを作ったほうが良いでしょう。

3,レシピを作成

次にIFTTTレシピを作成する。レシピってのはIFTTTのなかで各サービス、アプリを連携させて動かし方を指定する仕様書みたいなもの
IFTTT画面上部メニューの「My Recipes」をクリック、さらに「Create a Recipe」ボタンをクリックして新規のレシピを作成する。

IFTTTではひとつのレシピ内で連携させられるの1サービス対1サービス。なので、まとめたいRSSをひとつずつPocketへ連携させる必要がある。ここだけが少し手間だ。
例えばまとめたいRSSが20個あるなら、レシピを20個作成する必要がある。

「if this then that」の文字から「this」をクリックするとトリガー(ひとつめのサービス)の選択を要求される。
ここで検索窓に「feed」と入れて「Feed」のアイコン(オレンジ色のやつ)を選択する。

トリガーアクションの選択で「New feed item」を選択し、「Feed URL」にまとめたいRSSのURLをひとつ入力します。
次に、「if this then that」の文字から「that」をクリックして2つ目のトリガーを選択。ひとつめと同じ容量でpocketを選択しましょう。

初回はまずpocketのアカウントを連携させる必要があるので、pocketアカウントにログインしたうえでConnectからpocketを連携。
トリガーアクションに「Save for later」を選択。これがひとつめで登録したFeedに更新があった場合、自動でpocketさせるという命令です。

「URL」の欄はいじらなくていいでしょう。「Tags」は好きにカスタムできますし、そのままでもかまいません。「Create Action」をクリックするとアクション作成完了です。
最後にレシピにタイトルを付けられるので、自分の判別しやすいタイトルにでもかえて「Create Recipe」を押しレシピ作成完了です。

 

同じ要領で、まとめたいRSSフィードの数だけこの肯定を繰り返します。
ここまででIFTTTでの作業は終了です。

pocketからRSSフィードを取得

つぎにpocketからRSSを取得します。

「プライバシー管理」から「すべてのアイテムフィード」を選択します。
下記画像のようにフィードがパスロックされている場合「RSSフィードのパスワード保護を解除」をクリックします。

https://getpocket.com/users/ユーザーID/feed/all みたいなURLがpocketのRSSフィードです。
IFTTTの連携でRSSから更新情報が流れてくるようになるとここに反映されます。記事をまとめて読みたい、とかならこのpocket TLを終えばOKです。

ただし、このpocketのfeedはタイトルと元記事のリンクのみを吐き出しているため、その他の要素はRSSにまとめられていません。
ボクの場合はこれでも求めていた要件を満たしていたので問題ないのですが、RSSの全文取得サービスなどをかます必要があるかもです。有名ドコロだとfullrss.netとかがあるみたいですがサーバーが不安定なのか接続できず…orz

ここもうちょい方法をさぐっている最中です。