スポットDB 実現性調査レポート

YouTube字幕取得検証 / データベース規模推定 / SNSソース選定

調査日: 2026-02-22

1. YouTube字幕取得の検証結果

結論: Webshareプロキシ経由で字幕取得に成功

youtube-transcript-api v1.2.4 + WebshareProxyConfigの組み合わせで、日本語字幕の取得が正常に動作することを確認しました。

検証内容

テスト項目 結果 詳細
プロキシなし(直接接続) NG IpBlocked エラー(ローカルIPがYouTubeにブロック済み)
Webshareプロキシ経由 OK 英語・日本語ともに正常取得
スーツ旅行チャンネル RSS OK 15動画のメタデータ取得成功
旅動画の日本語字幕 OK 平均5,500文字/動画、スポット関連キーワード多数検出
バイクツーリング動画の字幕 OK 成功率75%(4動画中3動画で字幕取得成功)

検出されたスポット関連キーワード(実測)

ツーリング動画3本の字幕から以下のキーワードを自動検出:

道の駅, 温泉, 峠, スカイライン, カフェ, ラーメン, 神社, 寺, 城, 展望台, 海岸, 滝, 湖, 山, 川, ホテル, 旅館, 宿, 港, 公園, キャンプ, ワインディング, 富士, 日光, 北海道, 四国カルスト, 四万十川, 足摺サニーロード

コードへの反映(未実施)

現在の youtube_service.py にはプロキシ設定が入っていません。以下の変更が必要です:

2. データベース規模の推定

インプット(データソース別)

38
対象YouTubeチャンネル
5,700
字幕取得可能な動画
1,221
全国の道の駅
12,000
観光庁の観光資源

YouTubeチャンネル内訳

カテゴリ チャンネル数 推定対象動画数 1動画あたりスポット
バイクツーリング専門 15 3,000 5〜8
車ドライブ系 8 1,600 4〜6
旅行・グルメ系 10 2,000 5〜10
日本一周系 5 1,000 3〜5
合計 38 7,600 平均5

アウトプット推定(Phase別)

Phase 1

YouTube + Google Places + 道の駅

18,500
推定ユニークスポット
~$6/月
Webshare + 無料API枠

YouTube字幕から約18,500のユニークスポット抽出。Google Places APIで座標・評価を補完。道の駅1,221件を一括インポート。

Phase 2

+ じゃらん + 楽天トラベル

~20,000
推定ユニークスポット
+$0/月
追加コスト(両APIとも無料)

温泉800箇所、宿泊施設1,500、レジャー施設500を追加。ツーリングの「泊まり」「温泉」ニーズをカバー。

Phase 3

+ 観光庁 + ブログ

~27,000
推定ユニークスポット
Claude API費のみ
追加コスト

観光庁JAPAN47GOの12万件から約12,000のツーリング向けスポットをフィルタ。ブログからの穴場スポット追加。

カテゴリ別分布(Phase 1完了時)

絶景・自然
5,549
30%
グルメ
4,624
25%
道の駅・休憩
2,145
12%
温泉・宿泊
1,849
10%
神社仏閣・歴史
1,849
10%
峠道・ワインディング
1,849
10%
レジャー・キャンプ
1,848
10%

地方別分布推定

関東
3,329
18%
中部
2,959
16%
九州・沖縄
2,959
16%
北海道
2,219
12%
近畿
2,219
12%
東北
1,849
10%
中国
1,479
8%
四国
1,479
8%

3. データソース総合評価

ソース データ量 データ質 コスト 法的リスク 実装難易度 総合
YouTube S A $6/月 なし S
Google Places API S A 無料枠 なし S
道の駅API B S 無料 なし A
じゃらんAPI A A 無料 なし A
楽天トラベルAPI A A 無料 なし A-
ブログ・Webメディア A A Claude費のみ 中〜高 B+
Instagram A A 無料 B
X/Twitter B B $200/月〜 C+
TikTok B C $49〜/月 C
食べログ A A - 禁止 - 不可

各ソースの詳細分析

X/Twitter: 見送り推奨
  • Basic API: $200/月で15,000ツイートのみ(読み取り)
  • Pro API: $5,000/月(非現実的)
  • 位置情報付き投稿は全体の1-2%以下
  • サードパーティスクレイピングは規約違反リスク大
Instagram: Phase 3以降で検討
  • Graph API: 週30ハッシュタグ、過去24時間のみの厳しい制限
  • Facebookビジネスアカウント連携が必要
  • 位置情報タグの利用率は高い(20-30%)がAPI制限が制約
Google Places API: 即座に導入
  • 既存の maps_service.py を拡張するだけ
  • 無料枠: 月10,000リクエスト(Essentials)
  • 構造化データ: 座標、評価、写真、営業時間が取得可能
  • 追加コスト: 実質ゼロ

4. 推奨データソース構成

