如何获得YouTube即时聊天消息的会员徽章? [英] How to get membership badges for YouTube live chat messages?

查看:27
本文介绍了如何获得YouTube即时聊天消息的会员徽章?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在研究YouTube的实时聊天API,以便呈现一个定制的聊天提要,我想知道如何才能像YouTube网站本身那样在用户旁边显示会员/赞助商徽章?

查看API的响应,我可以看到YouTube确实告诉我用户是成员/赞助商,但它没有包括应该显示什么级别/持续时间或应该显示什么徽章图像:

{
  "kind": "youtube#liveChatMessage",
  "etag": "MHpDf4piJnYR2X3lP-7mwBavfWM",
  "id": "LCC.CjgKDQoLd1VwYUIzYTdkVW8qJwoYVUNEWExPVjNTMEdUd21EOFY4R1A2dzlREgt3VXBhQjNhN2RVbxI7ChpDSVRodDQzS292VUNGZVV0clFZZHNJRUwzZxIdQ1B1VHJiYV9vdlVDRllhRGdnb2RaUE1LanctMjY",
  "snippet": {
    "type": "textMessageEvent",
    "liveChatId": "Cg0KC3dVcGFCM2E3ZFVvKicKGFVDRFhMT1YzUzBHVHdtRDhWOEdQNnc5URILd1VwYUIzYTdkVW8",
    "authorChannelId": "UCYC1zf9Dznp-xpe9rwEopLQ",
    "publishedAt": "2022-01-08T16:31:12.317Z",
    "hasDisplayContent": true,
    "displayMessage": "Instead of waiting 30 seconds you had to spam facecam now you get a 5 minute timeout",
    "textMessageDetails": {
      "messageText": "Instead of waiting 30 seconds you had to spam facecam now you get a 5 minute timeout"
    }
  },
  "authorDetails": {
    "channelId": "UCYC1zf9Dznp-xpe9rwEopLQ",
    "channelUrl": "http://www.youtube.com/channel/UCYC1zf9Dznp-xpe9rwEopLQ",
    "displayName": "Cody Kerley",
    "profileImageUrl": "https://yt3.ggpht.com/ytc/AKedOLQFiwv-x6ukfTOh7pD7WlCe7Ss1AB5wH7QAF53uiQ=s88-c-k-c0x00ffffff-no-rj",
    "isVerified": false,
    "isChatOwner": false,
    "isChatSponsor": true,
    "isChatModerator": true
  }
}

但是,如果我查看这条消息在YouTube聊天本身中的显示方式,用户具有与其级别/持续时间相对应的正确成员资格徽章,具体针对此渠道,并且工具提示还会显示成员资格/赞助商的级别/持续时间:

如何从API获取每条聊天消息的此信息,以便我自己能够正确呈现徽章?

干杯。

推荐答案

如您所说,似乎没有任何官方的Youtube data API v3终结点为Youtube实时聊天消息提供会员徽章。

然而,我对YouTube实时聊天消息进行了反向工程,以下是解决方案:

  1. 通过执行(别忘了用您的YouTube直播视频ID更改VIDEO_ID)来获取以0ofMyAO(似乎有2个都有效)开头的continuation令牌):

    cURL-s‘https://www.youtube.com/live_chat?v=VIDEO_ID’-H‘用户代理:火狐/95’

  2. 使用此continuation内标识通过执行(不要忘记使用您在步骤1中获取的continuation内标识更改CONTINUATION_TOKEN)来获取有关当前YouTube实时聊天消息的所有信息。注意:不要关心密钥,它不是YouTube Data API v3密钥):

    CURL-s‘https://www.youtube.com/youtubei/v1/live_chat/get_live_chat?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8’-H‘内容类型:应用程序/JSON’--数据-原始‘{";context";:{";client";:{";clientName";:";WEB";,";clientVersion";:";2.2022011";}},";continuation";:";CONTINUATION_TOKEN";)‘

  3. 同样,从您在第1步获取continuation令牌的那一刻起,您将获得有关当前YouTube实时聊天消息的所有信息。但是,continuation令牌似乎每隔5分钟过期一次,因此请从第2步的响应中获取一个新令牌。或者通过再次执行第1步。
    注0:在5分钟的时间内,您可以执行步骤2。希望实时收到消息的次数都可以
    注意1:我建议您每隔4分钟更换一次continuation令牌,以免遗漏任何消息

  4. 我让您了解了包含您要查找的信息片段的JSON响应

注意:在步骤1.检索在请求之前发送的最新消息,但它是HTML格式的,这次不是JSON

这篇关于如何获得YouTube即时聊天消息的会员徽章?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