以下の内容はhttps://missasan.hatenablog.com/entry/kpop-comeback-metrics-with-mackerelより取得しました。


子育て中でも K-POP カムバ初速を観測したいので、Mackerel にメトリックを送ってみた

Mackerel Advent Calendar 2025 5日目の記事です。

先週ちらっと確認したらまだ 1 週目が埋まっていなかったので、「小ネタでもいいから何か書くか…」と思い、以前からやってみたかった K-POP カムバ初速のメトリック取得に挑戦してみました。 飴玉一つ入ってたくらいの感じでお読みください。

K-POP が好き。だけど時間がない

私は K-POP が大好きで、基本的に何でも聴く雑食タイプです。

入門は TWICE。その後各種オーディション番組にはまり、ENHYPEN を主に推していました。最近は(KPOPではないけど)XG、ゆるめに LE SSERAFIM、ILLIT あたりも追いつつ、今はいろんなグループの動向を眺めています。いろいろありましたが、NewJeans も曲が好きでよく聴いていました。

ただ、子どもが生まれてからはまとまった時間が取れなくなってしまい、活動としては「新曲が出たら観る」「24 時間でMVどのくらい伸びたかな〜とチェックする」くらいのうすい活動が限界に。

なので、この初速の観測を自動化できたら楽しそうだなと思ったのが今回のモチベーションでした。

やりたかったこと

  • カムバ直後の再生数の伸びを見たい
  • 複数グループを並べて観測したい

バイブコーディングにがっつり頼り、いろいろと試しながら形にしていきました。

指標選びでつまずいた話

Google トレンドは使えなかった

最初は「人気度=Google トレンド」でメトリック投稿しようと思ったのですが、Google トレンドは以下の仕様により断念しました。

  • 取得した1 週間内での最大値を100とした相対評価になる
  • 複数グループを指定するとグループ間の相対評価になる

つまり、絶対値として毎時間メトリックを取る用途には向かなかったのでやめました。

YouTube MV 再生数に切り替え

そこで MV の再生数を使うことにしたのですが、これがまた地味に難しい。

  • リリース直後の MV をどう特定するか
    • MV はリリースされるまで URL がわからないので、「最新 MV を探す仕組み」が必要。
  • グループの公式チャンネルに出ない問題
    • グループ公式チャンネルではなく、レーベル公式チャンネルに MV が出ることが多く、他グループのものもあるので検索に工夫が必要。
    • 「グループ名 + MV」で検索するようにしました。
  • MV っぽいけど MV じゃない動画が多い
    • teaser / remix / dance practice などが出てくるので除外フィルタを追加。
    • さらに ILLIT は ショート動画が本編 MV とまったく同じタイトルで出てくる という運用がされていることがわかりました。
      • 60 秒以内の動画を排除するようにしました。

手順の全体像

  • レーベル公式チャンネルから最新検索結果 50 件を取得
  • 条件に合う最新 MV があれば再生数を取得
  • 1時間ごとに View 数の 絶対値前回との差分 をメトリックとして投稿
  • 新しい MV が出たら自動的にそちらに切り替わる(無限に対象が増えない)

穴のある仕組みではありますが、まず動かすことを優先しています。

補足

後から気付いたんですが、今回はコード側で差分値を出して投稿しているんですが、サービスメトリックには、グラフ定義側で差分値を出す機能がありました...

グラフ定義の設定画面

プログラムでとった差分と雰囲気の違うグラフが出るので、裏の仕様は気になるところですが、調べるところまで間に合いませんでした。

左がグラフ定義の差分値、右がプログラムの差分値

YouTube API クォータ問題との戦い

メトリック取得までは順調だったのですが、翌朝見ると 2 時以降エラーで止まっていました。 原因は YouTube API のクォータ exceeded

そこで最新動画検索のタイミングを、K-POP の MV がよく公開される

  • 13 時
  • 18 時

+1時間後(14時・19時) に限定しました。

クォータ計算的にも十分余裕があるのを確認し、この運用に落ち着きました。

スケジュールと実行は GitHub Actions に任せていますが、これが10〜30分くらいの幅でスケジュールがズレるし、なんならたまにキューから漏れるので差分値が不安定になる(取得間隔が短いと少なく、長いと多く見える)のは悩ましいところです。

