テック

約3,100件の和楽器イベントDBを作った話 — 全国の演奏会を毎日集める

「今週末、どこかで和楽器の演奏会をやっていないかな」——そう思って調べ始めると、情報が主催者の公式サイト、会場のページ、チケットサイトなどにバラバラに散らばっていて、全体を見渡せる場所がないことに気づきます。とわのねでは、全国の和楽器イベントを毎日自動で集めて一覧できるデータベース 和楽器イベントまとめ(/wagakki-db/) を運営しています。本稿は、その裏側でどうやってデータを集め、整えているかの開発ノートです。

なぜ作ったか — 情報が散らばっている

和楽器の演奏会情報は、「いつ・どこで・どのジャンルが観られるか」を横断して見られる場所がほとんどありません。発見が断片化していて、能が観たい人も、太鼓のイベントを探している人も、それぞれ別々のサイトを巡らないと見つけられない。これを一つのカレンダーとフィルタで俯瞰できる状態にすることを目指しました。無料で、毎日自動更新され、各イベントは必ず出典(一次情報)へのリンクを持つ——そういう「探すためのハブ」を作ろう、というのが出発点です。

どう作っているか — 全自動の収集パイプライン

データは手作業ではなく、全自動で集めています。おおまかな流れはこうです。

  • 公開されている情報源(主催者公式・会場公式・チケット/告知サイトなど複数)をクロール
  • 生データを保存し、タイトル・日付・会場・出演者・ジャンルを構造化抽出
  • 名寄せ・正規化して表記を揃える
  • 重複を排除する
  • 最終成果物を静的な JSON として出力

抽出・分類・重複判定の難しい部分には、手元で動かしているローカル LLM(Ollama)を使っています。外部の生成 AI API は開発時に補助として使うことはあっても、運用(毎日の巡回処理)には組み込みません。ランニングコストをゼロに保ち、外部サービスへの依存を最小にするためです。収集の際は robots.txt を尊重し、アクセス間隔にも配慮しています(具体的な収集元サイト名は、巡回のマナーの観点から公開していません)。

技術スタックとデータ規模

  • 言語・保存:Python 3.12 + SQLite(WAL モード)、cron による定期巡回
  • 成果物events.jsonmeta.json(静的 JSON)
  • 配信:静的 SPA + JSON。ランタイムにサーバー処理や課金 API を持たない(地図 API なども不使用で費用ゼロ)
  • 更新:毎日 6:00(JST)に自動巡回。曜日ごとに収集元を分散。5:00 に DB をバックアップ
  • 規模:公開対象イベント 約3,100件(DB 総計 約4,150件、うち今後開催の未来イベント 約600件)。会場マスタ 約1,800会場、出演者 約2,460名を紐付け(いずれも2026年7月時点。毎日更新のため件数は変動します)

古いイベントも削除せず保持しています(履歴・出典の追跡のため)。閲覧側は月間カレンダーで「これから観られる公演」を中心に見せる設計です。

開発の裏側 — 地味だけど効く工夫

自動で集めると、そのままでは使えないデータがたくさん出てきます。手こずったところを率直に残しておきます。

重複排除 — 同じ公演が何度も出てくる

同じ公演が、主催者・会場・チケットの複数サイトに載っています。単純なタイトル一致では取りこぼすので、「日付が一致することを前提に、会場・タイトル・出演者の類似度をスコアリングして」判定し、境界のきわどい例はローカル LLM に最終判断させています。地味に重要なのが、「第1部/第2部」「昼の部/夜の部」を別の公演として結合しないという線引きでした。

表記ゆれの正規化

全角・半角の統一(NFKC)、「第三回 → 第3回」、会場の親子関係(「○○ホール 大ホール」と「○○ホール」)、タイトルに付く「〜○○〜」のようなキャッチコピーの除去。細かいですが、これをやらないと同じイベント・同じ会場が別物として散らばります。

日付・会場の揺れと、タイトル汚染

複数の日付表記を ISO 形式へ統一し、サブ会場が親組織名で登録される取り違えを補正、都道府県は住所・郵便番号・市外局番・市名から補完しています。さらに、クローラーが日付・時刻・会場名をタイトルに混ぜ込んでしまう「タイトル汚染」(例:「…コンサート 2026/07/04 14:00開演 大阪府|会場」)には、抽出時にサニタイズする恒久ガードを入れて対処し続けています。

18ジャンルで分類する

楽器・芸能の種別を主軸に、次の分類で色分けしています:能・狂言・歌舞伎・文楽・雅楽・箏・三味線・尺八・篠笛・太鼓・琵琶・胡弓・民謡・浪曲・落語・日本舞踊、そして横断カテゴリとして三曲・和楽器(複合)。複数の楽器が絡む公演は複合タグ(例「箏, 尺八」)で表現します。今後開催されるもので多いのは、能・歌舞伎・太鼓・狂言・文楽あたりです。

実際の探し方・使い方は、「和楽器の演奏会、どこで探す? — /wagakki-db/ の使い方」にまとめました。あわせてどうぞ。和楽器チューナー「とわいと」など、とわのね の和楽器×テックの取り組みの一つです。

共有: 𝕏 LINE B!