Youtube LiveChat を、視聴者側で応援するためのヘルパースクリプト郡です。
Tampermonkey • Home と一緒に使います。
youtube_livechat_emitter.user.js
- Youtube ライブ視聴者画面の LiveChat を DOM から抽出します。
- 通常チャットが追記されたタイミングで
livechat
Event をdocument
オブジェクトへ放出します。 - LiveChat を視聴画面からデタッチしている場合は多分反応しません。
- 将来的に Youtube 側の仕様が変更された場合は、反応しなくなる可能性があります。
Event リッスン例:
document.addEventListener("livechat", (e) => console.info(e.data));
// e.data.timestamp : "8:38 AM", "1:59:48"
// e.data.message : "text :emoji: :_memberEmoji:"
// e.data.authorName : "handleName"
// e.data.authorType : "", "member", "moderator"
// e.data.getHtml(): "non-escaped plain message, <img> and so on"
// e.data.getAuthorImgSrc(): "https://yt4.ggpht.com/..."
- Youtube 動画視聴者画面の下部にトースト通知できる機能を追加します。
document
オブジェクトへ発行されたtoaster
Event に反応します。
Event 発行例:
const evt = new Event("toaster", { "bubbles": false, "cancelable": false });
evt.data = { message: "動作✅", isHTML: true };
document.dispatchEvent(evt);
youtube_livechat_router.user.js
- youtube_livechat_emitter によって放出される
livechat
Event のうち、moderator
による通常チャットを youtube_toaster へ送り込みます。
youtube_livechat_important_capture.user.js
- youtube_livechat_emitter によって放出される
livechat
Event のうち、moderator
による通常チャットを蓄積し、Report
コマンドメニューより確認できるようにします。