PhotosImageMetadata
Photos MetadataMedia SEOGoogleApi.ContentWarehouse.V1.Model.PhotosImageMetadata
SEO Analysis
AI GeneratedGoverns image and media search features. Affects visibility in image search and media carousels. This model (Photos Image Metadata) contains 314 attributes that define its data structure. Key functionality includes: Caption embedded in IPTC
Actionable Insights for SEOs
- Optimize image alt text, file names, and compression for image search
- Implement image structured data for enhanced visibility
- Consider video content strategy for video carousel visibility
Attributes
314relationstringnilFull type: list(String.tfreebytecountsstringnilFull type: String.texposureindexnumber(nilgdepthMetadataPhotosGDepthMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosGDepthMetadata.taddlmodelinfostringnilFull type: String.tredeyemodeboolean(nilcaptionwriterstringnilFull type: String.torganisationinimagenamestringnilFull type: list(String.tproductidstringnilFull type: list(String.tratingnumber(nilcolormapinteger(nilcountrycodestringnilFull type: String.tstitchingsoftwarestringnilFull type: String.tcroppedareaimageheightpixelsinteger(nilstatestringnilFull type: String.tusagetermsstringnilFull type: String.tDEPRECATEDLargestvalidinteriorrectheightinteger(nillensinfostringnilFull type: String.tmodelreleaseidstringnilFull type: list(String.treferencedatestringnilFull type: list(String.texpirationdatestringnilFull type: String.tgpsdestdistancerefstringnilFull type: String.twebstatementstringnilFull type: String.tsubjectareainteger(nilheadlinestringnilFull type: String.trelatedsoundfilestringnilFull type: String.tgpsmeasuremodestringnilFull type: String.txresolutionnumber(nilfunctionboolean(niladvisorystringnilFull type: list(String.tformatstringnilFull type: String.tcaptionstringnilFull type: String.tCaption embedded in IPTC
gimagemimestringnilFull type: String.tcustomrenderedinteger(nilrelatedimagefileformatstringnilFull type: String.tmaxavailwidthinteger(nilchromasubsamplingstringnilFull type: String.tA typed representation that translates the values from ycbcrsubsampling.
gpsdestdistancenumber(nilpropertyreleaseidstringnilFull type: list(String.tdatestringnilFull type: String.tsensorheightnumber(nilinitialviewheadingdegreesinteger(nilyresolutionnumber(nilbitspersampleinteger(nilStart of reflected fields. These do not duplicate the above fields.
gcameraspecialtypeidstringnilFull type: String.tCamera creations metadata. The opaque id string created by the OEM. For bursts, this field should not be present. Instead, the two properties below will allow Photos to identify and provide special treatment for bursts.
rotateinteger(nilThis field is deprecated. Rotation is now accomplished via ImageInfo.exif_orientation and ImageInfo.edit_list. WARNING: the presence of rotate is used by FIFE to identify older images. Setting this (even to the correct number of degrees) on newer images can cause incorrectly rotated thumbnails. This was the cause of omg/58543 Number of degrees (0, 90, 180, 270)
ciadrpcodestringnilFull type: String.tmicrovideooriginaloffsetinteger(nilThis is similar to gcameramicrovideooffset, except it stores the unverified value that was provided in the motion photo file. This field is not part of the XMP or spec. It is used to ensure we preserve data from the original file when offset is modified.
mimeTypeinteger(nilMime type of image
posepitchdegreesnumber(nilminsamplevalueinteger(niliptclasteditedstringnilFull type: String.tmaxaperturevaluenumber(nilmotionphotovideodataboxheaderstringnilFull type: String.tThe Motion Photo Video Data (MPVD) box header of a HEIF motion photo. It is used for reconstructing the original moton photo bytes. See go/photos-be-heic-motion-photos for more details.
ciadrregionstringnilFull type: String.tenvelopenumberstringnilFull type: String.tsubjectlocationinteger(nilgpsdopnumber(nilsensingmethodinteger(nilwidthinteger(nilwidth and height are before any rotation (including EXIF orientation).
ownernamestringnilFull type: String.tstripbytecountsstringnilFull type: String.tgcameramicrovideointeger(nilThe following XMP metadata are used specifically for MicroVideo. More information about MicroVideo format can be found at go/photos-microvideo-format A value of 1 indicates that this file was a MicroVideo at capture time. Otherwise, this is not a MicroVideo (not set or 0).
orientationinteger(nilExif camera orientation. "1" means "no rotation".
heightinteger(nilsubjectcodestringnilFull type: list(String.tDEPRECATEDLargestvalidinteriorrecttopinteger(nilgpsstatusstringnilFull type: String.ttimesentstringnilFull type: String.tgpsdatestampstringnilFull type: String.tThis is in UTC time. Format is YYYY:mm:dd.
ciurlworkstringnilFull type: String.tDEPRECATEDGpstimestampnumber(nilThis field was originally marked incorrectly as optional (rather than repeated). In order to fix it, the first field has been marked as deprecated and replaced with a field with a new name and tag number.
photometricinterpretationinteger(nilrelatedimagewidthstringnilFull type: String.tgcameramotionphotointeger(nilAn indication that this item should be treated as a Motion Photo. 0 -> Not Motion Photo, 1 -> Motion Photo, everything else is undefined per the spec. If it's a motion photo, the previous gcamera fields should be ignored.
projectiontypestringnilFull type: String.taperturevaluenumber(nilycbcrsubsamplinginteger(nilmarkedboolean(nilkeywordstringnilFull type: list(String.tcontributorstringnilFull type: list(String.tcountrystringnilFull type: String.tdynamicDepthMetadataPhotosDynamicDepthMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosDynamicDepthMetadata.tDynamicDepth (go/dynamic-depth) metadata is described in the metadata of sub-images in the container. The presence of this field can be used to determine that an image is in the dynamic depth format.
croppedareaimagewidthpixelsinteger(nillightsourceinteger(nilbrightnessvaluenumber(nilsublocationstringnilFull type: String.tDEPRECATEDLargestvalidinteriorrectwidthinteger(nilexposuremodeinteger(nilDEPRECATEDLargestvalidinteriorrectleftinteger(nilimagetypestringnilFull type: String.tlongitudefloat(nil+/- 180 inclusive
gpstracknumber(nilgpstrackrefstringnilFull type: String.tfocalplanexresnumber(nilexposuretimenumber(nilcompressedbitsperpixelnumber(nilurgencystringnilFull type: String.tsubjectdistancerangeinteger(nilbaseurlstringnilFull type: String.tobjectattributereferencestringnilFull type: list(String.tmeteringmodeinteger(nilcompressionlevelinteger(nilgpsdestlongituderefstringnilFull type: String.tfocalplaneunitsnumber(nilaudiodurationstringnilFull type: String.timageorientationstringnilFull type: String.texposurebiasnumber(nilcitelworkstringnilFull type: String.tmaxavailheightinteger(nilaudiosamplingresolutionstringnilFull type: String.tnilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosFourCMetadata.tgpsimgdirectionnumber(nildistancenumber(nilanimationMetadataPhotosAnimationMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosAnimationMetadata.taltitudefloat(nilcameraidstringnilFull type: String.twhitebalanceinteger(nilflashreturninteger(nilexpirationtimestringnilFull type: String.tenvelopeprioritystringnilFull type: String.tbitDepthinteger(nilThe number of bits per pixel used to express a color. Most images have 8-bit depth and Photos/thumbnailer currently do not support more than 8 bits (except RAW).
gcameramotionphotoversioninteger(nilIndicates the Motion Photo version of the spec (initially 1).
organisationinimagecodestringnilFull type: list(String.tlensidstringnilFull type: String.tgpsdestbearingrefstringnilFull type: String.tlocationshownstringnilFull type: list(String.toriginatingprogramstringnilFull type: String.tminormodelagedisclosurestringnilFull type: String.treleasedatestringnilFull type: String.tmodeinteger(nilmaxsamplevalueinteger(nilfullpanowidthpixelsinteger(nilfocallengthnumber(nilhdrMetadataPhotosHdrMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosHdrMetadata.tIndicates that the image has some form of HDR present or available to it.
panoramaMetadataPhotosPanoramaMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosPanoramaMetadata.tgpsspeedrefstringnilFull type: String.tthumbnailerBuildClinteger(nilThe build CL for the version of thumbnailer that built this image.
lastphotodatestringnilFull type: String.tcapturesoftwarestringnilFull type: String.tgcameraburstprimaryinteger(nilA value of 1 indicates that this was the primary (“best shot”) at capture time. Within Photos we should only treat this image as the best shot if the user hasn’t made an explicit choice. Defining the initial primary allows consistency between OEMs, Photos clients, and the Photos backend. This value is optional, cameras are not required to set it on any photo in a burst. Clients will default to the 0th frame, but may run an algorithm to pick a better default.
scenecapturetypeinteger(nilgaincontrolinteger(nilcellwidthinteger(nilgpsimgdirectionrefstringnilFull type: String.tDEPRECATEDIscolorinteger(nilflashcompensationnumber(nilcoveragestringnilFull type: String.tisoequivalentinteger(nilDEPRECATEDBlendingtypestringnilFull type: String.toffsettimeoriginalstringnilFull type: String.tprogramversionstringnilFull type: String.treleasetimestringnilFull type: String.tdatesentstringnilFull type: String.tgpsspeednumber(nilfullpanoheightpixelsinteger(nildatecreatedstringnilFull type: String.toffsettimedigitizedstringnilFull type: String.tlocationstringnilFull type: String.tdaylightsavingslist(integer(nil0 = no daylight savings, 1 = daylight savings enabled. Note that this field only represents whether the setting in the camera was turned on or off. It must not be used to modify the timestamp of the photo. That is, the capture time is already completely determined by exif_time, timezoneoffset and timezoneminutes.
gpsdestlatituderefstringnilFull type: String.tpersoninimagestringnilFull type: list(String.tversionstringnilFull type: String.tDEPRECATEDProcessinteger(nilciadrctrystringnilFull type: String.tintellectualgenrestringnilFull type: String.treferenceblackwhitenumber(nilreferencenumberstringnilFull type: list(String.tlanguagestringnilFull type: list(String.tcontactstringnilFull type: String.tdigitalzoomrationumber(nilhasAlphaboolean(nilThe image has an alpha channel (potential transparency). If the image is decoded, this will be updated to indicate whether there is any active transparency. Formats supporting alpha: png, webp, gif, heif.
usepanoramaviewerboolean(nilGPano-related fields. A handful of these have been deprecated due to a change in the spec since its initial design.
firmwarestringnilFull type: String.tresolutionunitinteger(nilinitialviewpitchdegreesinteger(nilgcameramotionphotocreatorstringnilFull type: String.tIndicates the creator of the Motion Photo. This will be set if the MotionPhoto was generated from a LivePhoto from the iOS to Android conversion tool.
spectralsensitivitystringnilFull type: String.tcontentlocationnamestringnilFull type: list(String.tdigitalsourcetypestringnilFull type: String.twhitepointnumber(niltimezoneoffsetlist(integer(nilThe elements in the timezone and daylight savings field arrays correspond to the following date/time fields: 0) datecreated (ie. DateTimeOriginal) 1) datetime (ie. DateTime or last modified date) 2) datetimedigitized (ie. DateTimeDigitized) If the field does not exist, then there is no valid time zone information for that date/time field. Offset in hours.
sourcestringnilFull type: String.taudiooutcuestringnilFull type: String.tsubjectreferencestringnilFull type: list(String.tflashusedinteger(nilpropertyreleasestatusstringnilFull type: String.tdatetimedigitizedstringnilFull type: String.textrasamplesinteger(nilcertificatestringnilFull type: String.tdigimageguidstringnilFull type: String.tsubsectimedigitizedstringnilFull type: String.texposurelockusedboolean(nilinteroperabilityindexstringnilFull type: String.teventstringnilFull type: String.tgpsdestlongitudenumber(nilgaudiomimestringnilFull type: String.texifTimestringnilFull type: String.tTimestamp embedded in the image. The value comes from the first valid date-time field extracted from the metadata in the order: 1) datecreated (ie. DateTimeOriginal) 2) datetimedigitized (ie. DateTimeDigitized) 3) datetime (ie. DateTime or last modified date) The type of this field is equivalent to a time_t (ie. number of seconds since the epoch - 00:00 hours, Jan 1, 1970) except that it is an int64 rather than an int.
focallengthin35mmfilminteger(nilserviceidentifierstringnilFull type: String.trowsperstripstringnilFull type: String.tauthorstringnilFull type: String.tshutterspeedvaluenumber(nilexposureprograminteger(nilposeheadingdegreesnumber(nillatitudefloat(nilGPS Info: +/- 90 inclusive
freeoffsetsinteger(nilburstuuidstringnilFull type: String.tsubsectimestringnilFull type: String.tgcameramotionphotopresentationtimestampusinteger(nilThe presentation timestamp in microseconds of the video frame corresponding to the image still. Value may be -1 to denote unset/unspecified.
celllengthinteger(nilprimarychromaticitiesnumber(nillanguageidentifierstringnilFull type: String.tgpsdifferentialinteger(nilgpsdestlatitudenumber(nilcitystringnilFull type: String.tmodelagelist(integer(nilthresholdinginteger(nilccdwidthnumber(nilsensorwidthnumber(nildatetimestringnilFull type: String.tcreatedatestringnilFull type: String.tobjecttypereferencestringnilFull type: String.tycbcrcoefficientsnumber(niloffsettimestringnilFull type: String.tsamplesperpixelinteger(nilgcameramicrovideooffsetinteger(nilThe offset in bytes from the end of the file to the point where the appended mp4 begins (equivalent to the length of the compressed mp4). This field might be provided in the original MicroVideo from client, but it might become invalid when the image component is edited, so it is expected that the thumbnailer will validate it and find the correct value (by scanning through the JPEG) if it is invalid. In other words, only a valid offset should be returned by thumbnailer.
gcameraisautoenhancedboolean(nilIndicates that an OEM has applied auto enhance via Photos' API.
stripoffsetsstringnilFull type: String.tsoftwarestringnilFull type: String.texif4cPhotosFourCMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosFourCMetadata.t4C metadata (caption, copyright, creator, credit) specific to each of the three metadata segments (EXIF, XMP, IPTC). These are used to keep separate the 4C data from each segment so that we can properly preserve the per-segment 4C data on write (when PreserveLevel is set appropriately).
identifierstringnilFull type: list(String.tcameramodelstringnilFull type: String.tExif camera model
gpssatellitesstringnilFull type: String.taudiosamplingratestringnilFull type: String.tgcameramicrovideopresentationtimestampusinteger(nilThe presentation timestamp in microseconds of the video frame corresponding to the image still. Value may be -1 to denote unset/unspecified.
creditsstringnilFull type: String.tautoenhanceboolean(nilIndicates whether auto-enhance has been applied to the image.
firstphotodatestringnilFull type: String.tcroppedareatoppixelsinteger(nilexifTimeUtcSourcestringnilFull type: String.tThe exif_time_utc_source indicates the source from which the exif_time_utc field is calculated.
destinationstringnilFull type: list(String.thostcomputerstringnilFull type: String.turlstringnilFull type: String.tgcreationscameraburstidstringnilFull type: String.tinitialverticalfovdegreesnumber(nilobjectcyclestringnilFull type: String.tmodifydatestringnilFull type: String.tgcameraburstidstringnilFull type: String.tA unique String. The property should be present and identical for all images that make up a burst. It should be unique across devices (UUID recommended). Unlike GCreations:CameraBurstId, we should use images with this property to create auto collages and animations.
nicknamestringnilFull type: String.tycbcrpositioninginteger(nilsaturationinteger(niltypestringnilFull type: list(String.tcopyrightnoticestringnilFull type: String.tgpsmapdatumstringnilFull type: String.tmodelreleasestatusstringnilFull type: String.tunostringnilFull type: String.tdigitalsourcefiletypestringnilFull type: String.tinstructionsstringnilFull type: String.tcategorystringnilFull type: String.tciadrcitystringnilFull type: String.tgpsdestbearingnumber(nilciemailworkstringnilFull type: String.teditorialupdatestringnilFull type: String.ttransmissionreferencestringnilFull type: String.treferenceservicestringnilFull type: list(String.tismpformatboolean(nilThe image is a Multi-Picture Object.
relatedimageheightstringnilFull type: String.taperturefnumbernumber(nilciadrextadrstringnilFull type: list(String.tgpstimelist(number(nilThis is in UTC Time. Contains three floats: hour, minute and second. Supports subsecond resolution.
gcameramicrovideoversioninteger(nilIndicates the file format version of the MicroVideo (initially 1).
destinationLatitudefloat(nil+/- 90 inclusive
artworkorobjectstringnilFull type: list(String.tdestinationLongitudefloat(nil+/- 180 inclusive
exifTimeUtcstringnilFull type: String.tThe exif_time_utc field is a UTC-based alternative to the exif_time field, which is in local time, rather than UTC. If they were not separate, clients would be unable to distinguish if the source were UTC- or local-based.
planarconfigurationinteger(nilfillorderinteger(nileditstatusstringnilFull type: String.tgrayresponseunitinteger(niltimezoneminuteslist(integer(nilRemaining minutes of offset.
contentlocationcodestringnilFull type: list(String.tinitialviewrolldegreesinteger(nilposerolldegreesnumber(nilgcameradisableautocreationstringnilFull type: list(String.tThe possible values are: “Animation”, “Collage”, “Pano”, “Movies”. Photos will avoid creating the listed types using the containing image or video. The property is optional. The property can be included multiple times to disable creation of multiple different types.
cvtermstringnilFull type: list(String.tmetadatadatestringnilFull type: String.tsubsectimeoriginalstringnilFull type: String.tlensstringnilFull type: String.tfixtureidentifierstringnilFull type: String.tsourcephotoscountinteger(nilactionadvisedstringnilFull type: String.tauthorpositionstringnilFull type: String.timagenumberstringnilFull type: String.tcameramakestringnilFull type: String.tExif camera make
scenestringnilFull type: list(String.tsupplementalcategorystringnilFull type: list(String.tcontrastinteger(niluniqueidstringnilFull type: String.tFor unique hash:
audiotypestringnilFull type: String.tserialnumberstringnilFull type: String.tcroppedarealeftpixelsinteger(nilcolorspaceinteger(nilcolorprofileboolean(nilIndicates whether or not the source image had an embedded color profile.
initialhorizontalfovdegreesnumber(niltitlestringnilFull type: String.tgcreationstypestringnilFull type: String.tString representation of creation type. Should be one of {"GCameraCollage", "GCameraAnimation", "GCameraGroupSmiles", "GPhotosCollage", "GPhotosAnimation"}.
labelstringnilFull type: String.townerstringnilFull type: list(String.tflashenergynumber(nilpublisherstringnilFull type: list(String.tiptc4cPhotosFourCMetadata →nilFull type: GoogleApi.ContentWarehouse.V1.Model.PhotosFourCMetadata.tsharpnessinteger(nilgrayresponsecurveinteger(nil