--- description: バンド名を受け取り、公式SNSから説明文・メンバー情報を取得して whoisband.yyamashita.com の本番APIを更新する --- # バンド情報最新化スキル 本番API(`https://whoisband.yyamashita.com`)の既存バンド情報を SNS プロフィールから最新化する。 ## 使い方 ``` /update-band-info BAND_NAME ``` 例: `/update-band-info 東京事変` --- ## 手順 ### Step 1: バンドを特定する ```bash curl -s "https://whoisband.yyamashita.com/api/bands" | python3 -c " import json, sys data = json.load(sys.stdin) name = '$ARGUMENTS'.strip() matches = [b for b in data if name.lower() in b['name'].lower() or name.lower() in b['slug'].lower()] print(json.dumps(matches, ensure_ascii=False, indent=2)) " ``` - 一致なし → ユーザーに「登録されていません。`/register-band` で登録してください」と伝えて終了 - 複数一致 → 候補を列挙してユーザーに選択を求める - 1件一致 → UUID を控えて次へ ### Step 2: バンドの現在データを取得する ```bash curl -s "https://whoisband.yyamashita.com/api/bands?id={uuid}" ``` レスポンスから以下を確認: - `links`: 既存の SNS リンク一覧(URL と label) - `members`: 既存メンバー一覧(`artist_id`, `artist_name`) - `description`: 現在の説明文 ### Step 3: SNS プロフィールを取得する 既存リンクの中から SNS アカウントを優先順位順に処理する: **優先順位**: X (twitter.com/x.com) → Instagram → その他 SNS リンクが存在しない場合は WebSearch で探す: - `{バンド名} x.com site:x.com` - `{バンド名} instagram.com` 各 SNS について WebFetch でプロフィールページを取得し、以下を抽出: | 取得対象 | 内容 | |---|---| | **説明文** | アカウントの bio / 自己紹介文 | | **フォロワー数・投稿数** | 活動の活発さの目安(参考情報) | | **メンバー名** | bio や固定投稿に名前が書いてある場合 | | **新規 SNS リンク** | 他 SNS へのリンクが bio に記載されていれば収集 | ### Step 4: 説明文を作成する 収集したバイオから説明文を組み立てる。**必ず以下のフォーマットで保存する**: ``` 「{SNS の bio テキスト(原文のまま)}」 — {SNS種別} @{アカウント名} より({取得日: YYYY-MM-DD}) ``` 例: ``` 「東京を拠点に活動するロックバンド。2019年結成。」 — X @tokyoband より(2026-05-15) ``` フォーマットのルール: - bio テキストは **原文のまま** 引用(改変・要約しない) - 英語バイオもそのまま引用する(翻訳しない) - bio が長すぎる場合(100文字超)は前半を引用し `…` で省略 - SNS 種別は `X`, `Instagram`, `公式サイト` 等 - 取得日は今日の日付 (UTC+9, JST) を使う - 既存の `description` が十分で SNS bio と大差ない場合は上書きしない判断も可 ### Step 5: メンバーを照合・登録する メンバー情報が SNS から読み取れた場合: **5-1. 既存アーティストとの照合** ```bash curl -s "https://whoisband.yyamashita.com/api/artists" ``` 照合ルール(以下の順に判定): 1. **SNS URL が一致** → 同一アーティストと断定 - 既存アーティストのリンク一覧と比較 - `curl -s "https://whoisband.yyamashita.com/api/artists?id={uuid}"` で各アーティストのリンクを確認 2. **名前が完全一致** → 同一アーティストと断定 3. **名前が部分一致または表記ゆれ** → スキップ(あいまいな場合は追加しない) 4. **一致なし** → 新規アーティストとして登録 **5-2. 新規アーティストの登録** ```bash curl -s -X POST "https://whoisband.yyamashita.com/api/artists" \ -H "Content-Type: application/json" \ -d '{ "name": "メンバー名", "links": [ { "label": "x", "url": "https://x.com/..." } ], "message": "SNS情報から自動登録" }' ``` レスポンスの `id` (UUID) を控える。 **5-3. メンバーの担当パートを特定する** bio / 固定投稿 / プロフィール情報からパートを読み取る。 明記されていない場合は `"Other"` を使う。 使えるロール: `Vocal`, `Guitar`, `Bass`, `Drums`, `Keyboard`, `DJ`, `Strings`, `Brass`, `Percussion`, `Programming`, `Manipulator`, `Turntable`, `Other` ### Step 6: バンドを更新する ```bash curl -s -X PATCH "https://whoisband.yyamashita.com/api/bands" \ -H "Content-Type: application/json" \ -d '{ "id": "{uuid}", "description": "SNSから取得した説明文", "append_links": true, "links": [ { "label": "x", "url": "https://x.com/bandaccount" }, { "label": "instagram", "url": "https://www.instagram.com/bandaccount/" } ], "append_members": true, "members": [ { "artist_id": "uuid-of-member", "role": "Vocal", "since": "", "until": "", "note": "" } ], "message": "SNS情報から自動更新" }' ``` - `append_links: true` → 既存リンクに追記(重複 URL は自動スキップ) - `append_members: true` → 既存メンバーに追記(既存の artist_id は自動スキップ) - 説明文のみ更新したい場合は `links: []`, `members: []` にする ### Step 7: 結果を報告する ``` 更新完了: バンド名 → https://whoisband.yyamashita.com/bands/of/{uuid} 更新内容: - 説明文: 「...」 - 追加リンク: x.com/... など - 追加メンバー: 名前(担当)× N 名 ``` --- ## 注意事項 - SNS が非公開 / 存在しない場合はその旨を伝えてスキップ - description が取得できなかった場合は description の更新をスキップ(空文字で上書きしない) - メンバーが全員既存登録済みの場合は `members: []` で送信(重複しない) - X(Twitter) のプロフィール取得は `https://x.com/{handle}` ではなくWebSearchの結果から取得することが多い - Instagram は `https://www.instagram.com/{handle}/` でWebFetch可能