hnfeeds — Hacker News人気ブログのフィード(2025版)

Web

概要

hnfeeds は、Hacker News の人気ブログ(HN Popularity Contest)の2025年集計をOPML形式で配布する小さなリポジトリです。OPMLはRSSリーダー間でフィードの集合をインポート/エクスポートするための標準フォーマットで、本リポジトリでは上位ブログのフィードリスト(hn-popular-blogs-2025.opml)を用意し、index.html や about.html といった説明用の静的ページ、そして fetch_blogs.py という補助スクリプトを付属しています。元データの出典は emschwartz の gist と Andréj Karpathy のツイートで、2025年時点の「人気ブログ」一覧をRSS環境で簡単に利用できるようにしたのが特徴です。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 2
  • ファイル数: 5
  • メインの言語: HTML

主な特徴

  • Hacker News 人気ブログの上位リストをOPMLで提供(hn-popular-blogs-2025.opml)。
  • RSSリーダーへのインポートを想定したシンプルな配布形態。
  • 説明用の静的HTML(index.html / about.html)を同梱し即利用可能。
  • 軽量な補助スクリプト(fetch_blogs.py)でフィードの確認や取得補助が可能。

技術的なポイント

hnfeeds は非常にシンプルで「データ+説明+小さなスクリプト」をセットにしたリポジトリです。中核は OPML ファイル(hn-popular-blogs-2025.opml)で、これは RSS リーダーがサブスクリプションの集合を一括でインポートできるXMLフォーマットです。OPML自体は構造が単純なので、手動で編集したり、他のツールから生成・変換しやすい利点があります。リポジトリに含まれる fetch_blogs.py はおそらくこの OPML を読み込み、各エントリの feed URL を検証したり、ヘッダ確認やサンプル取得を行うための補助的な Python スクリプトです(ファイル名と構成から推測)。こうしたスクリプトは、HTTP タイムアウト設定、リダイレクト処理、Content-Type の検査、重複フィードの除去などを実装すると実用性が高まります。

index.html と about.html は静的な情報提供ページで、OPML の用途や元データの出典(gist や Karpathy のツイート)へのリンクを明示しています。配布対象を OPML に限定する設計は、動的なフィードエンドポイントを作らずに単純な配付で済ませたい場合に有効です。用途としては、個人やチームでのフィードの初期セットアップ、研究・分析のためのサンプリング、あるいは別サービスへのインポート元として機能します。

改善点・運用面の注意としては、OPML の内容は時間経過で陳腐化しやすいため定期的な再生成(HN Popularity Contest の最新版を取得して再出力)を推奨します。また、fetch_blogs.py を定期実行する際にはレート制限やUser-Agent、キャッシュポリシーを加えること、失敗時のリトライやログ記録を実装することで信頼性が向上します。さらに、Docker コンテナ化や GitHub Actions を使った自動更新(週次で人気ブログの順位をチェックしてOPMLを更新)を組み合わせるとメンテナンス性が高まります。最後に、OPML をそのまま配布するだけでなく、HTML でフィード一覧のプレビューや未検証フィードのステータスを可視化する機能を追加すると利用者にとって親切です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • about.html: file
  • fetch_blogs.py: file
  • hn-popular-blogs-2025.opml: file
  • index.html: file

まとめ

HNの人気ブログを簡潔にRSS環境へ取り込める実用的で軽量なリポジトリです。

リポジトリ情報:

READMEの抜粋: This page is generated using an OPML version of the HN Popularity Contest results for 2025, for importing into RSS feed readers.

Source for the OPML — gist.github.com/emschwartz

Got the link to the OPML from Andrej Karpathy’s tweet. …