注意:自 2020 年 3 月 31 日起,
只有创作者使用此端点向自己已启用频道会员功能的 YouTube 频道提出请求。如需申请访问权限,请与您的 Google 或 YouTube 代表联系。
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 用户有权访问指定级别的月数(向下舍入为最接近的整数)。该值反映了成员有权访问相应级别的完整月数,但该数字并不表示该成员一直拥有会员资格的时间达到这么长时间。 |