メディア アイテムの一覧表示と取得

ユーザーがアンビエント デバイスを設定し、Google フォトでメディアソースを選択すると、アプリはそれらのメディア アイテムを一覧表示して取得し、表示できるようになります。

始める前に

  • デバイスのセットアップを確認する: ユーザーのデバイスを作成して構成していることを確認します。
  • Ambient API フローを理解する: Ambient API フローを確認して、プロセス全体、特に mediaSourcesSet のポーリングを含むステップを理解します。

mediaSourcesSet のアンケート

デバイスのメディア アイテムを一覧表示するには、ユーザーが Google フォトアプリ内で、アプリと共有する写真を選択している必要があります。アプリは、この選択が行われたタイミングを判断するために、デバイスをポーリングする必要があります。

特定の deviceIddevices.get メソッドを定期的に呼び出します。AmbientDevice レスポンスの mediaSourcesSet フィールドをモニタリングします。最初は false になります。ユーザーがメディアソースを正常に選択すると、このフィールドは true に変わります。

AmbientDevice レスポンスには、ポーリング頻度のガイドラインとして使用する pollInterval を含む pollingConfig が含まれています。

メディア アイテムの一覧表示

デバイスの mediaSourcesSettrue になったら、ユーザーが選択したメディア アイテムの取得を開始できます。

  1. mediaItems.list エンドポイントを使用する: https://photosambient.googleapis.com/v1/mediaItems に GET リクエストを送信し、パスに deviceId を指定します。

  2. ページネーションを処理する(必要な場合): レスポンスがページネーションされている場合があります。pageSize パラメータを使用して、返すアイテムの最大数を指定し、前のレスポンスの pageToken を使用して、結果の次のページを取得します。

  3. メディア アイテムを処理する: レスポンスには、選択された各メディア アイテムを表す AmbientMediaItem オブジェクトの配列が含まれます。これらのオブジェクトには、次のような重要な詳細情報が含まれます。

    • id: メディア アイテムの固有識別子。
    • creationTime: メディア アイテムが作成されたときのタイムスタンプ。
    • mediaFile: 実際のコンテンツにアクセスするための詳細を含むオブジェクト。

mediaFile フィールドには baseUrl が含まれています。この baseUrl は、さまざまな解像度や形式でメディア アイテムのコンテンツにアクセスするための URL を作成するために使用します。

ベース URL

Google フォト API のベース URL を使用すると、メディア アイテムの未加工のバイト列にアクセスできるため、アプリでダウンロードしたり表示したりできます。これらの URL は、アルバムをリストする(Library API)またはメディア アイテムにアクセスする(Library API と Picker API の両方)際のレスポンスに含まれます。ベース URL を正しく機能させるには、追加のパラメータが必要です。

Picker API の場合:

すべての PickedMediaItem.mediaFile オブジェクトには baseUrl が含まれます。

ベース URL は 60 分間有効ですが、ユーザーが Google アカウントの設定でアプリの権限を取り消すと、それより早く期限切れになることがあります。

Library API の場合:

ベース URL は 60 分間アクティブなままです。

ベース URL には次のものがあります。

  • baseUrl: 写真、動画のサムネイルに直接アクセスしたり、動画のバイト列をダウンロードしたりできます。
  • coverPhotoBaseUrl: アルバムのカバー写真に直接アクセスできます。
  • profilePictureBaseUrl: mediaItem のオーナーのプロフィール写真に直接アクセスできます。

画像のベース URL

以下に示すのは、画像のベース URL で使用できるオプションのリストです。

パラメータ
wh

説明

w パラメータは幅を表し、h パラメータは高さを表します。

画像のメディア アイテム(写真、動画のサムネイルなど)にアクセスするには、アプリケーションで表示する予定のサイズを指定する必要があります(これにより、アスペクト比を維持しながら画像をこのサイズに拡大または縮小できます)。これを行うには、例に示すように、必要なサイズをベース URL に連結します。

例:

base-url=wmax-width-hmax-height

以下の例は、幅が最大 2,048 ピクセル、高さが最大 1,024 ピクセルのメディア アイテムを示しています。

https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024
c

説明

