【发布时间】:2022-01-08 16:28:59
【问题描述】:
我一直在使用 YouTube 实时聊天 API 来渲染 YouTube 实时流聊天,但我一直不知道如何处理表情。
用于实时聊天消息的 YouTube API 似乎只以纯文本形式返回消息,而不是关于表情的元数据。这本身很好,因为纯文本中有表情的标准语法,但我正在努力将它们转换为图像。
如果我查看从 YouTube API 获得的响应,除了纯文本消息中的内容之外,我看不到有关表情的任何信息:
{
"kind": "youtube#liveChatMessage",
"etag": "UaRmhczzavJeCA9S1_s8J_4MHD0",
"id": "LCC.CjgKDQoLd1VwYUIzYTdkVW8qJwoYVUNEWExPVjNTMEdUd21EOFY4R1A2dzlREgt3VXBhQjNhN2RVbxJFChpDT25vOHN6SW92VUNGZUFJMWdBZE85b1BfZxInQ1BhdG12UEhvdlVDRlhzNFRBb2RVSE1BeVExNjQxNjU5MDY5OTU3",
"snippet": {
"type": "textMessageEvent",
"liveChatId": "Cg0KC3dVcGFCM2E3ZFVvKicKGFVDRFhMT1YzUzBHVHdtRDhWOEdQNnc5URILd1VwYUIzYTdkVW8",
"authorChannelId": "UC_MMOdc84fer50_SIPiPX1Q",
"publishedAt": "2022-01-08T16:24:28.363Z",
"hasDisplayContent": true,
"displayMessage": ":yougotthis::elbowcough:",
"textMessageDetails": {
"messageText": ":yougotthis::elbowcough:"
}
},
"authorDetails": {
"channelId": "UC_MMOdc84fer50_SIPiPX1Q",
"channelUrl": "http://www.youtube.com/channel/UC_MMOdc84fer50_SIPiPX1Q",
"displayName": "Blake Nolan",
"profileImageUrl": "https://yt3.ggpht.com/ytc/AKedOLSVNcUaOuoH49GXdG1Zlam0uBMJYJXUI5h_pHtMr-rOVr5hDnjzspewBUVqgKyw=s88-c-k-c0x00ffffff-no-rj",
"isVerified": false,
"isChatOwner": false,
"isChatSponsor": false,
"isChatModerator": false
}
}
但是,如果我查看此消息在 YouTube 聊天中的显示方式,则会呈现表情:
我缺少什么来执行此查找和转换,以便我可以从聊天消息中呈现表情?
干杯。
【问题讨论】:
-
首先,有些表情实际上并不存在,例如 YouTube 表情不是国际标准表情(它是由 YouTube 为 YouTube 设计的)。为什么不保存所有表情并制作转换表?将其公开将消除将来尝试与您做同样事情的人的痛苦。由于 YouTube 代码混淆,我看不到任何自动化此过程的方法。
-
Unicode 表情以它们的 unicode 形式出现,这根本不是问题——我的问题是处理自定义表情,它以
:emote:的形式以纯文本形式出现。查找表会很棒,但我不确定 YouTube 在哪里公开了全局 + 频道表情的此表情信息。作为参考,Twitch 也有自定义表情,其 API 响应包含有关如何将这些表情解析为可从其 CDN 呈现的图像的信息。
标签: youtube youtube-api youtube-data-api youtube-livestreaming-api