You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Schema.org中MusicAlbum时长标记问题:添加方式及相关疑问

Schema.org中MusicAlbum标记时长的问题解答

为什么MusicAlbum类型没有duration属性?

Schema.org的类型划分逻辑里,MusicAlbum偏向抽象的专辑概念——同一专辑可能存在不同发行版本(比如标准版、豪华版),不同版本的时长可能因附加曲目存在差异;而MusicRelease聚焦于具体可获取的发行实体/数字版本,这类版本的时长是固定明确的,因此官方只为MusicRelease提供了duration属性。

无需标记为MusicRelease时的时长标记方案

如果坚持使用MusicAlbum类型,有以下几种可行方式:

  • 直接添加自定义duration属性
    虽然Schema.org官方未为MusicAlbum定义该属性,但多数结构化数据解析工具会兼容读取。只需确保值遵循ISO 8601时间格式(如PT45M30S代表45分30秒),示例代码:

    {
      "@context": "https://schema.org",
      "@type": "MusicAlbum",
      "name": "Demo Album",
      "duration": "PT45M30S"
    }
    

    缺点是部分严格遵循规范的工具可能忽略该属性,适合自定义应用场景。

  • 通过关联曲目计算总时长
    为专辑下的每首MusicRecording标记duration,解析时累加所有曲目时长得到专辑总时长。这种方式完全符合Schema.org规范,且能清晰体现专辑时长构成,示例代码:

    {
      "@context": "https://schema.org",
      "@type": "MusicAlbum",
      "name": "Demo Album",
      "track": [
        {
          "@type": "MusicRecording",
          "name": "Track 1",
          "duration": "PT3M45S"
        },
        {
          "@type": "MusicRecording",
          "name": "Track 2",
          "duration": "PT4M10S"
        }
      ]
    }
    
  • 使用@context扩展自定义属性(更规范的自定义方式)
    如果你需要严格的规范扩展,可以通过自定义@context声明属性归属,示例:

    {
      "@context": {
        "@vocab": "https://schema.org/",
        "duration": "https://schema.org/duration"
      },
      "@type": "MusicAlbum",
      "name": "Demo Album",
      "duration": "PT45M30S"
    }
    

    这种方式明确指定了duration的Schema.org定义,提升了自定义属性的兼容性。

内容的提问来源于stack exchange,提问作者LizardKG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:15:12