同期の休日のTikTokデータで遊んだ話

3000文字超えの長文です。この記事に根拠や責任は伴いません。

導入

TikTokを見ていてぼんやりと考えていた。彼らの目的は「芸人として売れること」であって、「面白一般人インフルエンサーになること」ではない。目的を達成する必要な手段としてTikTokを利用しているのかな、と。

仕事で機械学習を使って会社の売上を予測することをしている。ふと、彼らのTikTokの動画をデータにして傾向を見られたら面白いよな、と思った。彼らのアカウントに入れるわけもないので、外部の一般ユーザーが無課金でどの程度まで情報を取得できるのか、やってみた。

参考

他にも英語のサイトとか参考にしたけど忘れた。動作環境とかバージョンとか書くのめんどくさいので、気になる方はTwitterのDMください。

コード

import nest_asyncio
nest_asyncio.apply()
from TikTokApi import TikTokApi
import json
import csv

def get_cookies_from_file():
    with open(r'exported-cookies.json') as f:
        cookies = json.load(f)

    cookies_kv = {}
    for cookie in cookies:
        cookies_kv[cookie['name']] = cookie['value']

    return cookies_kv


cookies = get_cookies_from_file()


def get_cookies(**kwargs):
    return cookies


verifyFp='xxxxxxxxxx'

api = TikTokApi(custom_verifyFp=verifyFp)

api._get_cookies = get_cookies  
datalists = []

for video in api.search.videos('20dachi',count=2000):
    videoinfo = video.as_dict
    
    title = videoinfo['desc']
    title_index = title.index('#')
    
    datalist = [video.create_time,title[:title_index],videoinfo['stats']['playCount'],videoinfo['stats']['diggCount'],videoinfo['stats']['shareCount'],videoinfo['stats']['commentCount']]
    datalists.append(datalist)

with open('20dachi.csv', 'a') as f:
    writer = csv.writer(f)        
    writer.writerows(datalists)

同期の休日のIDである「20dachi」を検索。取得した情報のうち、投稿時間、タイトル、再生回数、いいね数、共有数、コメント数を抜き出してcsv形式で出力。

結果

IDが20dachiと完全一致する物しか検索で引っかからないように正規表現で書き換えたんだけど(上記のコード範囲外)、上手くいかなくて470本くらい動画があるはずなのに、290本くらいしか取得できなかった。TikTok自体のルールが厳しくて、非公式TikTokAPIで取得するのはこれが限界かもしれない。

20dachi.csv

再生回数を時系列に並べたグラフと、再生回数Top10。

再生回数グラフ
再生回数Top10

TikTokの仕様だと思われるが、再生回数とかは100万(1M=1×10^6)回を超えると有効数字2桁になり、それまでは有効数字4桁になるっぽい。

長峯くん曰く2022/5/28に初めてバズったとのことで、おおよその傾向はグラフから掴める。TikTokの特性的にジワジワ再生回数が伸びるというトレンドはありそうだが、コンテンツ力の問題である気がした。

そこで、どんな動画が伸びやすいのか遊んでみた。

ランキング

以下の表は再生回数、いいね数、共有数、コメント数を経過日数で割り、それぞれTop10にしたもの。経過日数は投稿日時から現在(2023/4/26)までの日数である。データの取得日が違うので、上記のTop10とは大きく異なることをご承知願いたい。

再生回数/日Top10

再生回数の伸び率ともいえるであろう。「お風呂上がりっていっつもこう」の動画が圧倒的に伸びている。おそらくプロモーション。「新生活っていっつもこう」もそう。プロモーションは、普段と違うユーザーが見るから伸びやすいのか。一方で「コレってうちの地元だけ?」「多分コイツダメ夫」は相当にウケが良かったのか。「多分コイツダメ夫」については前も同じような動画出してた気がするから、リメイクが効いたのか。

いいね数/日Top10
共有数/日Top10
コメント数/日Top10

コメント数の伸び率に関しては、「私の場合はこうだったよ」みたいな自分のことを発信したくなるコンテンツはコメントが誘発しやすいだろう。TikTokのおすすめにでてくるアルゴリズムってこういうカウントを稼ぐほど上位に出てくるのだろうし、好循環に至るわけか。

いいね数の伸び率については最近の動画ばかりだ。投稿されたの動画を条件反射的にいいねするユーザー、おそらくフォロワー数に比例するのでは。フォロワーであれば投稿直後の動画を再生する可能性も高いし、いいねをする可能性も高い。逆に最新ではない動画をいいねするユーザーは少ない気もする。

共有数の伸び率はユーザーが周りに共感を求めやすい動画が多いとか。共有って何をカウントしているんだろう。外部アプリに飛んだら判定しているのか。

取得したデータには含んでいないが、リピート回数、一時停止回数も重要そう。再生回数だけでいえば、途中で再生停止してもカウントされるわけだし、人の目に如何に触れるか、そしてタップしたくなるようなサムネが大事っぽい。あとは、これらの要素がおおよそフォロワー数に比例するとしたら、「この人の動画を今後も見たい」と思わせるような、将来性と新規性?

何となく、どのランキングにも入っている動画はあまり考察のネタにならず、相関関係を確かめた方が良い。一方で、特定のランキングにしか入っていない動画を見極める方が、的を射た考察になりそう。

「お風呂上がりっていっつもこう」は再生回数伸び率がダントツなのに、他のランキングには入っていない。プロモーションから流れてきて再生はされたけど、途中離脱が多かったとか、刺さらなかったとかありそう。「新生活っていっつもこう」も同様。

「あざといなぁ、なヤツ」は共有数伸び率ランキングにイン。そもそも共有数伸び率ランキング、女性関連のネタが多い。動画を誰かに共有している段階で共有相手がいるということであり、なるほどね、そういうことね。

いいね数伸び率ランキングでいうと、「こいつ嫌なやつだよね」みたいな動画が多い。スカッとする感じ。多くは語らないが、ゾッとした。


いいね数/再生回数Top10

いいね数を再生回数で除算をしたもの。再生回数のカウント方法がよく分からなかったのだが、仮に再生回数といいね数が1ユーザー1カウントだとして、このランキングは好感度を意味する。でも誤差レベルの違いなので、あまり参考にはならなさそう。あと前提として1ユーザー1カウントでなければこのランキングは意味をなさない。「いっつもこう」シリーズが多い。

個人的には「春を感じる瞬間」が大好きです。

相関関係

再生回数と各項目の相関関係(右下は相関係数)

相関係数を見る限り、どれも大して相関していない。強いていうなら、再生回数といいね数は関係ありそう、というくらい。グラフ出力して思ったけど、これあんまり面白くなかった。

今後

気が向いたらやる。

今後のタスクリスト

総括

同期の休日は面白いので、見てください。

この記事が気に入ったらサポートをしてみませんか?