こんにちは、エンジニアのTaichiです。
日々アップデートされる技術情報、追いかけるのが大変ですよね。「あとで読む」つもりの記事が溜まっていくばかり…。
そこで今回は、話題のローコードツール n8n と、愛用のノートアプリ Obsidian を連携させ、「朝起きたら、勝手に最新ニュースの要約が自分のノートに届いている」 という夢のようなシステムを構築しました。
…が、完成に至るまでには GitHub APIのエラー や Windowsのファイル名制限 など、数々の泥臭いトラブルがありました。
今回は、その「解決プロセス」も含めて、リアルな構築ノウハウを公開します!
🏗️ 全体アーキテクチャ
仕組みはシンプルですが、強力です。
- 収集: n8n (Self-hosted) が毎朝9時にGoogleニュース(RSS)を取得。
- 加工: OpenAI (GPT-4o-mini) が記事を要約し、技術的な考察を追加。
- 保存: n8nが GitHub のプライベートリポジトリにMarkdownファイルとして保存。
- 同期: PCを開くと Obsidian Git プラグインが自動でPullし、ローカルに記事が降ってくる。
データの保管場所としてGitHub(Git)を挟むことで、バックアップも完璧かつ、どのデバイスでも同期しやすい構成にしています。
🛠️ Step 1: n8nでAI要約フローを作る
n8nのワークフローは以下の流れで組みました。
- Schedule Trigger: 毎朝9時に起動。
- RSS Feed Read: 「医療AI」などのキーワードでGoogle Newsを取得。
- Limit: 【重要】 処理件数を5件〜10件に絞る。
- OpenAI (Chat Model): 取得した記事をAIに投げ、日本語で要約。
- GitHub (Create a file): Markdownファイルとしてリポジトリに保存。
⚠️ Step 2: 苦労したトラブルと解決策
ここが今回の記事のメインです。一筋縄ではいきませんでした。
① GitHub APIの制限と「Limitノード」
最初は「取れたニュースを全部(70件以上)Obsidianに保存しよう!」と意気込んで実行したところ、GitHub APIエラーで全滅 しました(笑)。
短時間に大量のコミットリクエストを送ると、スパム判定または制限に引っかかるようです。
✅ 解決策:
n8nの 「Limit」ノード を挟んで、「上位5件だけ処理する」 ように変更しました。
これでAPI制限も回避でき、Obsidianも情報の洪水にならず、「厳選されたニュース」だけが届くようになりました。
② Windowsの「ファイル名長すぎ」問題
最初は重複防止のために、RSSのID(GUID)をファイル名にしていました。
しかし、GoogleニュースのGUIDは数百文字もあり、Windowsの MAX_PATH制限(260文字) に引っかかってしまいました。
その結果、GitHubには保存できているのに、Obsidian側で Pull failed: Filename too long エラーが出て同期できない事態に…。
✅ 解決策:
n8nのExpressionで、ファイル名を 30文字に切り詰める 処理を入れました。また、タイトルをファイル名にする場合は記号の除去も必須です。
// タイトルから記号を消し、30文字にカットする魔法のコード
news/{{ $json.title.replace(/[\\/:*?"<>|]/g, '-').slice(0, 30) }}.md
③ 日本語URLのエラー
RSSノードに「医療AI」というキーワードをそのままURLに入れて実行したところ、エラーが発生。
✅ 解決策:
日本語はURLエンコードが必要です。
https://news.google.com/rss/search?q=%E5%8C%BB%E7%99%82AI... のように変換コードを渡すことで解決しました。
④ 無料RSS vs AI課金の決断
最初は「無料でやりたい」と思い、RSSの概要 (contentSnippet) をそのまま保存していました。
しかし、多くのニュースサイトはRSSに「タイトルと同じ文章」しか入れておらず、中身がスカスカ…。
✅ 解決策:
OpenAI API (gpt-4o-mini) の導入を決意。
このモデルは非常に安価(1日5件なら月額数十円レベル)なのに、性能は抜群です。
「技術者向けに要約して」「インサイトを含めて」とプロンプトで指示することで、ただのリンク集が 「有益なレポート」 に生まれ変わりました。
🛠️ Step 3: Obsidian側の自動化
最後に、Obsidianのコミュニティプラグイン 「Obsidian Git」 を設定します。
- 保存先のフォルダを
git initし、n8nのリモートリポジトリと紐付け。 - プラグイン設定で
Pull on startupをON。 -
Vault backup intervalを10分に設定。
これで、朝PCを開いてObsidianを立ち上げるだけで、自動的にGitHubから最新ニュースが降ってきます。
🎉 まとめ:自分だけの「第二の脳」を育てよう
こうして、「寝ている間にAIがニュースを集め、要約し、トラブルなく自分のノートアプリに届けてくれる」 システムが完成しました。
n8nは非常に強力ですが、実際に運用すると細かいエラーに遭遇します。
しかし、それを一つひとつ乗り越えて「自分だけの全自動ワークフロー」が出来上がった時の達成感は最高です。
皆さんもぜひ、n8nとObsidianで「最強のインプット環境」を作ってみてください!
Created by Taichi Endoh