Members

注意:自 2020 年 3 月 31 日起,members 端点取代了 sponsors 端点。sponsors 端点现已废弃,自 2020 年 9 月 30 日起不再受支持。API 客户端应更新对 sponsors.list 方法的调用,改用 members.list 方法。

只有个人创作者才能使用此端点针对自己启用了频道会员功能的 YouTube 频道发出请求。请与您的 Google 或 YouTube 代表联系,请求访问权限。

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

方法

该 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。该值对应于 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
用户对指定级别的访问权限有效期(以月为单位),向下舍入到最接近的整数。此值反映的是会员获享相应等级的完整月数,但该数值并不意味着会员连续享受了这么多个月的会员福利。