Members

A member 资源表示 YouTube 频道的频道会员。会员会定期向创作者提供资金支持,并获得特殊 福利。例如,当创作者为聊天开启会员专享模式时,会员可以聊天。

以下访问权限限制适用:

  • 只有拥有专属 YouTube 合作伙伴经理的 YouTube 创作者才能访问 members 和 membershipsLevels 端点。
  • 访问权限是在频道级别授予的。由于这种频道级许可名单机制,youtube.channel-memberships.creator OAuth 范围不会经过标准的 Google Cloud OAuth 验证流程。

方法

该 API 支持以下 member 资源方法:

list
列出频道的会员(以前称为“赞助者”)。API 请求必须由 频道所有者授权。

资源表示法

以下 JSON 结构显示了 member 资源的格式:

{
  "kind": "youtube#member",
  "etag": etag,
  "snippet": {
    "creatorChannelId": string,
    "memberDetails": {
      "channelId": string,
      "channelUrl": string,
      "displayName": string,
      "profileImageUrl": string
    },
    "membershipsDetails": {
      "highestAccessibleLevel": string,
      "highestAccessibleLevelDisplayName": string,
      "accessibleLevels": [
        string
      ],
      "membershipsDuration": {
        "memberSince": datetime,
        "memberTotalDurationMonths": integer,
      },
      "membershipsDurationAtLevel": [
        {
          "level": string,
          "memberSince": datetime,
          "memberTotalDurationMonths": integer,
        }
      ]
    }
  }
}

属性

下表定义了此资源中显示的属性:

属性
kind string
标识 API 资源的类型。该值将为 youtube#member。
etag etag
此资源的 ETag。
snippet object
snippet 对象包含有关会员的详细信息。
snippet.creatorChannelId string
提供会员服务的创作者的 YouTube 频道 ID。
snippet.memberDetails object
此对象包含有关为会员服务付费的 YouTube 频道的个人资料数据。

请注意,频道可能拥有个人资料数据不可用的会员。例如,已删除频道但仍在为会员服务付费的会员就会出现这种情况。请注意, 这些会员仍然可以享受会员福利。

API 响应包含这些会员的资源,以确保即使 memberDetails 对象内的个人资料详细信息未设置,计数也是准确的。系统仍会为这些会员提供 membershipsDetails。
snippet.memberDetails.channelId string
会员频道的 YouTube 频道 ID。如果已设置,频道 ID 也可以视为会员的唯一标识符。 如果未设置,则无法唯一 标识会员,但资源仍会传达会员详细信息,例如会员可以访问的级别及其会员资格的期限。
snippet.memberDetails.channelUrl string
频道的网址。
snippet.memberDetails.displayName string
频道的显示名称。
snippet.memberDetails.profileImageUrl string
频道的头像网址。
snippet.membershipsDetails object
此对象包含会员频道的会员详细信息。
snippet.membershipsDetails.highestAccessibleLevel string
会员频道目前可以访问的最高会员级别的 ID。该值 对应于 id 属性 值在 membershipsLevel 资源中。
snippet.membershipsDetails.highestAccessibleLevelDisplayName string
会员频道目前可以访问的最高会员级别的名称。该 值对应于 displayName membershipsLevel资源中的 属性值。
snippet.membershipsDetails.accessibleLevels[] list (of strings)
用户目前可以访问的所有会员级别的 ID 列表。该列表包括 当前有效级别及其下的所有级别。
snippet.membershipsDuration object
此对象包含有关当前会员的会员资格总期限的信息,而不考虑价格级别。然后, snippet.membershipsDetails.membershipsDurationAtLevel[] 属性包含一个对象列表,其中包含有关会员有权访问特定会员级别的会员资格 期限的详细信息。

以下示例展示了这些属性的工作方式:会员在 1 月份购买了新的会员服务,会员级别为 1,会员资格有效期至 3 月。4 月和 5 月,会员没有会员资格。6 月,会员重新开始会员服务,级别仍为 1。然后,在 8 月,会员将其会员级别升级为 2。因此,如果在 10 月份发出 API 调用,member 资源将包含以下内容:
"membershipsDetails": {
  "membershipsDuration": {
    "memberSince": "2020-06-01T12:00:00",
    "memberTotalDurationMonths": 7,
  },
  "membershipsDurationAtLevel": [
    {
      "level": "level_1_ID",
      "memberSince": "2020-06-01T12:00:00",
      "memberTotalDurationMonths": 7
    },
    {
      "level": "level_2_ID",
      "memberSince": "2020-08-01T12:00:00",
      "memberTotalDurationMonths": 2
    },
  ]
}
snippet.membershipsDuration.memberSince datetime
会员当前会员资格的开始日期和时间。换句话说,会员 自此日期和时间起,一直拥有会员资格。请注意,会员资格的不同期限可能处于不同的会员级别。
snippet.membershipsDuration.memberTotalDurationMonths integer
用户成为会员的月数,向下舍入到最接近的整数。 该值反映了会员拥有会员资格的完整月数, 但该数字并不意味着会员连续拥有会员资格这么多个月。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel[] list (of objects)
对象列表,其中每个对象包含有关会员有权访问特定会员级别的会员资格期限的详细信息。 该列表包含会员目前可以访问的每个会员级别对应的 对象。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.level string
会员级别 ID。该值对应于 id 属性值在 a membershipsLevel 资源。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberSince datetime
会员有权访问指定会员级别的日期和时间。换句话说,自此日期和时间起,会员一直有权访问该级别。请注意,会员资格的不同期限可能处于更高的会员 级别。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberTotalDurationMonths integer
用户有权访问指定级别的月数,向下舍入到最接近的整数。该值反映了会员有权访问该级别的完整月数,但该数字并不意味着会员连续拥有会员资格这么多个月。