Получение списка и получение медиа-элементов

После того как пользователь настроит свое устройство и выберет источники мультимедиа в Google Фото, ваше приложение сможет отобразить список и получить доступ к этим медиафайлам для показа.

Прежде чем начать

Опрос для mediaSourcesSet

Прежде чем вы сможете отобразить медиафайлы на устройстве, пользователь должен выбрать фотографии, которыми он хочет поделиться с вашим приложением в Google Фото. Ваше приложение должно запрашивать информацию у устройства, чтобы определить, когда этот выбор был сделан.

Периодически вызывайте метод devices.get для конкретного deviceId . Отслеживайте поле mediaSourcesSet в ответе AmbientDevice . Изначально оно будет иметь значение false . После того, как пользователь успешно выберет источники мультимедиа, это поле изменится на true .

В ответе AmbientDevice содержится pollingConfig с pollInterval , который следует использовать в качестве ориентира для частоты опроса.

Список медиафайлов

Как только для устройства будет mediaSourcesSet true , можно начинать получать медиафайлы, выбранные пользователем.

  1. Используйте конечную точку mediaItems.list : отправьте GET-запрос на https://photosambient.googleapis.com/v1/mediaItems , указав deviceId в пути.

  2. Обработка постраничной навигации (при необходимости): Ответ может быть разбит на страницы. Используйте параметр pageSize , чтобы указать максимальное количество возвращаемых элементов, и pageToken из предыдущего ответа, чтобы получить последующие страницы результатов.

  3. Обработка медиафайлов: В ответе будет содержаться массив объектов AmbientMediaItem , каждый из которых представляет выбранный медиафайл. Эти объекты содержат важные сведения, такие как:

    • id : Уникальный идентификатор медиафайла.
    • creationTime : Отметка времени создания медиафайла.
    • mediaFile : Объект, содержащий информацию для доступа к фактическому содержимому.

Поле mediaFile содержит baseUrl . Этот baseUrl будет использоваться для построения URL-адресов доступа к содержимому медиафайла в различных разрешениях или форматах.

Базовые URL-адреса

Базовые URL-адреса в API Google Фото предоставляют доступ к исходным байтам медиафайлов, позволяя вашему приложению загружать или отображать их. Эти URL-адреса включаются в ответы при отображении списка альбомов (API библиотеки) или доступе к медиафайлам (API библиотеки и выбора). Помните, что для корректной работы базовых URL-адресов требуются дополнительные параметры.

Для API выбора товаров:

Все объекты PickedMediaItem.mediaFile содержат baseUrl .

Базовые URL-адреса остаются активными в течение 60 минут, но могут истечь раньше, если пользователь отзовет разрешения вашего приложения через настройки своей учетной записи Google.

Для API библиотеки:

Базовые URL-адреса остаются активными в течение 60 минут.

Различные базовые URL-адреса:

  • baseUrl : Прямой доступ к фотографии, миниатюре видео или загрузка видеофайлов.
  • coverPhotoBaseUrl : Прямой доступ к обложке альбома.
  • profilePictureBaseUrl : Прямой доступ к фотографии профиля владельца mediaItem .

URL-адреса баз изображений

Вот список параметров, которые можно использовать с базовыми URL-адресами изображений:

Параметр
w , h

Описание

Параметры ширины ( w и высоты ( h .

Для доступа к медиафайлу изображения, например, фотографии или миниатюре видео, необходимо указать размеры, которые вы планируете отображать в своем приложении (чтобы изображение можно было масштабировать до этих размеров, сохраняя при этом соотношение сторон). Для этого объедините базовый URL-адрес с требуемыми размерами, как показано в примерах.

Примеры:

base-url=wmax-width-hmax-height

Вот пример отображения медиафайла шириной не более 2048 пикселей и высотой не более 1024 пикселей:

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

Описание

Культура, параметр c .

Если вы хотите обрезать изображение точно по указанным вами параметрам ширины и высоты, добавьте к базовому URL-адресу необязательный параметр -c , а также обязательные параметры w и h .

Размер (в пикселях) должен находиться в диапазоне [1, 16383]. Если ширина или высота изображения превышают требуемый размер, изображение масштабируется и обрезается (с сохранением пропорций).

Примеры:

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 с параметром download video, dv .

Параметр dv запрашивает высококачественную, перекодированную версию исходного видео. Этот параметр несовместим с параметрами w и h .

Получение базовых URL-адресов для загрузки видео может занять до нескольких секунд.

Перед использованием этого параметра убедитесь, что поле mediaMetadata.status медиафайла имеет READY . В противном случае, если обработка медиафайла не завершена, вы можете получить ошибку.

Примеры:

base-url=dv

Следующий пример показывает, как загрузить байты видео:

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

Описание

Для просмотра миниатюры видео используйте любой из базовых URL-параметров изображения .

По умолчанию все миниатюры видео содержат наложение кнопки воспроизведения. Для удаления этого наложения используйте параметр -no .

Примеры:

Примеры приведены в таблице базовых URL-адресов изображений .

no

Описание

Функция удаления наложения миниатюр, no параметров.

Если вы хотите получить миниатюру видео без наложения кнопки воспроизведения, добавьте к базовому URL-адресу параметр no .

Параметр no должен использоваться как минимум с одним из параметров базового URL изображения .

Примеры:

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

В следующем примере отображается миниатюра видео размером ровно 1280 пикселей в ширину и 720 пикселей в высоту, без наложения кнопки воспроизведения:

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

URL-адреса баз данных видеофотографий

Видеофотографии содержат как фото-, так и видеоэлементы. Для запросов baseUrl видеофотографии можно использовать параметры из базовых URL-адресов изображений или видео .

Параметр
dv

Описание

Для получения видеоэлемента из видеофайла используйте параметр dv так же, как и для загрузки с базовых URL-адресов видео .

w , h , c и d

Описание

Для получения фотоэлемента из видеофайла используйте формат URL-адресов, определяющий местоположение изображения .

Политика и фильтрация контента

В Google Photos по умолчанию применяется стандартная фильтрация контента для изображений и видео, отображаемых на общедоступных устройствах, таких как телевизор или цифровой дисплей. Этот фильтр предназначен для оптимизации просмотра путем исключения такого контента, как:

  • Функциональные изображения (например, скриншоты, документы, чеки).
  • Изображения, которые могут плохо отображаться на большом экране (например, очень низкое разрешение, размытие, чрезмерная зернистость).
  • Контент, обозначенный как сугубо личный или конфиденциальный, может не предназначаться для общего просмотра в общедоступных средах.

Вся фильтрация контента автоматизирована. Чтобы предоставить пользователям больше контроля над отображаемым контентом, вы можете разрешить им вручную выбирать и обновлять источники мультимедиа, используемые для фонового отображения.

Следующие шаги

  • Пример приложения: Наш пример приложения включает в себя демонстрацию отображения и получения медиафайлов. Для получения дополнительной информации ознакомьтесь с функциями checkMediaSourcesSet и fetch_media_item_list .
  • Справочная документация: Для получения подробной информации обо всех доступных методах, параметрах запроса и ответа, а также кодах ошибок ознакомьтесь с исчерпывающей справочной документацией по медиафайлам .