Lister et récupérer des éléments multimédias

Une fois qu'un utilisateur a configuré son appareil en mode Veille et sélectionné des sources multimédias dans Google Photos, votre application peut lister et récupérer ces éléments multimédias à afficher.

Avant de commencer

  • Vérifiez la configuration de l'appareil:assurez-vous d'avoir créé et configuré un appareil pour l'utilisateur.
  • Comprendre le flux de l'API Ambient:consultez le flux de l'API Ambient pour comprendre le processus global, en particulier l'étape impliquant l'interrogation de mediaSourcesSet.

Sondage pour mediaSourcesSet

Avant de pouvoir lister des éléments multimédias pour un appareil, l'utilisateur doit avoir sélectionné les photos qu'il souhaite partager avec votre application dans l'application Google Photos. Votre application doit interroger l'appareil pour déterminer quand cette sélection a été effectuée.

Appelez régulièrement la méthode devices.get pour le deviceId spécifique. Surveillez le champ mediaSourcesSet dans la réponse AmbientDevice. Il s'agit initialement de false. Une fois que l'utilisateur a sélectionné les sources multimédias, ce champ devient true.

La réponse AmbientDevice inclut un pollingConfig avec un pollInterval que vous devez utiliser comme référence pour votre fréquence d'interrogation.

List Media Items

Une fois que mediaSourcesSet est true pour un appareil, vous pouvez commencer à extraire les éléments multimédias sélectionnés par l'utilisateur.

  1. Utiliser le point de terminaison mediaItems.list:envoyez une requête GET à https://photosambient.googleapis.com/v1/mediaItems, en fournissant deviceId dans le chemin d'accès.

  2. Gérer la pagination (si nécessaire) : la réponse peut être paginée. Utilisez le paramètre pageSize pour spécifier le nombre maximal d'éléments à renvoyer, et le pageToken d'une réponse précédente pour récupérer les pages de résultats suivantes.

  3. Traitez les éléments multimédias:la réponse contiendra un tableau d'objets AmbientMediaItem, chacun représentant un élément multimédia sélectionné. Ces objets incluent des détails essentiels, tels que:

    • id: identifiant unique de l'élément multimédia.
    • creationTime: code temporel de la création de l'élément multimédia.
    • mediaFile: objet contenant des informations permettant d'accéder au contenu réel.

Le champ mediaFile inclut le baseUrl. Vous utiliserez ce baseUrl pour créer des URL permettant d'accéder au contenu de l'élément multimédia dans différentes résolutions ou formats.

URL de base

Les URL de base des API Google Photos permettent d'accéder aux octets bruts des éléments multimédias, ce qui permet à votre application de les télécharger ou de les afficher. Ces URL sont incluses dans les réponses lorsque vous listez des albums (API Library) ou accédez à des éléments multimédias (API Library et Picker). N'oubliez pas que les URL de base nécessitent des paramètres supplémentaires pour fonctionner correctement.

Pour l'API Picker:

Tous les objets PickedMediaItem.mediaFile incluent un baseUrl.

Les URL de base restent actives pendant 60 minutes, mais peuvent expirer plus tôt si l'utilisateur révoque les autorisations de votre application dans les paramètres de son compte Google.

Pour l'API Library:

Les URL de base restent actives pendant 60 minutes.

Voici les différentes URL de base:

  • baseUrl: permet d'accéder directement à une photo, à une vignette de vidéo ou de télécharger des octets de vidéo.
  • coverPhotoBaseUrl: accéder directement à la photo de couverture de l'album.
  • profilePictureBaseUrl: accéder directement à la photo de profil du propriétaire d'un mediaItem.

URL de base des images

Voici la liste des options que vous pouvez utiliser avec les URL de base des images:

Paramètre
w, h

Description

Paramètres de largeur, w et de hauteur, h.

Pour accéder à un élément multimédia image, comme une photo ou une vignette de vidéo, vous devez spécifier les dimensions que vous prévoyez d'afficher dans votre application (afin que l'image puisse être redimensionnée selon ces dimensions tout en conservant le format). Pour ce faire, concaténez l'URL de base avec les dimensions requises, comme indiqué dans les exemples.

