LoginSignup
0
1

[Google Photos Library API] JavaでGoogleフォトのメディアアイテム(写真や動画)を取得する

Last updated at Posted at 2024-04-17

Google Photos Library APIを使用して、
Googleフォトのメディアアイテム(写真や動画)を取得する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う
を参照ください。

No 目次
1 メディアアイテム一覧を取得
1 スコープ
2 実行
3 レスポンスの内容
2 メディアアイテムを取得
1 スコープ
2 実行
3 レスポンスの内容
3 複数のメディアアイテムを取得
1 スコープ
2 実行
3 レスポンスの内容

1. メディアアイテム一覧を取得

メディアアイテム(写真や動画)の一覧を取得します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

https://www.googleapis.com/auth/photoslibrary
https://www.googleapis.com/auth/photoslibrary.readonly
https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata

⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う(2.2. PhotosLibraryClientインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    try(PhotosLibraryClient client = getPhotosLibraryClient()){
        ListMediaItemsRequest.Builder builder = ListMediaItemsRequest.newBuilder();
        builder.setPageSize(10);
        ListMediaItemsPagedResponse response = client.listMediaItems(builder.build());
        
        for (MediaItem item : response.iterateAll()) {
            System.out.println(item);
        }
    }
}

1.2.1. HTTPリクエスト

GET: https://photoslibrary.googleapis.com/v1/mediaItems
が実行されます。

1.2.2. クエリパラメータ

ListMediaItemsRequest.Builderのsetメソッドにより、
クエリパラメータを追加できます。

build()メソッドでListMediaItemsRequestインスタンスを取得し、
listMediaItems()に渡します。

メソッド 引数 説明
setPageSize Integer レスポンスで返すメディアイアテムの最大数
デフォルトは25、最大は100
setPageToken String 結果の次のページを取得するための連続トークン

1.3. レスポンスの内容

ListMediaItemsPagedResponse

メソッド 戻り値 説明
iterateAll Iterable<MediaItem> メディアアイテムリスト
getNextPageToken String メディアアイテムの次のセットを取得するためのトークン

MediaItem

メソッド 戻り値 説明
getId String メディアアイテムID
getDescription String メディアアイテムの説明
getProductUrl String メディアアイテムの GoogleフォトURL
getBaseUrl String メディアアイテムのバイトへのURL
getMimeType String メディアアイテムのMIMEタイプ
getMediaMetadata MediaMetadata メディアアイテムに関連するメタデータ
getContributorInfo ContributorInfo メディアアイテムを追加したユーザーの情報
getFilename String メディアアイテムのファイル名

MediaMetadata

メソッド 戻り値 説明
getCreationTime Timestamp メディアアイテムが最初に作成された時刻
getWidth Long メディアアイテムの元の幅(ピクセル単位)
getHeight Long メディアアイテムの元の高さ(ピクセル単位)
getPhoto Photo 写真のメディアタイプのメタデータ
getVideo Video 動画のメディアタイプのメタデータ

Photo

メソッド 戻り値 説明
getCameraMake String 写真を撮影したカメラのブランド
getCameraModel String 写真を撮影したカメラのモデル
getFocalLength Float 写真を撮影したカメラのレンズの焦点距離
getApertureFNumber Float 写真を撮影したカメラレンズの絞りのf値
getIsoEquivalent Integer 写真を撮影したカメラのISO
getExposureTime Duration 写真が撮影されたときのカメラの絞りの露出時間

Video

メソッド 戻り値 説明
getCameraMake String 動画を撮影したカメラのブランド
getCameraModel String 動画を撮影したカメラのモデル
getFps Double 動画のフレームレート
getStatus VideoProcessingStatus(enum) 動画の処理ステータス

ContributorInfo

メソッド 戻り値 説明
getProfilePictureBaseUrl String 投稿者のプロフィール写真のURL
getDisplayName String 表示名

VideoProcessingStatus

定義値 内容
UNSPECIFIED 動画の処理ステータスが不明
PROCESSING 動画の処理中
READY 動画の処理が完了し、表示できるようになった
FAILED エラーが発生したため、動画を処理できなかった

2. メディアアイテムを取得

指定したメディアアイテム(写真や動画)の情報を取得します。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

https://www.googleapis.com/auth/photoslibrary
https://www.googleapis.com/auth/photoslibrary.readonly
https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata

⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う(2.2. PhotosLibraryClientインスタンスを取得)
でスコープを指定してください。

2.2. 実行

public static void main(String[] args) throws Exception{
    try(PhotosLibraryClient client = getPhotosLibraryClient()){
        MediaItem response = client.getMediaItem("メディアアイテムID");
        System.out.println(response);
    }
}

2.2.1. HTTPリクエスト

GET: https://photoslibrary.googleapis.com/v1/mediaItems/{メディアアイテムID}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.3. レスポンスの内容

MediaItem

1.3. レスポンスの内容(MediaItem)と同じです。

3. 複数のメディアアイテムを取得

指定した複数のメディアアイテム(写真や動画)の情報を取得します。

2. メディアアイテムを取得が一つのメディアアイテムに対し、
こちらは複数のメディアアイテムを取得できます。
取得できるメディアアイテムの順番は取得時に指定した順番になります。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

https://www.googleapis.com/auth/photoslibrary
https://www.googleapis.com/auth/photoslibrary.readonly
https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata

⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う(2.2. PhotosLibraryClientインスタンスを取得)
でスコープを指定してください。

2.2. 実行

public static void main(String[] args) throws Exception{
    try(PhotosLibraryClient client = getPhotosLibraryClient()){
        BatchGetMediaItemsResponse response = client.batchGetMediaItems(Arrays.asList("メディアアイテムID"));
        for(MediaItemResult mediaItem : response.getMediaItemResultsList()) {
            System.out.println(mediaItem.getMediaItem());
        }
    }
}

2.2.1. HTTPリクエスト

GET: https://photoslibrary.googleapis.com/v1/mediaItems:batchGet
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.3. レスポンスの内容

BatchGetMediaItemsResponse

メソッド 戻り値 説明
getMediaItemResultsList List<MediaItemResult 取得したメディアアイテムのリスト

MediaItemResult

メソッド 戻り値 説明
getStatus Status エラー発生時のエラー情報
getMediaItem MediaItem メディアアイテム情報

Status

メソッド 戻り値 説明
getCode Integer ステータス コード
⧉ google.rpc.Codeの列挙値
getMessage String デベロッパー向けのエラー メッセージ
getDetailsList List<com.google.protobuf.Any> エラーの詳細を保持するメッセージのリスト


おしまい。。
0
1
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
0
1