【今月二度目】 Google Picker API がら取得した Google Photos の画像が利用できない、ヤァ!ヤァ!ヤァ!
これは日記に画像を貼り付けできない、悲しみのポエムである。
一度目は3月10日(JST)あたりから発生していて、Picker API で取得した画像が数分後には403になる。3月13日ごろ直ったが、発行されるサムネイルのURLが仕様が変わったのか、めちゃ長くなった。
二度目は3月25日あたりから発生していて、今度は数分後に、GoogleにログインしてないユーザはGoogle認証画面に飛ばされるようになった。3月29日の今現在も発生している。なおGoogleにログインしてると、画像がうまく表示されるのでぱっと見気づかない。
最近 Google Picker API(Webブラウザから使う、クライアントサイドのJavaScript API)を良く触っているのだけど、Google のサービス群のデータを返すだけあって、なかなか大変そうな匂いがする。
たとえば Picker API が返す Photos のデータのJSONレスポンス(Response.DOCUMENTS)の Document.URL は Picasa の URL が入っており、そのURLにアクセスすると404だ。Picasa は買収した会社かつ、2016に閉鎖されたので、昔のシステムが部分部分は使われている気がするし、またGoogle+フォトという"Googleフォトではない"サービスも2015年に廃止・統合されたので、その事実を考えるだけで、レガシーな裏側が想像できる。
また "camerasync" という、Google Photos にアップロードした最新写真一覧が見れる便利ビューも、「携帯電話の写真」という昔の名前まんま(昔はそれが正しかったのだろう)だし、さらに "camerasync" に関する仕様が書かれたドキュメントはいつの間にかなくなっている。そのため、Picker API に書かれた仕様のみだと、「アルバムに追加した写真」「その場でアップロードした写真」の情報しか取得することができない。
基本無料の写真サービス(やユーザのデータをアップロードするサービス)というのは、マネタイズがなかなか難しく、昔あった各サービスはだいぶ淘汰され、Flickr もほぼ有料サービスとなった。Googleフォトも、規約的にはGoogleがデータを好きにできるので、アップロードされた画像データはとりわけ機械学習用のデータとしては約に立つのだろうが、Googleの儲けにつながらなさそうな、トラフィックが多いWebサイトで、ただの jpg に直リンクされる無料静的画像アップローダとして使われると旨味はほぼない。Google Photos の Webインターフェイス上からも jpg の直リンクを生成するような機能はそもそもないしね。
大多数のフォトサービスが提供しているような、本人と特定の人のみが見ることができるフォトアルバム(その場合はトラフィックはほとんど発生しない)へと移行していくのかもしれないが、するとWebサイトでGoogleフォトのjpg画像を直接表示していた1個人からすると残念だ。ただそんなことをしているのは Google Photos 利用者のほんの一部だろうし、そのほんの一部の利用者がトラフィックの大部分を使っているとすると、サービス継続のためには正しい判断とも言えるだろう。
そんなことではなくて、レガシーシステムの統廃合で新しいアーキテクチャになっていく時に生じた一時的なバグでした、みたいな話でした、と杞憂に終わるとよいのだけどね。
と、Google Photos の写真をこの日記に貼れないのでポエム記事を書いたりしたのであった。関係ないけどA Hard Day's Nightというアルバムの邦題を、ビートルズがやって来るヤァ!ヤァ!ヤァ! と付けた人は素晴らしい感性の持ち主だと思う。
2020年4月7日追記
メールで、2021年3月末日を持って、Picker API の Google Drive 以外の部分(Photos とか Maps)とかの終了のお知らせが来た。
[cloud.google.com](https://cloud.google.com/blog/products/application-development/upcoming-changes-to-the-google-drive-api-and-google-picker-api)そしてこのタイミングで、Google Picker API での Photos の画像取得がまたきちんと動くようになった…。
なお、代替で案内されている Google Photos API が返す画像にアクセスできる baseURLは60分で期限が切れるらしいので、内部的にはこれが返されているっぽい。実際に Google Photos API を叩いて取得できた画像の baseURL は仕様通り、60分ちょっとで利用できなくなってしまった。また、Google Photos API は契約結んでいないと回数に利用上限がある。
[developers.google.com](https://developers.google.com/photos/library/guides/access-media-items)つまるところ、2021年4月からは、Google Photos にアップした画像の認証無しで直接アクセスできる、普遍的な静的URLはなくなりそうな感じだなぁ。