Uygulama tarafından oluşturulan medya öğelerine erişme

Fotoğraf kitaplığının veya albümün içeriğini listelemek için çağrı yaptıktan sonra uygulamanız, döndürülen medya öğelerini depolamak yerine medya öğelerinin kimliklerini depolamalıdır. Bunun nedeni, medya öğelerinin içeriğinin değişebilmesi ve yanıta dahil edilen URL'lerin belirli bir süre sonra geçerliliğini yitirmesidir. Medya öğesi kimliği, kullanıcının kitaplığındaki bir fotoğraf veya video gibi medya öğelerini benzersiz bir şekilde tanımlar.

Gerekli yetkilendirme kapsamları

Uygulama tarafından oluşturulan medya öğelerine erişmek için photoslibrary.readonly.appcreateddata kapsamı gerekir. Kapsamlar hakkında daha fazla bilgi için Yetkilendirme kapsamları başlıklı makaleyi inceleyin.

Medya öğeleri

mediaItem, Google Fotoğraflar kitaplığına yüklenen fotoğraf veya video gibi medyanın bir temsilidir. Üst düzey bir nesnedir ve özellikleri, temel medya türüne göre farklılık gösterebilir.

Aşağıdaki tabloda mediaItem özellikleri listelenmektedir:

Özellikler
id Nesneyi tanımlamak için kullanılan kalıcı ve sabit bir kimlik.
description Google Fotoğraflar'da görünen medya öğesinin açıklaması.
baseUrl Ham baytlara erişmek için kullanılır. Daha fazla bilgi için Temel URL'ler başlıklı makaleyi inceleyin.
productUrl

Google Fotoğraflar'daki resmin bağlantısı. Bu bağlantı geliştirici tarafından değil, yalnızca kullanıcı tarafından açılabilir. URL'ler, kitaplıktaki bir medya öğesine yönlendirir. URL, albüm aramasından alındıysa albümdeki öğeyi gösterir.

mimeType Medya türünü kolayca tanımlamaya yardımcı olan medya öğesinin türü (örneğin: image/jpg).
filename Google Fotoğraflar uygulamasında kullanıcıya gösterilen medya öğesinin dosya adı (öğenin bilgi bölümünde).
mediaMetadata Medyanın temel türüne (ör. photo veya video) bağlı olarak değişir. Yükün azaltılması için alan maskeleri kullanılabilir.

Medya öğesi al

Bir medya öğesi almak için mediaItemId kullanarak mediaItems.get yöntemini çağırın. İstek tek bir medya öğesi döndürür.

mediaItem, kimlik, açıklama ve URL gibi özellikleri içerir. photo veya video içindeki ek bilgiler, dosyadaki meta verileri temel alır. Tüm mülkler mevcut olmayabilir.

Medya öğesi video ise önce video dosyası işlenmelidir. mediaItem, mediaMetadata içinde video dosyasının işleme durumunu açıklayan bir status alanı içerir. Yeni yüklenen bir dosya, videoProcessingStatus değerini ilk olarak PROCESSING ile döndürür, ardından READY ile kullanılabilir. Video medya öğesinin baseUrl video işlenene kadar kullanılamaz.

REST

Aşağıda bir GET isteği verilmiştir:

GET https://photoslibrary.googleapis.com/v1/mediaItems/media-item-id
Content-type: application/json
Authorization: Bearer oauth2-token

Fotoğraf medya öğesi için yanıt şu şekilde görünür. Fotoğraf özelliği, fotoğraf öğeleri için meta verileri içerir.

{
  "id": "media-item-id",
  "description": "item-description",
  "productUrl": "url-to-open-in-google-photos",
  "baseUrl": "base-url_do-not-use-directly",
  "mimeType": "mime-type-of-media",
  "filename": "item-filename",
  "mediaMetadata": {
    "width": "media-item-width",
    "height": "media-item-height",
    "creationTime": "media-item-creation-time",
    "photo": {
       "cameraMake": "make-of-the-camera",
       "cameraModel": "model-of-the-camera",
       "focalLength": "focal-length-of-the-camera-lens",
       "apertureFNumber": "aperture-f-number-of-the-camera-lens",
       "isoEquivalent": "iso-of-the-camera",
       "exposureTime": "exposure-time-of-the-camera-aperture"
    }
  },
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_do-not-use-directly",
    "displayName": "name-of-user"
  }
}

