14
4

More than 3 years have passed since last update.

Google Nest Hub に草を表示

Last updated at Posted at 2019-12-26

Pixel 4 を買ったら Google Nest Hub が届きました。デジタルフォトフレームとしてもいい感じに使えそうです。せっかくなので、GitHub の草画像を表示させてみることにします。

nesthub.jpg

Google Nest Hub の設定

購入直後の Nest Hub は、Google が用意したアートギャラリーを表示するようになっています。これを、好きな画像を表示できる設定に変更します。

  1. iOS または Android 端末で Google Home アプリを起動
    • Nest Hub を買ったら、インストールしているはず
  2. Nest Hub > フォトフレーム に移動
    • 表示する画像の設定を Google フォトに変更
  3. 「個人的な写真の整理」の設定を「リアルタイム共有アルバムのみ」に変更
    • この設定をしないと、GitHub の草画像などはフォトフレームに不向きと判定され、表示されないことがある

フォトフレームに表示する Google Photos アルバムは適当に選んでください。草画像を保存するアルバムは、後で紹介するスクリプトが自動で作成します。

Google Photo API のアクセストークン取得

これから、草画像を生成して Google Photo API にアップロードする python スクリプトを動かします。そのためには、デフォルトでは無効化されている Google Photos API を有効化し、OAuth 2.0 のトークンを取得する必要があります。

今回は、こちらの Qiita 記事を参考にしてトークンを取得しました。

Client ID, Client Secret および Refresh Token を後で使います。これらは公開してはいけないものなので、くれぐれも管理に気を付けてください。

草画像の作成とアップロードを行うスクリプト

以下のリポジトリに、GitHub の草画像を生成して Google Photos にアップロードする python スクリプトを用意しました。

草画像の生成にあたっては、https://grass-graph.moshimo.works/ を参考にさせていただきました。

スクリプトを実行すると、草画像保存用の Google Photos アルバムが自動作成されます。デフォルト名は "GitHub grass" です。このアルバムを表示するように、Google Nest Hub の設定を行ってください。

自動化

リポジトリには GitHub Actions の設定が含まれています。以下のシークレットを設定しておくと、草画像の生成・アップロードを自動で毎日行ってくれます。

  • GITHUB_CLIENT_ID
  • GOOGLE_API_CLIENT_ID
  • GOOGLE_API_CLIENT_SECRET
  • GOOGLE_API_REFRESH_TOKEN

Nest Hub に草画像を表示してみたい方へ

私の作ったスクリプト群は Apache 2.0 ライセンスで配布しています。GitHub リポジトリをフォークしていただくことで、自動化機能も含めてご利用いただけます。

ただし、以下の点に注意してください。

  • OAuth 2.0トークンの流出を避けるため GitHub のプライベートリポジトリを使ってください
    • GitHub のシークレットを使ってはいますが、これだけでは安全とは言い難いです
    • トークンが流出した場合、草画像と関係ないデータも第三者が閲覧・操作できるようになります
  • 拙作のスクリプトは草画像の削除は行わないので、Google ドライブの残り容量には注意してください
    • Google Photos にアップロードした画像を削除する API は、現在 (2019/12/26) のところ提供されていないようです
  • 本スクリプトを利用したことによる、利用者に生じた直接的・間接的な損害について、私 @fjt7tdmi は一切の責任を負いません

おわりに

今回多くの助言をいただいた @u_akihir0 に感謝します。
それでは皆様良い Nest Hub ライフを!

14
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4