SereneReader APIを使ったオートメーションの構築
なぜ読書をオートメーション化するのか
RSSはすでに難しい部分を解決しています。数百のソースからコンテンツを一か所にまとめることです。SereneReader APIを使えば、そのコンテンツをスクリプトやCronジョブ、その他のツールからプログラムで取得できます。
設定が必要なWebhookはありません。OAuth認証のステップもありません。APIキーを生成し、HTTPリクエストを送れば、JSONが返ってきます。
はじめに
APIアクセスは月額5ドルのProプランに含まれています。エンタープライズプランは不要です。競合するRSSリーダーの多くは、APIアクセスをより高価格または最上位のプランに限定しています。
APIキーの作成
SereneReaderの設定ページを開き、APIセクションまでスクロールします。新しいキーを作成し、後で識別できる名前を付けて、安全な場所にコピーしておきます。キーが表示されるのは一度きりです。
認証
すべてのリクエストには、AuthorizationヘッダーにBearerトークンが必要です。それだけです。クライアントIDも、リフレッシュトークンも、スコープも不要です。APIの設定ページにはベースURL、エンドポイントのドキュメント、およびリクエスト例が記載されています。
レート制限
APIはアカウントあたり1分間に30リクエストまで許可されています。スケジュール実行するスクリプトには十分な量です。制限に達した場合は、少し待ってからリトライしてください。
できること
APIを使えば、記事とサブスクリプションへの読み取りアクセスが得られます。フィード、フォルダー、または公開日で記事を絞り込むことができます。未読数付きのサブスクリプション一覧も取得できます。すべてのレスポンスはJSONで、タイトル、URL、公開日、スニペット、フィードのメタデータが含まれています。
エンドポイント、パラメーター、レスポンスの形式の完全な一覧は、設定ページのAPIドキュメントセクションに記載されています。
活用例
デイリーダイジェストメール
毎朝7時に実行するスクリプトを作成し、前日の記事を取得して、サマリーメールを送信します。日付でフィルタリングし、jqでJSONからタイトルとURLを抽出して、お好みの通知システムに送るだけです。
データはすっきりとした形式で用意されており、自由に加工できます。
フィードの健全性モニター
フィードは壊れることがあります。ドメインの期限切れ、パスの変更、サーバーのダウンなど様々な原因があります。週次のスクリプトでサブスクリプションの一覧を取得し、しばらく更新がないフィードを確認できます。
フィードが静かになったとき、そのブログがなぜ表示されなくなったか不思議に思う前に気づくことができます。
他のツールへのエクスポート
記事をローカルデータベース、Notionページ、Obsidianのボールト、またはスプレッドシートに取り込むことができます。APIは構造化されたデータを提供するため、変換のステップは通常、数行のjqか短いPythonスクリプトで済みます。
AIエージェントとの連携
このAPIはHTTPリクエストを送れるAIツールと相性が良いです。OpenClawのようなエージェントフレームワークを使っている場合は、SereneReaderを指定するだけで、フィードを自動的に処理させることができます。この件については別の記事を書いています:RSSフィードをAIエージェントに接続する方法。
シンプルに保つ
最良のオートメーションは、一つのことだけを行う短いスクリプトです。1日に一度実行されるCronジョブ。未読数を表示するシェルエイリアス。記事をSlackチャンネルに転送するWebhookリレー。
フレームワークは必要ありません。curlとjqでほとんどのケースをカバーできます。より構造化されたものが必要な場合は、HTTPクライアントを持つ任意の言語が使えます。
APIキーとエンドポイントのドキュメントはSereneReaderの設定ページにあります。