推しグルメ巡礼MAP - プロジェクト定義書

サイト概要

ゴール


データ収集パイプライン

① YouTube Data API(Python)
   チャンネルの動画一覧を自動取得
   → youtube_id・タイトル・説明文・投稿日を保存
          ↓
② Gemini API(自動)
   動画リストから飲食店訪問動画を選別
   → 店名・住所・メンバー・ジャンルをJSON抽出
   ※ youtube_idはAPIから取得済みのものを使用(捏造防止)
          ↓
③ Python バリデーション
   - youtube_id: 11文字英数字・ユニークチェック
   - 重複店舗の検出(店名の正規化)
   - 必須フィールドの確認
          ↓
④ Python ジオコーディング
   住所 → 緯度・経度(Nominatim OpenStreetMap、無料)
          ↓
⑤ Python アフィリエイトURL付与
   店名で食べログ・ホットペッパーを検索してURL付与
          ↓
⑥ shops.json 自動マージ

データ収集ルール


データスキーマ(shops.json)

{
  "id": "yonino-xxx",
  "name": "店名",
  "genre": "カフェ",
  "prefecture": "東京都",
  "city": "渋谷区",
  "address": "東京都渋谷区...",
  "lat": 35.6812,
  "lng": 139.7671,
  "youtube_id": "XXXXXXXXXXX",
  "source_video_title": "動画タイトル",
  "source_video_url": "https://www.youtube.com/watch?v=XXXXX",
  "visited_date": "2025-01-15",
  "members": ["二宮和也"],
  "groups": ["yonino"],
  "group": "yonino",
  "description": "説明",
  "nearest_station": "渋谷駅",
  "price_range": "〜3000円",
  "tabelog_url": "https://tabelog.com/...",
  "hotpepper_url": "https://www.hotpepper.jp/...",
  "google_maps_url": "https://maps.google.com/...",
  "tags": ["行列", "朝食"],
  "affiliate_links": [
    {"label": "食べログで見る", "url": "https://tabelog.com/..."},
    {"label": "ホットペッパーで予約", "url": "https://www.hotpepper.jp/..."}
  ],
  "thumbnail_url": "https://image.tmdb.org/t/p/w500/...",
  "source_type": "drama",
  "tmdb_id": 45753,
  "tmdb_type": "tv",
  "ordered_items": ["カフェラテ", "スコーン"],
  "seating_note": "カウンター席あり・テラス席からの眺望が動画のメインシーン"
}

ジャンル一覧

カフェ ラーメン 焼肉 食事 スイーツ 寿司 もんじゃ 居酒屋 和食 その他


対象グループ・チャンネルID

group ID グループ名 チャンネルID チャンネルURL
yonino よにのちゃんねる UC2alHD2WkakOiTxCxF-uMAg https://www.youtube.com/@yoninochannel
snowman すの日常(Snow Man) UCuFPaemAaMR8R5cHzjy23dQ https://www.youtube.com/@SnowMan.official.9
sixtones ストチューブ(SixTONES) 未確認 https://www.youtube.com/@SixTONES_st
naniwa なにわ男子 UCDtVdj7sm41Ysg3XSiSUH3w https://www.youtube.com/@naniwadanshi_official
equal_love イコラブ(=LOVE) 未確認 -
nogizaka46 乃木坂46(公式MV) UCUzpZpX2wRYOk3J8QTFGxDg https://www.youtube.com/@nogizaka46SMEJ
nogizaka46 乃木坂配信中(乃木坂工事中) UCfvohDfHt1v5N8l3BzPRsWQ https://www.youtube.com/@nogizakahaishinchu
hinatazaka46 日向坂46 未確認 -
sakurazaka46 櫻坂46 未確認 -
ginga 中丸雄一 銀河チャンネル - https://8888-info.hatenablog.com/entry/%E3%83%AD%E3%82%B1%E5%9C%B0%E4%B8%80%E8%A6%A7
kamaitachi かまいたち UCIR2mQ77wHrLMreV45nYhgw https://www.youtube.com/@kamaitachi
kodoku_no_gurume 孤独のグルメ - goro-tablog.com(ファンサイト)/ TMDB ID:45753
heysayjump Hey! Say! JUMP(いただきハイジャンプ) UCZgJwFN1PeR8hZZ8A7huuTQ(ファン) TMDB ID:197002 / e-nini08.hatenadiary.jp

