コメントビューア用。
OAuthが要るようなAPIは使わず、未登録で取得できるコメントを取得。
あくまで執筆時点の情報です。仕様が変わる可能性もあるのであしからず。
1. 配信IDを確認する
https://reality.app/viewer/{media_id}
- 現状はブラウザから見る手段が無さそうなので、URLをツイートして共有するなどが必要です。
- 少なくともこのIDさえわかればOK
2. WebSocketでコメントサーバに接続する
wss://comment.reality.app/?media_id={media_id}
繋ぐだけで取得できる。
接続直後、それまでのコメントがドバッと送られてくる。
以降は適宜来る。
メッセージ定義
{
/**
* 配信ID
*/
"media_id": number,
/**
* 26桁のランダムな英数字(大文字や記号は今のところなし)なので、ユーザIDっぽい。システムの場合は空文字。
*/
"vlive_id": string,
/**
* ユーザ名
*/
"nickname": string,
/**
* アイコンURL
* @example "https://reality-public.akamaized.net/viewer/img/user_icon/system_default_64.png"
*/
"icon_url": string,
/**
* コメント日時
* @example "2021-08-23T17:30:21Z"
*/
"created_at": string,
/**
* メッセージ種別。
* - 1: 通常のコメント
* - 2: いいねしたよ
* - 6: ギフト(?)
* - 8: 入室メッセージ
* - 9: システムメッセージ
*/
"content_type": number,
/**
* メッセージ
* @example "おはよう"
* @example "xxxさんがいいねしたよ"
* @example "640,アイマスク,100,アイマスクをあげました"
* @example "配信時間が15分を突破したよ!"
*/
"content": "配信時間が15分を突破したよ!",
/**
* 不明。だいたい0
*/
"deco": number,
/**
* 配信者コメントか否か(未確認)
*/
"is_self": boolean
}
とりあえずNode.jsで動かす
const ws = require('ws');
const media_id = 配信IDをここに;
const soc = new ws('wss://comment.reality.app/?media_id=' + media_id);
soc.onmessage = (event) => {
const json = JSON.parse(event.data);
console.log(json.content);
};