Members

注意:自 2020 年 3 月 31 日起,members 端点将取代 sponsors 端点,后者现已弃用,并将于 2020 年 9 月 30 日当天或之后不再受支持。API 客户端应更新对 sponsors.list 方法的调用,以改用 members.list 方法。

只有创作者使用此端点向自己已启用频道会员功能的 YouTube 频道提出请求。如需申请访问权限,请与您的 Google 或 YouTube 代表联系。

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

方法

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

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。该值对应于 membershipsLevel 资源中的 id 属性值。
snippet.membershipsDetails.highestAccessibleLevelDisplayName string
会员频道当前可达到的最高会员级别的名称。该值对应于 membershipsLevel 资源中的 displayName 属性值。
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。该值对应于 membershipsLevel 资源中的 id 属性值。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberSince datetime
成员获得指定会员级别访问权限的日期和时间。换句话说,自该日期和时间起,该成员一直拥有该关卡的访问权限。 请注意,不同层级的成员资格有效期可能不同。
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberTotalDurationMonths integer
用户有权访问指定级别的月数(向下舍入为最接近的整数)。该值反映了成员有权访问相应级别的完整月数,但该数字并不表示该成员一直拥有会员资格的时间达到这么长时间。