グループカラー(main.js)

yonino:       '#e8537a'  // ピンク
snowman:      '#3b82f6'  // ブルー
sixtones:     '#7c3aed'  // パープル
naniwa:       '#f97316'  // オレンジ
equal_love:   '#f43f5e'  // レッド
sakurazaka46: '#e11d48'  // 深紅
nogizaka46:   '#0ea5e9'  // 水色
hinatazaka46: '#f59e0b'  // アンバー
kamenashi:         '#059669'  // グリーン
kodoku_no_gurume:  '#92400e'  // ブラウン
heysayjump:        '#ef4444'  // レッド

アフィリエイト戦略

対象サービス

| サービス | 報酬形態 | 備考 | |———|———|——| | 食べログ | クリック報酬 | ASP経由 | | ホットペッパーグルメ | 予約報酬 | リクルートAP | | Googleマップ | なし | UX向上目的 |

実装方針


スクリプト一覧(scripts/)

ファイル 役割
fetch_channel_videos.py YouTubeチャンネルの動画一覧取得
merge_shops.py 新規JSONをshops.jsonにマージ(バリデーション含む)
geocode_shops.py 座標なし店舗のジオコーディング(Nominatim)
geocode_kamenashi.py 住所なし店舗向け強化版ジオコーディング(Overpass API併用)
match_videos.py 訪問日付からyoutube_idを紐付け
scrape_naniwa.py なにわ男子ロケ地スクレイピング(illmnt.com / hatenablog)
scrape_snowman.py Snow Manロケ地スクレイピング(snowman-information.com / hatenablog)
scrape_kamenashi.py 亀梨和也ロケ地スクレイピング
scrape_nogizaka.py 乃木坂46スクレイピング(senublog.com)
scrape_ginga.py 中丸雄一銀河チャンネルスクレイピング(8888-info.hatenablog.com)
scrape_hinatazaka.py 日向坂46スクレイピング(せっかくグルメ銚子回ほか)
scrape_kamaitachi.py かまいたち動画説明文パース(ロケで行った飲食店まとめ)
scrape_kodoku.py 孤独のグルメ スクレイピング(goro-tablog.com)+ TMDB APIでエピソードスチール取得
build_heysayjump.py Hey! Say! JUMP(いただきハイジャンプ)ファンブログ抽出済みデータからJSON生成

環境変数

export YOUTUBE_API_KEY="..."   # YouTube Data API v3
export GEMINI_API_KEY="..."    # Gemini API(未取得)
export TMDB_API_KEY="..."      # TMDB API(ドラマ・映画サムネイル取得)登録: https://www.themoviedb.org/settings/api

現在の状況(2026-05-14時点)

データ収集パイプライン(実績)

ロードマップ

  1. ✅ MVP作成・デプロイ
  2. ✅ 独自ドメイン設定(gourmet.oshikatsu-guide.com)
  3. ✅ データ収集パイプライン構築(スクレイピング中心)
  4. ✅ GA4 + Google Search Console設定
  5. ✅ 対象をアイドルから芸人・YouTuberに拡大(ginga・kamaitachi追加)
  6. ✅ ランキングページ新設(/ranking/)
  7. 🔄 データ拡充(目標3000件)
  8. ✅ ドラマ・映画ソース対応(thumbnail_url / source_type / tmdb_id フィールド追加)
  9. 🔄 孤独のグルメ データ収集(scrape_kodoku.py 完成・TMDB_API_KEY取得待ち)
  10. ⬜ アフィリエイトリンク整備(食べログ直URL・ホットペッパー)
  11. ⬜ 乃木坂46 / 日向坂46 追加ファンブログ発掘
  12. ⬜ データ3000件達成