Mencantumkan dan mengambil item media

Setelah pengguna mengonfigurasi perangkat standby dan memilih sumber media di Google Foto, aplikasi Anda dapat mencantumkan dan mengambil item media tersebut untuk ditampilkan.

Sebelum memulai

  • Periksa penyiapan perangkat: Pastikan Anda telah berhasil membuat dan mengonfigurasi perangkat untuk pengguna.
  • Memahami alur Ambient API: Tinjau Alur Ambient API untuk memahami proses secara keseluruhan, terutama langkah yang melibatkan polling untuk mediaSourcesSet.

Polling untuk mediaSourcesSet

Sebelum Anda dapat mencantumkan item media untuk perangkat, pengguna harus memilih foto yang ingin dibagikan ke aplikasi Anda dalam aplikasi Google Foto. Aplikasi Anda harus melakukan polling pada perangkat untuk menentukan kapan pemilihan ini telah dibuat.

Panggil metode devices.get secara berkala untuk deviceId tertentu. Pantau kolom mediaSourcesSet dalam respons AmbientDevice. Awalnya, nilainya adalah false. Setelah pengguna berhasil memilih sumber media, kolom ini akan berubah menjadi true.

Respons AmbientDevice menyertakan pollingConfig dengan pollInterval yang harus Anda gunakan sebagai panduan untuk frekuensi polling.

Mencantumkan Item Media

Setelah mediaSourcesSet menjadi true untuk perangkat, Anda dapat mulai mengambil item media yang dipilih oleh pengguna.

  1. Gunakan endpoint mediaItems.list: Buat permintaan GET ke https://photosambient.googleapis.com/v1/mediaItems, yang memberikan deviceId di jalur.

  2. Menangani penomoran halaman (jika perlu): Respons mungkin diberi nomor halaman. Gunakan parameter pageSize untuk menentukan jumlah maksimum item yang akan ditampilkan, dan pageToken dari respons sebelumnya untuk mengambil halaman hasil berikutnya.

  3. Memproses item media: Respons akan berisi array objek AmbientMediaItem, yang masing-masing mewakili item media yang dipilih. Objek ini mencakup detail penting seperti:

    • id: ID unik untuk item media.
    • creationTime: Stempel waktu saat item media dibuat.
    • mediaFile: Objek yang berisi detail untuk mengakses konten sebenarnya.

Kolom mediaFile menyertakan baseUrl. baseUrl ini adalah yang akan Anda gunakan untuk membuat URL guna mengakses konten item media dalam berbagai resolusi atau format.

URL Dasar

URL dasar di Google Photos API memberikan akses ke byte mentah item media, sehingga aplikasi Anda dapat mendownload atau menampilkannya. URL ini disertakan dalam respons saat mencantumkan album (Library API) atau mengakses item media (Library API dan Picker API). Ingat, URL dasar memerlukan parameter tambahan agar berfungsi dengan benar.

Untuk Picker API:

Semua objek PickedMediaItem.mediaFile menyertakan baseUrl.

URL dasar tetap aktif selama 60 menit, tetapi dapat berakhir lebih cepat jika pengguna membatalkan izin aplikasi Anda melalui setelan Akun Google mereka.

Untuk Library API:

URL dasar tetap aktif selama 60 menit.

Berbagai URL dasarnya adalah:

  • baseUrl: Mengakses foto, thumbnail untuk video, atau mendownload byte video secara langsung.
  • coverPhotoBaseUrl: Mengakses langsung foto sampul untuk album.
  • profilePictureBaseUrl: Mengakses langsung foto profil pemilik mediaItem.

URL dasar gambar

Berikut adalah daftar opsi yang dapat Anda gunakan dengan URL dasar gambar:

Parameter
w, h

Deskripsi

Parameter lebar, w, dan tinggi, h.

Untuk mengakses item media gambar, seperti foto atau thumbnail untuk video, Anda harus menentukan dimensi yang ingin ditampilkan di aplikasi (sehingga gambar dapat diskalakan ke dimensi ini sekaligus mempertahankan rasio aspek). Untuk melakukannya, gabungkan URL dasar dengan dimensi yang diperlukan seperti yang ditunjukkan dalam contoh.