Video medya öğesi için yanıt şu şekilde görünür. video mülkü, video öğelerinin meta verilerini içerir.

{
  "id": "media-item-id",
  "description": "item-description",
  "productUrl": "url-to-open-in-google-photos",
  "baseUrl": "base-url_do-not-use-directly",
  "mimeType": "mime-type-of-media",
  "filename": "item-filename",
  "mediaMetadata": {
    "width": "media-item-width",
    "height": "media-item-height",
    "creationTime": "media-item-creation-time",
    "video": {
     "cameraMake": "make-of-the-camera",
     "cameraModel": "model-of-the-camera",
     "fps": "frame-rate-of-the-video",
     "status": "READY"
    },
  },
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_do-not-use-directly",
    "displayName": "name-of-user"
  }
}

Birden fazla medya öğesi alma

Tanımlayıcılarına göre birden fazla medya öğesini almak için mediaItemId kullanarak mediaItems.batchGet çağrısı yapın.

İstek, istekte sağlanan medya öğesi tanımlayıcılarının sırasına göre MediaItemResults listesini döndürür. Her sonuç, bir MediaItem veya hata varsa Status içerir.

Tek bir çağrıda isteyebileceğiniz maksimum medya öğesi sayısı 50'dir. Medya öğeleri listesi yinelenen tanımlayıcı içermemelidir ve boş olamaz.

REST

Aşağıda, medya öğelerine başarılı ve başarısız erişimi gösteren bir GET isteği verilmiştir. Her medya öğesi tanımlayıcısını, istek kapsamında yeni bir mediaItemIds sorgu parametresi olarak belirtin:

GET https://photoslibrary.googleapis.com/v1/mediaItems:batchGet?mediaItemIds=media-item-id&mediaItemIds=another-media-item-id&mediaItemIds=incorrect-media-item-id
Content-type: application/json
Authorization: Bearer oauth2-token

GET isteği aşağıdaki yanıtı döndürür:

{
  "mediaItemResults": [
    {
      "mediaItem": {
        "id": "media-item-id",
        ...
      }
    },
    {
      "mediaItem": {
        "id": "another-media-item-id",
        ...
      }
    },
    {
      "status": {
        "code": 3,
        "message": "Invalid media item ID."
      }
    }
  ]
}

Temel URL'ler

