毎朝 Discord に届くアクセス数:API と cron の自動通知
Cloudflare と YouTube の API からアクセス数を取得し、cron で毎朝 Discord に通知する仕組みを作った話
← 前の記事: ComfyUI で挿絵を作る:NanoBanana Pro からの移行サイトを公開したあとに気づいたこと
サイトが動いている。コンテンツも増えてきた。YouTube にも動画を上げた。
公開してしばらくして、一つ気になることがあった。誰かが見ているのか、わからない。
アクセス数を知る方法はある。Cloudflare の管理画面を開けばリクエスト数とページビューが見られる。YouTube Studio を開けば再生数と登録者数がわかる。でも毎日ブラウザを開いて、ログインして、ダッシュボードを確認して——これが思ったより面倒だった。
3日確認しないと「あの3日間、誰が来ていたんだろう」という感覚になる。確認のハードルが高いと、見なくなる。見なくなると、サイトへの関心が薄れていく気がした。
「毎朝、前日の数字が自動で届いてくれればいい」と思った。
API という「裏口」
Cloudflare にも YouTube にも、API がある。
API というのは、サービスの機能をプログラムから呼び出すための窓口だ。ブラウザで管理画面を開いてマウスで操作する代わりに、コードからデータを取得できる。
Cloudflare の場合は GraphQL という形式で問い合わせる。「昨日のリクエスト数、ページビュー数、ユニーク訪問者数を教えて」という内容を送ると、数値が返ってくる。
YouTube の場合は「このチャンネルの統計を教えて」と問い合わせると、総再生数・登録者数・動画数が返ってくる。さらに動画ごとの再生数も取れる。
API を使うには認証情報が必要だ。「あなたは誰ですか」と確認するためのキーやトークンをあらかじめ発行して、問い合わせのたびに提示する。これらは .env ファイルにまとめて保存しておいて、スクリプトが実行されるときに読み込む仕組みにした。認証情報そのものをコードに直接書かないのは、セキュリティ上の基本だ。
Discord に送る
取得したデータの送り先は Discord にした。
Discord には webhook(ウェブフック)という仕組みがある。特定の URL に JSON データを送ると、そのチャンネルにメッセージが投稿される。ボットを用意したり、専用アカウントを作ったりする必要はない。サーバーの設定画面で URL を一つ発行するだけだ。
Python スクリプトを書いた。Cloudflare から数値を取得し、YouTube から数値を取得し、それを整形して Discord の webhook URL に送る——この3ステップだけだ。
Discord に届くメッセージはこういう形になっている:
yatmita.com Daily Stats (2026-03-03)
Cloudflare
Requests: **
Page Views: **
Unique Visitors: **
YouTube
Total Views: **
Subscribers: **
Videos: **
Per Video
たんぱくパスタの科学 第1回: ** views
スムージーの歴史: ** views
...
数秒で読める量だ。「昨日はどれくらいの人が来たか」「どの動画が見られているか」が一目でわかる。
cron で毎朝届くようにした
スクリプトが動くことを確認したあと、自動化した。
cron(クロン)という仕組みがある。Linux で「この時刻にこのコマンドを実行しろ」と登録しておくと、指定の時刻になると自動で動く。目覚まし時計のようなものだ。
crontab -e でエディタを開いて、1行追加した。「毎朝 8 時に、このスクリプトを実行する」という指示だけだ。
それ以来、朝起きて Discord を開くと、寝ている間にメッセージが届いている。前日分のアクセス数がまとまっている。昨日何人来たか、どの動画が見られていたか——それを朝のコーヒーを飲みながら読む。
小さいことだが、これが思った以上によかった。毎日確認するかどうかが、仕組みに左右されている。ダッシュボードを自分で開きに行く仕組みと、向こうから届く仕組みでは、実際に確認する頻度が全然違う。
シリーズを振り返って
この仕組み自体は小さい。Python スクリプト1本と cron の設定1行だ。
でもこのシリーズ全体を振り返ると、同じパターンが何度も出てくる。
- Ralph Wiggum Loop: build のエラーフィードバックを自動化
- ComfyUI スキル: 画像生成の手作業を自動化
- 日次通知: アクセス数の確認を自動化
「毎回手でやっていたことを、スクリプトに任せる」——このシリーズを通じて書いてきたのは、その繰り返しだった。
サイトの設計、コードの実装、コンテンツの執筆、画像の生成、そして運用の自動化。全部をこの Docker コンテナの中で、AI と一緒にやった。何かに困るたびにスクリプトを書いて、スクリプトを書くことにまた困るたびに AI に頼んだ。
yatmita.com を作る過程で書きたかったのは、その体験の記録だ。
毎朝 Discord を開くと、前日の数字が届いている。それだけのことだ。でもそれだけのことを、スクリプトに任せるところまで来た。