【ヴイアラ】今までに一番押されたメン限スタンプを集計した

最終審査も近づき、振り返り企画として、今までどれだけスタンプが押されたのか集計してみた。
具体的な方法は記事後半に書くが、各配信のチャットコメント全体をダウンロードして集計処理を行っている。(メン限配信は対象外)
対象期間は最初の個人配信から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にコピペして集計して完了。
やろうと思えば、どの配信でどのスタンプが多かったかなどの集計も可能と思われる。