最近、NeosVRやVRChatなどのVRゲームをする時間が増えてきた。 ここ数年、ライフログとして自動的に記録できるアクティビティはGoogleカレンダーに記録するようにしている。

……というわけでSteamで何時から何時まで何のゲームを遊んでいたのかが自動的に記録されるようにしてみた。 APIを叩いてGoogleカレンダーに転記するだけのプログラムはGASで書くのが楽。

しくみ

 SteamではWeb APIが公開されている。

この中にGetPlayerSummariesというエンドポイントがある。

これはユーザーの情報を取得するエンドポイントだが、ゲームを遊んでいる間だけ

  • gameid
  • gameextrainfo

というフィールドが生えてくる。 このAPIを定期的に叩き、gameidとgameextrainfoが生えている間はゲームのプレイ中としてカレンダーのイベントを作成・延長していく。

※ちなみに何時から何時までゲームをした、という情報を取れるエンドポイントは見当たらなかった

実装

Steam API Keyの発行

 探せばいっぱい記事があるので省略。

GAS (Google Apps Script) を書く

 適当なGoogleスプレッドシートを作成し、スクリプトエディタを開いてGASを書く。 Googleスプレッドシートは、直近で記録したGoogleカレンダーのイベントIDとゲーム情報を一時保存するために利用する。

実行トリガーの設定

run関数を定期実行。

実行結果

 色は薄いですがこんな感じ。

実行イメージ