Phase 1(即実行) ┌──────────────────────────────────────────────┐ │ YouTube字幕 ──→ Claude AI ──→ スポット抽出 │ 18,500 スポット │ Google Places API ──────────→ 座標・評価補完 │ + 位置情報 │ 道の駅API ──────────────────→ 一括インポート │ + 1,221 道の駅 └──────────────────────────────────────────────┘ ↓ Firestore touring_spots Phase 2(1-2ヶ月後) ┌──────────────────────────────────────────────┐ │ じゃらんAPI ─────────────────→ 温泉・宿泊 │ + 2,300 スポット │ 楽天トラベルAPI ─────────────→ ホテル評価 │ + 500 施設 └──────────────────────────────────────────────┘ Phase 3(3ヶ月後〜) ┌──────────────────────────────────────────────┐ │ 観光庁 JAPAN47GO ────────────→ 観光資源 │ + 12,000 スポット │ ツーリングブログ RSS ────────→ 穴場スポット │ + α └──────────────────────────────────────────────┘

月間ランニングコスト

項目 Phase 1 Phase 2 Phase 3
Webshare プロキシ $5.49/月 $5.49/月 $5.49/月
Google Places API $0(無料枠内) $0 $0
Claude API(スポット抽出) ~$15/月 ~$5/月 ~$10/月
道の駅API / じゃらん / 楽天 $0 $0 $0
合計 ~$21/月(約3,100円) ~$11/月(約1,600円) ~$16/月(約2,400円)

※ Phase 1はDB初期構築で Claude API費が高め。Phase 2以降は差分更新のみで低コスト

5. 目標スポット件数

参考値: 競合サービスのスポット数

サービス スポット数 特徴
ツーリングマップル 5,000〜10,000 紙面+Web。編集部キュレーション
じゃらん観光ガイド ~30,000 口コミベース。全カテゴリ
Google Maps 日本 数百万POI 全カテゴリ。ツーリング特化ではない
Calimoto(海外) ~50,000(全世界) ユーザー投稿 + キュレーション

TouringApp 目標値

5,000+
MVP(Phase 1前半)

全国8地方を最低限カバー。各地方600+スポット

15,000+
Growth(Phase 1完了)

毎回異なるルートを提案可能。ツーリングマップルを超える

25,000+
Scale(Phase 3完了)

圧倒的な網羅性。穴場スポットまでカバー

数より質が差別化要因

Google Mapsは数百万POIを持つが「ツーリングで楽しい場所」の選定はできない。TouringAppの強みは:

  • mentionCount: 複数のYouTuberが推薦したスポットは信頼性が高い
  • youtuberRating: 「最高!」vs「通りがかった」の温度感
  • カテゴリ特化: ワインディング、峠、絶景ロードなどツーリング固有のカテゴリ
  • 実走データ: YouTuberが実際にバイク/車で訪問した実績

6. 「新しい体験を発見する」仕様

コンセプト: ユーザーが行ったことのある場所を避け、毎回新しいスポットを発見できるようにする

実装アプローチ

データ 活用方法 実装場所
touring_logs
(走行記録)
GPS座標から訪問済みスポットを判定。半径500m以内に走行ログがあるスポットを「訪問済み」とマーク user_preference_service.py
saved_routes
(保存ルート)
過去に保存したルート上のスポットを「知っている場所」として扱う user_preference_service.py
favorite_spots
(お気に入り)
お気に入り登録済みスポットは「既知」として新規提案から除外 spot_service.py

ルート生成時のプロンプト注入イメージ

## ルート設計の注意事項 ### このユーザーが訪問済みの場所(避けてください) - 箱根ターンパイク(2回訪問) - 道の駅 すばしり(3回訪問) - 西伊豆スカイライン(1回訪問) ### まだ行ったことがない近隣のおすすめスポット 1. 伊豆スカイライン(scenery)★★★ - 相模湾を一望 [言及数: 8] 2. 河津七滝ループ橋(road)★★ - 独特な螺旋橋 [言及数: 5] 3. 修善寺虹の郷(scenery)★★ - 四季折々の庭園 [言及数: 3] → 訪問済み場所を避け、新しい体験を優先してルートを設計してください。

「新発見スコア」の設計

各スポットに「このユーザーにとっての新鮮さ」を数値化:

ルート生成時にスコアの高いスポットを優先的にプロンプトに含めることで、常に新しい発見があるルートを提案します。

結論と次のステップ

YouTube字幕取得はWebshareプロキシで動作確認済み。技術的な障壁はクリアされました。

Phase 1で18,500+スポットのDBが構築可能。月額約3,100円のコストで、ツーリングマップルを超える規模のスポットデータベースが実現できます。

推奨ソース構成: YouTube + Google Places + 道の駅API。X/Twitter、Instagram、TikTokはコスト対効果が低く見送り。じゃらん・楽天はPhase 2で追加。

次のアクション:
  1. youtube_service.py にWebshareプロキシ設定を反映
  2. Webshare認証情報をFirebase Secret Managerに登録
  3. 対象チャンネルリストの確定(初回10チャンネルから開始)
  4. 自動スケジューリング(週次バッチ)の実装
  5. 道の駅API一括インポートの実装