c パラメータは切り抜きを表します。

指定した幅と高さで正確なサイズに画像を切り抜くには、オプションの -c パラメータと必須の w および h パラメータをベース URL に連結します。

サイズ(ピクセル単位)は 1 ~ 16, 383 の範囲内である必要があります。画像の幅または高さがリクエストしたサイズを超える場合、画像は縮小され、切り取られます(縦横比は維持されます)。

例:

base-url=wmax-width-hmax-height-c

この例では、アプリケーションは正確に幅 256 ピクセル、高さ 256 ピクセルのメディア アイテム(サムネイルなど)を表示します。

https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c
d

説明

d パラメータはダウンロードを表します。

位置情報のメタデータを除くすべての Exif メタデータを保持する画像をダウンロードする場合は、ベース URL に d パラメータを連結します。

例:

base-url=d

この例では、アプリケーションは位置情報のメタデータを除くすべてのメタデータを含む画像をダウンロードします。

https://lh3.googleusercontent.com/p/Az....XabC=d

動画のベース URL

以下に示すのは、動画のベース URL で使用できるオプションのリストです。

パラメータ
dv

説明

動画 mediaItem のバイトにアクセスするには、baseUrl に動画のダウンロードを表す dv パラメータを連結します。

dv パラメータは、元の動画の高品質なトランスコード バージョンをリクエストします。このパラメータは、w パラメータおよび h パラメータと互換性がありません。

動画ダウンロードのベース URL がバイトを返すまでに数秒かかることがあります。

このパラメータを使用する前に、メディア アイテムの mediaMetadata.status フィールドが READY であることを確認してください。それ以外の場合、メディア アイテムの処理が完了していないと、エラーが発生することがあります。

例:

base-url=dv

次の例は、動画のバイトをダウンロードする方法を示しています。

https://lh3.googleusercontent.com/p/AF....BsdZ=dv
whcd

説明

動画のサムネイルにアクセスするには、画像のベース URL のパラメータのいずれかを使用します。

デフォルトでは、すべての動画のサムネイルに再生ボタンのオーバーレイが含まれます。このオーバーレイを削除するには、-no パラメータをご覧ください。

例:

例については、イメージ ベース URL の表をご覧ください。

no

説明

サムネイル オーバーレイを削除する no パラメータ。

再生ボタンのオーバーレイなしで動画のサムネイルを取得する場合は、ベース URL に no パラメータを連結します。

no パラメータは、画像のベース URL のパラメータの少なくとも 1 つとともに使用する必要があります。

例:

base-url=wmax-width-hmax-height-no

次の例では、幅 1,280 ピクセル、高さ 720 ピクセルの動画サムネイルを表示し、再生ボタンのオーバーレイは含めません。

https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no

モーション フォトのベース URL

モーション フォトには写真要素と動画要素の両方が含まれています。モーション フォトの baseUrl リクエストには、画像のベース URL または動画のベース URL のいずれかのパラメータを使用できます。

パラメータ
dv

説明

モーション フォト メディア アイテムの動画要素を取得するには、動画のベース URL からダウンロードする場合と同様に dv パラメータを使用します。

whcd

説明

モーション フォト メディア アイテムの写真要素を取得するには、画像のベース URL の形式を使用します。

コンテンツ ポリシーとフィルタリング

Google フォトでは、テレビやデジタル ディスプレイなどの共有デバイスに表示される画像や動画に対して、デフォルトで標準のコンテンツ フィルタリングが適用されます。このフィルタは、次のようなコンテンツを除外して視聴体験を最適化するように設計されています。

  • 機能的な画像(スクリーンショット、ドキュメント、領収書など)。
  • 大画面で適切にレンダリングされない可能性がある画像(解像度が非常に低い、ぼやけている、粒子が粗すぎるなど)。
  • 非常に個人的または機密性の高いコンテンツとして識別されたコンテンツ。共有設定で一般に表示することを意図していない可能性があります。

コンテンツのフィルタリングはすべて自動で行われます。表示されるコンテンツをユーザーがより細かく制御できるように、アンビエント ディスプレイで使用するメディアソースを手動で選択して更新できるようにします。

次のステップ