How is video duration expressed in structured data?

The Citead team, updated

In short. VideoObject.duration uses an ISO 8601 duration string with labelled year, month, day, hour, minute and second components.

Definition: VideoObject.duration is an ISO 8601 duration string that states the length of a video. Google gives PT00H30M5S as an example for thirty minutes and five seconds.

Key facts

  • Google's Video structured data documentation describes duration as the video's duration in ISO 8601 format.
  • Google gives PT00H30M5S as an example and explains that it represents thirty minutes and five seconds.
  • Google's JSON-LD example writes the value as "duration": "PT1M54S".
  • Schema.org's VideoObject definition describes duration as the item's duration in ISO 8601 duration format.
  • The W3C XML Schema specification describes duration values as time durations and bases their concept on ISO 8601 durations without fixed endpoints.

What does the value look like?

The value starts with P. The W3C duration grammar places year, month and day components before T, then hour, minute and second components after T. The same letter M therefore has two positions: before T for months and after T for minutes. Google’s documented time-only example is:

"duration": "PT00H30M5S"

Here, P begins the duration, T begins its time part, 00H gives zero hours, 30M gives thirty minutes and 5S gives five seconds. The W3C specification describes the lexical pattern as P n Y n M n D T n H n M n S, with the components appearing in order.

How is it written in JSON-LD?

Google lists duration under the recommended properties for VideoObject and gives a JSON-LD example with a one-minute, fifty-four-second video:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "duration": "PT1M54S"
}

The value is a string in the documented example. Schema.org lists the expected type for duration as Duration or QuantitativeValue, and describes it as the duration of an item such as a movie or audio recording in ISO 8601 duration format. For a video, the value belongs on the VideoObject that describes that video.

How should months and minutes be read?

The position of M controls its meaning. In the W3C grammar, a month component comes before the T separator, while a minute component comes after it. A value with only hours, minutes and seconds therefore uses the time part, as in PT37M14S, another value in Google’s video examples.

The W3C value space models each duration as an integer number of months and a decimal number of seconds. That model is why a duration string is a sequence of labelled components rather than a clock display such as 00:30:05. For the VideoObject property, Google documents the ISO 8601 form and does not give a separate Google-specific grammar.

How can you check the markup?

Read the duration value in the page’s JSON-LD or Microdata and compare its components with the actual video length. Confirm that the string begins with P, that the time components follow T, and that each unit letter is in the order documented by W3C. Google’s documentation also shows the same duration property in Microdata as content="PT1M54S".

FAQ

Is PT1M54S one minute and fifty-four seconds?

Yes. The M follows T, so it is the minute component, and S is the seconds component. Google uses this value in its VideoObject JSON-LD example.

Does M always mean minutes?

No. The W3C duration grammar uses M for months before T and for minutes after T. The position within the string supplies the distinction.

Can duration be written as a plain number of seconds?

The documentation used for this entry describes duration as an ISO 8601 duration and shows labelled strings such as PT00H30M5S and PT1M54S. It does not document a plain-seconds form for VideoObject.duration.

Sources

  1. Google Search Central, "Video (VideoObject, Clip, BroadcastEvent) structured data", 24 September 2026
  2. Schema.org, "VideoObject", 16 September 2026
  3. W3C, "W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes", 5 April 2012

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark