【Python】TikTokApiを使ったTikTok分析

【Python】TikTokApiを使ったTikTok分析 プログラミング

「プログラムを利用して、TikTokでアカウント検索を行いたい」
「自動的にTikTokでハッシュタグ検索を行いたい」
「TikTokを利用したシステム開発を行いたい」

このような場合には、TikTokApiがおススメです。
この記事では、TikTokApiについて解説しています。

本記事の内容

  • TikTokApiのV4とV5の違い
  • TikTokApi V5の動作確認
  • TikTokApiによるアカウント検索
  • TikTokApiによるハッシュタグ検索

それでは、上記に沿って解説していきます。

TikTokApiのV4とV5の違い

TikTokApiを知らない場合は、次の記事をご覧ください。

上記記事では、TikTokApi V4について説明しています。
まず、そこに注意が必要です。

2022年4月時点では、TikTokApi 5.1.1(V5)が最新版となります。
ただし、インストールに関してはV4とV5で違いはありません。
そのまま、上記の記事通りで問題ないです。

相変わらずWindowsでは簡単です。
そして、Linux系では難しいでしょう。

しかし、Docker版も用意されています。
Windows以外であれば、Docker版の利用を選択肢にするのもよいでしょう。

よって、TikTokApiのインストールはそれほど気にする必要はありません。
インストールされるパッケージは、若干変わっていますけど。

それよりも、TikTokApiの利用方法が大きく異なります。
詳細は、公式に記載されています。

This package has been difficult to maintain due to it's structure, difficult to work with since the user of the package must write parsing methods to extract information from dictionaries, more memory intensive than it needs to be (although this can be further improved), and in general just difficult to work with for new users.

As a result, I've decided to at least attempt to remedy some of these issues, the biggest changes are that

The package has shifted to using classes for different TikTok objects resulting in an easier, higher-level programming experience.
All methods that used to return a list of objects have been switched to using iterators, to hopefully decrease memory utilization for most users.

いろいろ言っていますが、コーディングの仕方が変わっています。
簡単に言うと、V4で動いていたコードがV5では動きません。

したがって、TikTokApiのV4とV5は別物と捉えた方がよいでしょう。

以上、TikTokApiのV4とV5の違いについて説明しました。
次は、TikTokApi V5の動作確認を説明します。

TikTokApi V5の動作確認

TikTokApi V4で動いていた動作確認用のコードは、以下(整理済み)。

TikTokApi V4用

from TikTokApi import TikTokApi
api = TikTokApi.get_instance()
results = 5
 
trending = api.by_trending(count=results) 
 
for tiktok in trending:
    print(tiktok['desc'])
 
print(len(trending))

しかし、このコードはTikTokApi V5では動きません。
実行すると、次のようなエラーが出ます。

AttributeError: type object 'TikTokApi' has no attribute 'get_instance'

これはまさに、V5の大きな変更点の一つです。
インスタンスを作成する必要がなくなっています。

上記コードをV5で動くものに変更したのが、以下のコードです。

TikTokApi V5用

from TikTokApi import TikTokApi

results = 5

with TikTokApi() as api:
    trending = api.trending.videos(count=results)
    for tiktok in trending:
        print(tiktok)

実行してもエラーは出ません。
ただし、結果も出ません・・・

おそらく、トレンドを本当に取得できていないのでしょう。
その原因は、わかりません。
地域の問題なのか?時期的な問題なのか?その辺は、不明です。

ただ、エラーが出ないからと言って、このままでは不安です。
ということで、他の関数を試してみましょう。
もちろん、 TikTokApi V5を使っての検証です。

以上、TikTokApi V5の動作確認を説明しました。
次は、TikTokApi によるアカウント検索を説明します。

TikTokApiによるアカウント検索

TikTokApiを使えば、アカウント検索が簡単にできます。
アカウント「hikaru」を検索するコードは、以下。

from TikTokApi import TikTokApi

with TikTokApi() as api:
    for user in api.search.users("hikaru"):
        print(user.username)

上記コードの実行結果は、以下となります。
デフォルトでは28個まで取得可能です。

hikarutktk
hikarukinnpatu
hikaru_official79
hikaru7731
hikaru20910
tadanokarisuma
46.hika
76601032
zippergirl_
hikaru_s15
・・・

これが正しいかどうか確認してみましょう。
TikTok上で実際に検索した結果は、次のようになります。

表示順序も同じですね。
あと、TikTokApi V5がちゃんと動いているのも確認できました。

実際にデータが返ってこないと、やはり不安です。
続けて、ハッシュタグ検索も検証します。

以上、TikTokApiによるアカウント検索を説明しました。
次は、TikTokApiによるハッシュタグ検索を説明します。

TikTokApiによるハッシュタグ検索

TikTokApiを使えば、ハッシュタグ検索も簡単にできます。
ハッシュタグ「大谷翔平」を検索するコードは、以下。

from TikTokApi import TikTokApi

with TikTokApi() as api:
    tag = api.hashtag(name="大谷翔平") 
    for video in tag.videos():
        print(video.id)

上記コードの実行結果は、以下となります。

6982556658178264321
6971015453237972226
7011085241121099010
6962709134739246338
6992466102781545729
7068849256169311490
7050717745767353601
6941761469574941954
7042450831836433711
6960136991719656706

・・・

デフォルトでは何個取得できるのかは、情報が見当たりません。
とりあえず、今回は30個の動画データ(ID)が取得できました。

アカウント検索と同じように、結果が正しいかどうか確認してみましょう。
TikTok上で実際にタグ検索した結果は、次のようになります。

TikTokApiでは、この順番通りに動画を取得できています。
問題ありませんね。

以上、TikTokApiによるハッシュタグ検索を説明しました。

タイトルとURLをコピーしました