Google Fotoğraflar API'lerindeki temel URL'ler, medya öğelerinin ham baytına erişim sağlayarak uygulamanızın bunları indirmesini veya görüntülemesini sağlar. Bu URL'ler, albümler listelenirken (Kitaplık API'si) veya medya öğelerine erişilirken (hem Kitaplık hem de Seçici API'leri) yanıtlara dahil edilir. Ana URL'lerin düzgün çalışması için ek parametrelere ihtiyaç duyduğunu unutmayın.

Picker API için:

Tüm PickedMediaItem.mediaFile nesneleri bir baseUrl içerir.

Temel URL'ler 60 dakika boyunca etkin kalır ancak kullanıcı Google Hesabı ayarlarından uygulamanızın izinlerini iptal ederse daha erken sona erebilir.

Library API için:

Ana URL'ler 60 dakika boyunca etkin kalır.

Çeşitli temel URL'ler şunlardır:

  • baseUrl: Fotoğrafa, videonun küçük resmine doğrudan erişin veya video baytlarını indirin.
  • coverPhotoBaseUrl: Albümün kapak fotoğrafına doğrudan erişin.
  • profilePictureBaseUrl: mediaItem sahibinin profil fotoğrafına doğrudan erişme

Resim temel URL'leri

Resim ana URL'leriyle kullanabileceğiniz seçeneklerin listesi aşağıda verilmiştir:

Parametre
w, h

Açıklama

Genişlik, w ve yükseklik, h parametreleri.

Fotoğraf veya video küçük resmi gibi bir resim medya öğesine erişmek için uygulamanızda görüntülemeyi planladığınız boyutları belirtmeniz gerekir (böylece resim, en boy oranı korunarak bu boyutlara ölçeklendirilebilir). Bunun için temel URL'yi, örneklerde gösterildiği gibi gerekli boyutlarınızla birleştirin.

Örnekler:

base-url=wmax-width-hmax-height

2048 pikselden geniş ve 1024 pikselden yüksek olmayan bir medya öğesi göstermek için aşağıdaki örneği inceleyin:

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

Açıklama

Kırpma, c parametresi.

Resmi, belirttiğiniz tam genişlik ve yükseklik boyutlarına göre kırpmak istiyorsanız temel URL'yi zorunlu w ve h parametreleriyle birlikte isteğe bağlı -c parametresiyle birleştirin.

Boyut (piksel cinsinden) [1, 16383] aralığında olmalıdır. Resmin genişliği veya yüksekliği istenen boyutu aşarsa resim küçültülür ve en boy oranı korunarak kırpılır.

Örnekler:

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

Bu örnekte uygulama, tam olarak 256 piksel genişliğinde ve 256 piksel yüksekliğinde bir medya öğesi (ör. küçük resim) gösterir:

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

Açıklama

İndirme, d parametresi.

Resmi, konum meta verileri dışındaki tüm Exif meta verilerini koruyarak indirmek istiyorsanız temel URL'yi d parametresiyle birleştirin.

Örnekler:

base-url=d

Bu örnekte uygulama, konum meta verileri dışındaki tüm meta verileri içeren bir resim indirir:

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

Video temel URL'leri

Video ana URL'leriyle kullanabileceğiniz seçeneklerin listesi aşağıda verilmiştir:

Parametre
dv

Açıklama

mediaItem videonun baytlarına erişmek için baseUrl parametresini video indirme parametresi dv ile birleştirin.

dv parametresi, orijinal videonun yüksek kaliteli, kod dönüştürülmüş bir sürümünü ister. Parametre, w ve h parametreleriyle uyumlu değildir.

Video indirmelerinin temel URL'lerinin bayt döndürmesi birkaç saniye sürebilir.

Bu parametreyi kullanmadan önce medya öğelerinin mediaMetadata.status alanının READY olduğundan emin olun. Aksi takdirde, medya öğenizin işlenmesi tamamlanmadıysa hata alabilirsiniz.

Örnekler:

base-url=dv

Aşağıdaki örnekte, bir videonun baytlarının nasıl indirileceği gösterilmektedir:

https://lh3.googleusercontent.com/p/AF....BsdZ=dv
w, h, c ve d

Açıklama

Videonun küçük resmine erişmek için resim temel URL parametrelerinden herhangi birini kullanın.

Varsayılan olarak tüm video küçük resimlerinde bir oynatma düğmesi yer paylaşımı bulunur. Bu yer paylaşımını kaldırmak için -no parametresine bakın.

Örnekler:

Örnekler için resim temel URL'leri tablosuna bakın.

no

Açıklama

Küçük resim yer paylaşımını kaldır no parametresi.

Bir videonun küçük resmini oynatma düğmesi yer paylaşımı olmadan almak istiyorsanız temel URL'yi no parametresiyle birleştirin.

no parametresi, resim temel URL parametrelerinden en az biri ile kullanılmalıdır.

Örnekler:

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

Aşağıdaki örnekte, tam olarak 1.280 piksel genişliğinde ve 720 piksel yüksekliğinde olan ve oynatma düğmesi yer almayan bir video küçük resmi gösterilmektedir:

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

Hareketli fotoğraf temel URL'leri

Hareketli fotoğraflar hem fotoğraf hem de video öğeleri içerir. Hareketli fotoğraf baseUrl istekleri için resim temel URL'leri veya video temel URL'lerindeki parametreleri kullanabilirsiniz.

Parametre
dv

Açıklama

Bir hareketli fotoğraf medya öğesinin video öğesini almak için dv parametresini, video temel URL'lerinden indirirken olduğu gibi kullanın.

w, h, c ve d

Açıklama

Hareketli fotoğraf medya öğesinin fotoğraf öğesini almak için resim temel URL'leri biçimini kullanın.