【要約】日向坂46の出演情報を追いきれなくなったので、横断検索ポータルを作った話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
日向坂46のファンが、膨大なメンバーの出演情報を追いきれず、検索に困難を感じている。
- ・メンバー数が31名を超え、記憶による管理が限界に達している。
- ・YouTube公式チャンネルでは、メンバー名での検索ができない。
- ・情報がTV、ラジオ、YouTubeなど、複数の媒体に分散している。
- ・情報を一箇所で効率的に確認する手段が欠如している。
// Approach
開発者が、情報の集約と検索性を高めるため、バックエンドとフロントエンドを分離した構成を採用した。
- ・
ohisama-backend: PythonとPlaywrightで情報を収集・加工する。 - ・
ohisama-portal: Next.js 15を用い、高速な検索UIを提供する。 - ・著作権保護: サムネイルを取得せず、各公式サイトへ遷移させる。
- ・負荷対策: スクレイピングによる過度なアクセスを回避する。
- ・自動化: GitHub Actionsで、データの定期的な収集を行う。
// Result
利用者が、複数のプラットフォームを跨いで情報を取得できる環境を実現した。
- ・メンバー名や種別による横断的な検索が可能となった。
- ・
/almost-overにより、配信終了間近の情報を特定できる。 - ・将来的にAWSやSupabaseへ移行し、拡張性を高める計画がある。
- ・案内サイトに徹することで、著作権への配慮を両立した。
Senior Engineer Insight
> 個人開発の枠を超えた、実戦的な設計思想である。特に著作権への配慮や、将来的なAWS移行を見据えた構成は評価できる。ただし、スクレイピングは対象サイトの仕様変更に極めて脆弱だ。運用では、収集失敗を検知する監視体制の構築が不可欠となる。JSON運用からDB移行へのタイミングが、システムの信頼性を左右するだろう。