Exemples :

base-url=wmax-width-hmax-height

Voici un exemple d'affichage d'un élément multimédia dont la largeur ne doit pas dépasser 2 048 px et la hauteur 1 024 px:

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

Description

Paramètre de recadrage c.

Si vous souhaitez recadrer l'image aux dimensions de largeur et de hauteur exactes que vous avez spécifiées, concatenatez l'URL de base avec le paramètre -c facultatif, ainsi que les paramètres w et h obligatoires.

La taille (en pixels) doit être comprise entre 1 et 16 383. Si la largeur ou la hauteur de l'image dépasse la taille demandée, l'image est réduite et recadrée (en conservant le format).

Exemples :

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

Dans cet exemple, l'application affiche un élément multimédia de 256 x 256 pixels, comme une vignette:

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

Description

Paramètre de téléchargement, d.

Si vous souhaitez télécharger l'image en conservant toutes les métadonnées Exif, à l'exception des métadonnées de localisation, concatenatez l'URL de base avec le paramètre d.

Exemples :

base-url=d

Dans cet exemple, l'application télécharge une image avec toutes les métadonnées, à l'exception des métadonnées de localisation:

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

URL de base des vidéos

Voici la liste des options que vous pouvez utiliser avec les URL de base des vidéos:

Paramètre
dv

Description

Pour accéder aux octets d'une vidéo mediaItem, concatenatez baseUrl avec le paramètre dv de la vidéo à télécharger.

Le paramètre dv demande une version transcodée de haute qualité de la vidéo d'origine. Le paramètre n'est pas compatible avec les paramètres w et h.

Le retour d'octets pour les URL de base des téléchargements de vidéos peut prendre jusqu'à quelques secondes.

Avant d'utiliser ce paramètre, vérifiez que le champ mediaMetadata.status des éléments multimédias est READY. Sinon, si le traitement de votre élément multimédia n'est pas terminé, vous risquez de recevoir un message d'erreur.

Exemples :

base-url=dv

L'exemple suivant montre comment télécharger les octets d'une vidéo:

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

Description

Pour accéder à la vignette de la vidéo, utilisez l'un des paramètres d'URL de base d'image.

Par défaut, toutes les miniatures de vidéos incluent un bouton de lecture superposé. Consultez le paramètre -no pour supprimer cette superposition.

Exemples :

Pour obtenir des exemples, consultez le tableau des URL de base des images.

no

Description

Paramètre no pour supprimer la superposition de vignette.

Si vous souhaitez récupérer la vignette d'une vidéo sans la superposition d'un bouton de lecture, concatenatez l'URL de base avec le paramètre no.

Le paramètre no doit être utilisé avec au moins l'un des paramètres d'URL de base de l'image.

Exemples :

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

L'exemple suivant affiche une vignette vidéo de 1 280 x 720 px exactement, sans bouton de lecture superposé:

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

URL de base des photos animées

Les photos animées contiennent à la fois des éléments photo et vidéo. Vous pouvez utiliser des paramètres à partir des URL de base d'image ou des URL de base de vidéo pour les requêtes baseUrl de photo animée.

Paramètre
dv

Description

Pour récupérer l'élément vidéo d'un élément multimédia photo animée, utilisez le paramètre dv comme pour le téléchargement à partir d'URL de base vidéo.

w, h, c et d

Description

Pour récupérer l'élément photo d'un élément multimédia photo animée, utilisez le format des URL de base des images.

Étapes suivantes

  • Application exemple:notre application exemple inclut un exemple de liste et de récupération d'éléments multimédias. Pour en savoir plus, consultez les fonctions checkMediaSourcesSet et fetch_media_item_list.
  • Documentation de référence:consultez la documentation de référence complète sur les éléments multimédias pour obtenir des informations détaillées sur toutes les méthodes disponibles, les paramètres de requête et de réponse, ainsi que les codes d'erreur.