F.Ko-Jiの「一秒後は未来」

Schema.org for Videosなどで使用するISO 8601のdurationは「P」始まり

Google の検索結果などに動画のメタ情報を表示するための「Schema.org for Videos」という仕様があります。その仕様の中に動画の長さの情報を指定する duration プロパティがあって、その値は ISO 8601 というフォーマットで記述します。

Google の公式リファレンスの例ではこのように「T1M33S」と書かれていたので「T」に続けて分と秒の情報を指定していればいいのだなと思い、そのように指定していたのですが一向に検索結果に表示されません。

そこで ISO 8601 – Wikipedia を確認してみると、その中に「Durations」という項目があり、

Durations are represented by the format P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W as shown to the right.

P is the duration designator (for period) placed at the start of the duration representation.

と説明されていました。つまり Duration の正しいフォーマットは「P」で始まる必要があるということ。まじか…。改めて検索結果に動画の長さがきちんと表示されている他の動画サイトのメタデータを確認してみると、確かに「P」もしくは「PT」で始まる記述がなされていました。

「P」と「T」の間には年月日が入るので、年月日の情報がなければ「PT」始まりとなります。特に「M」が「月」を示すのか「分」を示すのが曖昧になるため、もし「M」が「分」を示すのなら「PT2M」のように「PT」で始まる必要があります。しかし 2M41S のように「M」の後に「S」が来るのなら「M」は「分」であることが分かるので、「P2M41S」のように「P」だけでも大丈夫なようです。

というわけで Schema.org for Videos のように ISO 8601 フォーマットで duration を記述する際には、「P2M41S」もしくは「PT2M41S」のように「P」始まりで記述する必要があります。Google の公式サイトの例が間違っているのでご注意を。

P.S. ここまで調べて、そういえば PHP の DateInterval でも「P」始まりの値を指定をしていたなということを思い出した。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など