観測対象グループ

最初は以下の 4 グループを対象にしました。

  • IVE
  • aespa
  • LE SSERAFIM
  • ILLIT

直近リリースがあるわけではなかったので変化は少なく横ばい気味です。 そこで、12/1 にソロアルバムを出した 少女時代 TAEYEON も追加しました。

結果(グラフ)

絶対値のほうは大きな動きがなくて少しさびしいのですが、差分値は若干動きがあっていい感じです。この1時間で少なくとも4万人の人がKPOPのMV観てるんだな〜とファンダムの規模感を感じられて嬉しい。

3日ほど動かしてみたグラフ

毎日10-12時あたりの視聴数が多いように見えます。みんな午前中にMV観るんだ〜と思っていたら、これがよく見ると、9時台と11時台のスケジュールが毎回スキップされていることに気がつきました(画像からはわかりずらくてすみません)。2時間分の差分になってしまっているのであたかも高い値に見えてしまっています。とても残念。

10-12時あたりが跳ねているように見える

TAEYEONだけに絞ると、MVのリリース直後にぐっと視聴が伸びているのがわかって楽しいです。

TAEYEONだけに絞るとこんな感じ

グラフ描画で困ったところ

今回はシンプルに サービスメトリック として投稿しました。 サービスメトリックはAPIでシュッと投げるだけでいいので、投稿は楽なのですが、グラフの描画方法を自由に操作できるわけではないので、物足りなさがありました。

  • メトリック名でグラフの所属が決まるので、後から「このグループだけ別グラフにしたい」などの変更が難しい
  • 絶対値と差分値で同じグループでも色が揃わない

後から好きに組み合わせられる ラベル付きメトリック にしておけばよかったなと後悔しています。

もっと遊ぶなら

他にもいろいろ追加したいものなど、妄想が進みます。

  • グループ数をもっと増やす(ヨジャだけでなく、ナムジャも見たい。クォータと相談しつつ)
  • MV 再生数以外の指標(SNS の盛り上がり、音源のランキングなど)
  • メトリック投稿とは別に、デビュー情報・カムバ情報の通知

閾値を越えたり下回ったりしたら通知するとか、新MVが追加されたら通知するなど監視ルールも整備して、普段ならネットサーフィンして集めているような情報を自動で Slack や LINE に流せるようにしたいです。

おわりに

今回の試みは趣味活ではありますが、実際にやってみると監視基盤をどう設計するかという観点で、思った以上に学びがありました。

1. 「何を計測したいか」を決めることの難しさ

Google トレンドを断念し、YouTube 再生数に切り替えるまで、 “値として安定して蓄積できる指標とは何か” を考えることになりました。

  • 相対値か絶対値か
  • 時間軸で値の意味が変わらないか
  • 外部サービス依存の揺らぎを許容できるか

といった初期設計の重要性をあらためて感じました。

2. 制約が監視設計そのものを変えていく

実際の現場でも上記のような“外側の事情”が、そのまま監視ロジックの形を決めてしまうことがあると思います。

  • API の実行コスト
  • データ転送量
  • ストレージ費用
  • レートリミット

私も今回、YouTube API のクォータに合わせて実行頻度を下げざるを得なかった、という「使うものの制約に監視設計が引っぱられる」という体験ができました。

加えて今回は 差分監視 を行っているため、GitHub Actions のスケジュール揺れやドロップがあると、差分の意味自体が変わってしまう問題にも直面しました。

趣味活なら「まあいいか」で済みますが、仕事でこれが起きていたら確実にストレスになりそうで、データ品質をどう担保するかが監視設計において本質的なテーマだと再認識しました。

今回ひさびさにこういった、ちょっとした趣味メトリックを投稿するということをやってみましたが、思いがけない学びも多く、やっぱり楽しいかったです。

忙しい中で推し活をしている方、気が向いたらぜひ皆さんも “推しのメトリック” を投稿して遊んでみてください。




以上の内容はhttps://missasan.hatenablog.com/entry/kpop-comeback-metrics-with-mackerelより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14