Skip to content

MORIMOTO520212/youtubelive-chat-mining

Repository files navigation

Wordcloud for YouTube Live

YouTube ライブチャットを分析する

セットアップ

npm i

起動

  • バックエンドサーバーの起動
node get_chat.js
  • ウェブサーバーの起動
npm run start

※ ターミナルが2つ必要になります。

特徴

・単語をいつまで記憶しておくかを考慮する
・古い単語は表示しない
・ワードクラウドの散らばり具合を調整する
・関連する単語同士を線を引いて表す

ギャラリー

単語間の関連付け

例えば、「誕生」と「おめでとう」の単語は互いに関連性があり、このように線で引かれる。

TODO

・言語フィルター

get_chat.js

Get Continuation key

GET "http://localhost:3000/continuation?id=<video Id>"

Get chat information

GET "http://localhost:3000/chat?id=<video Id>&continuation=<continuation key>"

形態素解析

node_words
node_wordsには取得した単語が500個格納されている。 その中から、ノードの表示は時間順に指定数表示される。

var node_words = [
    {
        word: "word",
        count: 10,
        time: 16429033,
    },
    { ... },
    { ... },
];

除外される文字

意味の持たない文字はワードクラウドに表示しない。

var exception_words = [
    '?', '?', '~', '・', '!', '!', 
    '「', '」', '(', ')', '(', ')',
    '[', ']', '/', '、', '【', '】']

単語の関係を検出する

node_wordsの単語から2つの組み合わせを作り、chatItems[..]['text']にどれくらい含まれるのかを調べる。
含まれた数が10個以上となる場合、ノード間にエッジを付ける。

live_chat ライブ終了後のレスポンス内容

{
    responseContext: {
        mainAppWebResponseContext: {loggedOut: true}
    },
    serviceTrackingParams: Array(4),
    visitorData: "CgtVMGF1Mmd6TnQ4MCjHkqmUBg%3D%3D",
    webResponseContextExtensionData: {
        hasDecorated: true
    }
}

About

Generate a real-time Wordcloud from YouTube Live Chat.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published