Contoh:

base-url=wmax-width-hmax-height

Berikut adalah contoh untuk menampilkan item media yang tidak lebih lebar dari 2048 piksel dan tidak lebih tinggi dari 1024 piksel:

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

Deskripsi

Pemangkasan, parameter c.

Jika Anda ingin memangkas gambar ke dimensi lebar dan tinggi yang tepat yang telah Anda tentukan, gabungkan URL dasar dengan parameter -c opsional beserta parameter w dan h wajib.

Ukuran (dalam piksel) harus berada dalam rentang [1, 16383]. Jika lebar atau tinggi gambar melebihi ukuran yang diminta, gambar akan diskalakan ke bawah dan dipangkas (menjaga rasio aspek).

Contoh:

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

Dalam contoh ini, aplikasi menampilkan item media yang lebarnya tepat 256 px dan tingginya 256 px, seperti thumbnail:

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

Deskripsi

Parameter download, d.

Jika Anda ingin mendownload gambar yang mempertahankan semua metadata Exif kecuali metadata lokasi, gabungkan URL dasar dengan parameter d.

Contoh:

base-url=d

Dalam contoh ini, aplikasi mendownload gambar dengan semua metadata kecuali metadata lokasi:

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

URL dasar video

Berikut adalah daftar opsi yang dapat Anda gunakan dengan URL dasar video:

Parameter
dv

Deskripsi

Untuk mengakses byte video mediaItem, gabungkan baseUrl dengan parameter video download, dv.

Parameter dv meminta versi video asli yang ditranskode dan berkualitas tinggi. Parameter ini tidak kompatibel dengan parameter w dan h.

URL dasar untuk download video dapat memerlukan waktu hingga beberapa detik untuk menampilkan byte.

Sebelum menggunakan parameter ini, pastikan kolom mediaMetadata.status item media adalah READY. Jika tidak, jika item media Anda belum selesai diproses, Anda mungkin menerima error.

Contoh:

base-url=dv

Contoh berikut menunjukkan cara mendownload byte video:

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

Deskripsi

Untuk mengakses thumbnail video, gunakan salah satu parameter URL dasar gambar.

Secara default, semua thumbnail video menyertakan overlay tombol pemutaran. Lihat parameter -no untuk menghapus overlay ini.

Contoh:

Lihat tabel URL dasar gambar untuk mengetahui contohnya.

no

Deskripsi

Hapus overlay thumbnail, parameter no.

Jika Anda ingin mengambil thumbnail video tanpa overlay tombol pemutaran, gabungkan URL dasar dengan parameter no.

Parameter no harus digunakan dengan setidaknya salah satu parameter URL dasar gambar.

Contoh:

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

Contoh berikut menampilkan thumbnail video yang lebarnya persis 1280 piksel dan tingginya 720 piksel dan tidak menyertakan overlay tombol pemutaran:

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

URL dasar foto motion

Foto motion berisi elemen foto dan video. Anda dapat menggunakan parameter dari URL dasar gambar atau URL dasar video untuk permintaan baseUrl foto gerakan.

Parameter
dv

Deskripsi

Untuk mengambil elemen video dari item media foto gerakan, gunakan parameter dv seperti yang Anda lakukan untuk mendownload dari URL dasar video.

w, h, c, dan d

Deskripsi

Untuk mengambil elemen foto dari item media foto gerakan, gunakan format untuk URL dasar gambar.

Langkah Berikutnya

  • Contoh Aplikasi: Contoh aplikasi kami menyertakan contoh listingan dan pengambilan item media. Lihat fungsi checkMediaSourcesSet dan fetch_media_item_list untuk mengetahui informasi selengkapnya.
  • Dokumentasi Referensi: Tinjau dokumen referensi tentang item media yang komprehensif untuk mengetahui informasi mendetail tentang semua metode, parameter permintaan dan respons, serta kode error yang tersedia.