最終審査も近づき、振り返り企画として、今までどれだけスタンプが押されたのか集計してみた。
具体的な方法は記事後半に書くが、各配信のチャットコメント全体をダウンロードして集計処理を行っている。(メン限配信は対象外)
対象期間は最初の個人配信から2月末まで。
スタンプの追加期間によって大きな差が生じるため、2月だけのランキングも集計した。(これも配信内容によって偏りが出るが)
なお連打されている場合は1個ずつカウントしている。
これで集計ミスってたら恥ずかしいので、ひとつのネタとして見ていただければ。
結果としては、各候補生とも1番押されたスタンプはペンライトだった。
歌枠でみんな連打するものと考えると個人的には納得感がある。
2位以降のランキングは候補生の個性が出ているような気がする。
愛夏
全期間
スタンプ | 名称 | カウント数 |
---|---|---|
penlight | 59386 | |
yappi | 42573 | |
citygirl | 10749 | |
kusa | 8468 | |
tsuhou | 7330 | |
smile | 5596 | |
taiho | 3610 | |
mana | 3514 | |
kawa | 3465 | |
kakuni | 3247 | |
oji | 1573 | |
fight | 1243 | |
nice | 1236 | |
ouji | 1224 | |
taiki | 850 |
2月のみ
スタンプ | 名称 | カウント数 |
---|---|---|
yappi | 4829 | |
kusa | 4596 | |
taiho | 3610 | |
tsuhou | 3045 | |
fight | 1243 | |
nice | 1236 | |
taiki | 850 | |
penlight | 734 | |
kakuni | 610 | |
mana | 542 | |
smile | 477 | |
kawa | 426 | |
oji | 401 | |
citygirl | 398 | |
ouji | 291 |
特筆すべきは「やっぴー!」の多さ。
愛夏を象徴するフレーズで、挨拶だけではない、万能な使いみちはもはや発明と言っていい。
あと「逮捕状」が最近の追加なのにまあまあ上位だったり。
あと「王子」の供給少なくないですか。よろしくお願いします。
宇宙
全期間
スタンプ | 名称 | カウント数 |
---|---|---|
penlight | 87878 | |
san | 17328 | |
support | 12239 | |
wktk | 8149 | |
doyazuru | 7308 | |
cosmin | 7166 | |
doltu | 5884 | |
ktkr | 5556 | |
zuru | 3717 | |
kosu | 3508 | |
mochitsuke | 3181 | |
unnn | 2807 | |
waa | 2519 | |
yarimasita | 2102 | |
teeth | 1422 | |
suprise | 1408 | |
orz | 1239 | |
yes | 1227 | |
chu | 853 | |
syuu | 609 | |
noo | 471 |
2月のみ
スタンプ | 名称 | カウント数 |
---|---|---|
penlight | 6506 | |
support | 1468 | |
cosmin | 1287 | |
yarimasita | 1128 | |
san | 1056 | |
doltu | 752 | |
unnn | 675 | |
wktk | 496 | |
ktkr | 414 | |
doyazuru | 397 | |
yes | 368 | |
teeth | 359 | |
mochitsuke | 340 | |
suprise | 338 | |
kosu | 277 | |
waa | 260 | |
zuru | 216 | |
chu | 186 | |
syuu | 162 | |
orz | 56 | |
noo | 49 |
個人的に注目したのは「support」の多さ。
Only UpやGetting Over it、AC6などの困難に挑戦してきた宇宙の軌跡が、宇宙星人の「support」の数に現れている。
上手くいったときには「ドヤずる」や「やりました!」で褒めたい。
ちなみに2月に歌枠がないのにペンライトが多いのはダンマクカグラ配信があったため。
レトラ
全期間
スタンプ | 名称 | カウント数 |
---|---|---|
penlight | 109588 | |
pachipachi | 37191 | |
kusa | 18206 | |
kaminari | 11790 | |
iine | 9851 | |
chao | 8027 | |
letoranora | 4504 | |
vam | 4074 | |
osu | 3874 | |
letoranoto | 3392 | |
letoranole | 3364 | |
kao | 2814 | |
ooo | 2354 | |
dog | 2275 | |
sword | 1566 | |
atsu | 1490 | |
mic | 1458 | |
kp1 | 1050 | |
kp2 | 920 | |
sunnono | 808 | |
sunnosu | 798 | |
oog | 709 | |
doo | 705 | |
hehehe | 704 | |
out | 366 |
2月のみ
スタンプ | 名称 | カウント数 |
---|---|---|
kusa | 5160 | |
pachipachi | 2952 | |
chao | 794 | |
penlight | 689 | |
iine | 656 | |
dog | 597 | |
atsu | 407 | |
letoranoto | 321 | |
letoranora | 315 | |
vam | 307 | |
osu | 290 | |
letoranole | 289 | |
kp2 | 260 | |
kp1 | 257 | |
kaminari | 175 | |
ooo | 169 | |
mic | 132 | |
kao | 109 | |
sunnosu | 103 | |
hehehe | 100 | |
sunnono | 80 | |
sword | 78 | |
out | 71 | |
oog | 39 | |
doo | 37 |
ペンライトのスタンプは全員1位にランクインしているが、レトラのペンライトの数は頭一つ抜けている。 誕生日配信が歌枠だったこともあるが、レトラの歌を聴くとつい連打したくなってしまう力がある。それから草を連打したくなるトーク。 意外と「アウト」が少ないのは、リスナーのもっとやれという気持ちの現れではないだろうか(無責任)。 2月の「パチパチ」が多いのはPoppy Playtime2&3の耐久配信と有野課長の挑戦状の影響が大きい。
まとめ
数字に対して勝手に主観的なコメントを付けてしまったが、気軽に押されたスタンプ達にもリスナーの気持ちが乗っているんだよな~
THE LAST STATEMENTでも今までのたくさんのペンライトのスタンプ思い出してほしいな~~という気持ちで書きました。
集計方法
ここから下は技術的な部分の解説。
動画のダウンロードと同じく、チャットコメントのダウンロードも規約的にアレな感じはするが、私としては引用の範囲内と理解している。
チャットコメントのダウンロードは「yt-dlp」というツールを使用。元々動画をダウンロードするためのツールだが、チャットコメントなどもダウンロードできる。
python版もあるが、自分は非プログラマーなのでWindows用バイナリ版を使用。とはいえコマンドラインで操作するソフトなので若干ハードルは高い。
参考:推しの全動画を一括ダウンロードする【YouTube / yt-dlp / 鈴原るる】 – 忘却まとめ
yt-dlp.exe -o "D:/chat/%(upload_date)s - %(title)s - [%(id)s].%(ext)s" -v "https://www.youtube.com/@TomoriManaka" --skip-download --youtube-skip-dash-manifest --write-sub
上記のコマンドはDドライブのchatというフォルダに、愛夏のチャンネルのライブ配信のチャットコメントをダウンロードするという内容になっている。チャットコメントは配信ごとにjson形式で保存される。
プログラマーならパーサーを自分で書けるのだろうが、非プログラマーの自分はテキストエディタで加工する。
一つ一つのコメントは下記のような1行になっている。
{"clickTrackingParams": "CAEQl98BIhMIgdbeysjzgwMVaMByCR08VQaN", "replayChatItemAction": {"actions": [{"clickTrackingParams": "CAEQl98BIhMIgdbeysjzgwMVaMByCR08VQaN", "addChatItemAction": {"item": {"liveChatTextMessageRenderer": {"message": {"runs": [{"text": "お餅がんばれ"}, {"emoji": {"emojiId": "UCuWoH9mx0EgT69UyVxaw1NQ/yRB8ZMrxILGJ_9EP95SPiA8", "shortcuts": [":_penlight:", ":penlight:"], "searchTerms": ["_penlight", "penlight"], "image": {"thumbnails": [{"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w24-h24-c-k-nd", "width": 24, "height": 24}, {"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w48-h48-c-k-nd", "width": 48, "height": 48}], "accessibility": {"accessibilityData": {"label": "penlight"}}}, "isCustomEmoji": true}}, {"text": "お餅がんばれ"}, {"emoji": {"emojiId": "UCuWoH9mx0EgT69UyVxaw1NQ/yRB8ZMrxILGJ_9EP95SPiA8", "shortcuts": [":_penlight:", ":penlight:"], "searchTerms": ["_penlight", "penlight"], "image": {"thumbnails": [{"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w24-h24-c-k-nd", "width": 24, "height": 24}, {"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w48-h48-c-k-nd", "width": 48, "height": 48}], "accessibility": {"accessibilityData": {"label": "penlight"}}}, "isCustomEmoji": true}}]}, "authorName": {"simpleText": "わんおぶ"}, "authorPhoto": {"thumbnails": [{"url": "https://yt4.ggpht.com/ytc/AIf8zZQJ2_nVuXgx_usbiHS3O4KUxFwGPGPgZ3EMtPJ2lA=s32-c-k-c0x00ffffff-no-rj", "width": 32, "height": 32}, {"url": "https://yt4.ggpht.com/ytc/AIf8zZQJ2_nVuXgx_usbiHS3O4KUxFwGPGPgZ3EMtPJ2lA=s64-c-k-c0x00ffffff-no-rj", "width": 64, "height": 64}]}, "contextMenuEndpoint": {"clickTrackingParams": "CAEQl98BIhMIgdbeysjzgwMVaMByCR08VQaN", "commandMetadata": {"webCommandMetadata": {"ignoreNavigation": true}}, "liveChatItemContextMenuEndpoint": {"params": "Q2g0S0hBb2FRMGszVVhsalQzazNiMDFFUmxKWVgyeEJhMlF6YXpCSU5XY2FLU29uQ2hoVlEzVlhiMGc1Ylhnd1JXZFVOamxWZVZaNFlYY3hUbEVTQ3pCeU1UTjNNMU5sU2xSaklBRW9BVElhQ2hoVlEwNXBNMnczZWxoaWMwMW9PVmR1TFdJdFJ6aGhiRUU0QWtnQlVBRSUzRA=="}}, "id": "ChwKGkNJN1F5Y095N29NREZSWF9sQWtkM2swSDVn", "timestampUsec": "1705837134540116", "authorBadges": [{"liveChatAuthorBadgeRenderer": {"customThumbnail": {"thumbnails": [{"url": "https://yt3.ggpht.com/whMErP5byEioiSvmvaPhOzQJ1l674_affovJU9bjcLsnusrb9zpZCb6lvwcnfQCtixNBDjbJ=s16-c-k", "width": 16, "height": 16}, {"url": "https://yt3.ggpht.com/whMErP5byEioiSvmvaPhOzQJ1l674_affovJU9bjcLsnusrb9zpZCb6lvwcnfQCtixNBDjbJ=s32-c-k", "width": 32, "height": 32}]}, "tooltip": "Member (6 months)", "accessibility": {"accessibilityData": {"label": "Member (6 months)"}}}}], "authorExternalChannelId": "UCNi3l7zXbsMh9Wn-b-G8alA", "contextMenuAccessibility": {"accessibilityData": {"label": "Chat actions"}}, "timestampText": {"simpleText": "38:52"}, "trackingParams": "CAEQl98BIhMIgdbeysjzgwMVaMByCR08VQaN"}}, "clientId": "CI7QycOy7oMDFRX_lAkd3k0H5g"}}], "videoOffsetTimeMsec": "2332174"}}
このうち、メン限スタンプの部分はここ。これでスタンプ1個分だ。
{"emoji": {"emojiId": "UCuWoH9mx0EgT69UyVxaw1NQ/yRB8ZMrxILGJ_9EP95SPiA8", "shortcuts": [":_penlight:", ":penlight:"], "searchTerms": ["_penlight", "penlight"], "image": {"thumbnails": [{"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w24-h24-c-k-nd", "width": 24, "height": 24}, {"url": "https://yt3.ggpht.com/YzQd02ZIlyapj8CJ0Mhhv3v0bQvZKT94vHYoBZs28ZYQScL3pBV6ZjFPn278W1KF4AguI3lm=w48-h48-c-k-nd", "width": 48, "height": 48}], "accessibility": {"accessibilityData": {"label": "penlight"}}}, "isCustomEmoji": true}},
「"shortcuts": [":_penlight:"」を見ると、ペンライトのスタンプであることがわかる(本来は半角アンダーバーだが斜体に変換されるため全角で記載)。メン限スタンプは名前の頭にアンダーバーが付く。
集計にあたり、正規表現「shortcuts\": [\":_.+?:」を検索対象とすることで、メン限スタンプのみをカウントする。
テキストエディタはサクラエディタを使用。検索機能でGrepというものがあり、検索でヒットした部分のみを別ファイルで保存することができる。
上記画像の条件で検索すると、D:\chat\manakaフォルダにある全てのファイルから、条件にマッチした部分を抽出して1つのファイルにまとめてくれる。(下記)
ここから余計な行を削除し、余計な部分を置換機能で削り、スタンプ名だけになったらExcelにコピペして集計して完了。
やろうと思えば、どの配信でどのスタンプが多かったかなどの集計も可能と思われる。