【Python】TikTokの分析に使えるTikTokApiのインストール

【Python】TikTokの分析に使えるTikTokApiのインストール プログラミング

「TikTokのAPIが使い物にならない」
「TikTokのデータをPythonで取得したい」
「TikTokをスクレイピングしようと考えている」

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

本記事の内容

  • TikTokApiとは?
  • TikTokApiのシステム要件
  • TikTokApiのインストール
  • TikTokApiの動作確認

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

TikTokApiとは?

TikTokApiは、TikTokから情報を取得するためのPythonライブラリです。
TikTokApi自体は、非公式なAPIラッパーという位置づけになります。

機能としては、トレンド情報や特定のユーザーの情報を取得できます。
それら以外にも、多くのことが可能です。

ここで、非公式なAPIラッパーという表現を説明しておきます。
TikTokには、いくつか公式のAPIが存在しています。

しかし、それらの公式APIは次の残念な点があります。

  • 有料(TikTok Marketing API)
  • 使い物にならない(Embedded Videos)

つまり、TikTokは無料で使えるデータを提供する気はないということです。
じゃあ、スクレイピングでデータを取得するしかありませんね。

というわけで、スクレイピングする人々が現れることになります。
その過程で開発されたのが、TikTokApiということでしょう。

TikTokApiは、TikTok専用のスクレイピングライブラリと言えます。
なお、TikTokApiのスポンサーには、TikAPIというサービス会社が存在しています。

TikAPIは、TikTok非公式のAPIを提供するサービスのようです。
「TikTokApiは無料です!!」と但し書きがあります。
勘違いする人がいるかもしれませんからね。

このようなグレーのビジネスが存在するほど、TikTokには価値があるということでしょう。
そんな価値あるデータを無料で取得できるのが、TikTokApiということです。

以上、TikTokApiについて説明しました。
次は、TikTokApiのシステム要件を確認します。

TikTokApiのシステム要件

現時点(2021年10月末)でのTikTokApiの最新バージョンは、4.0.4となります。
この最新バージョンは、2021年9月23日にリリースされています。
更新頻度は、多めです。

おそらく、TikTokの仕様変更に合わせて更新しているのでしょう。
そのため、TikTokApiは常時最新を利用する必要があると言えます。

TikTokApiのシステム要件は、以下に注意する必要があります。

  • OS
  • Python
  • Playwright

それぞれを下記で説明します。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

WindowsとLinux(Ubuntu)は、実際に動作確認済みです。
ただし、Windows以外は導入の難易度が上がるでしょう。

それは、下記で説明するPlaywrightが関係しています。

Python

サポート対象となるPythonのバージョンは、以下となります。

  • Python 3.7
  • Python 3.8
  • Python 3.9

要するに、古いPythonはダメということです。
次のPython公式開発サイクルに従っていれば、問題はないはずです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

ただ、Python 3.10はまだ様子見の方がよいでしょう。
依存関係のあるライブラリなどで、まだ問題があるのかもしれません。

PlayWright

「OS」の部分で触れたPlaywrightです。
Playwrightは、ブラウザを操作するNode.jsベースのライブラリになります。

TikTokApiは、SeleniumではなくPlaywrightを利用しています。
このPlaywrightのインストールが、OSで異なります。
難易度が、明らかに違います。

それは、エラーメッセージからもわかります。
まずは、共通のエラーメッセージから確認しましょう。

WindowsとLinux(Ubuntu)両方において、Playwrightが未インストールの場合は次のメッセージが出ます。
多分、macOSも同じだと思います。

╔═════════════════════════════════════════════════════════════════════════╗ 
║ Looks like Playwright Test or Playwright was just installed or updated. ║ 
║ Please run the following command to download new browsers:              ║ 
║                                                                         ║ 
║     playwright install                                                  ║ 
║                                                                         ║ 
║ <3 Playwright Team                                                      ║ 
╚═════════════════════════════════════════════════════════════════════════╝ 

この状態で「python -m playwright install」を実行した後が、OSで異なります。
Windowsにおいては、もう何もエラーが出ません。

しかし、Linuxにおいては以下のエラーが出るのです。
長いので、一部のみ抜粋。

  Missing libraries we didn't find packages for: 
      liblcms2.so.2

もちろん、環境によっては出ないこともあるのでしょう。
そして、これを解決したら、次は以下のエラーが出ます。

╔════════════════════════════════════════════════════════════╗ 
║ Host system is missing a few dependencies to run browsers. ║ 
║ Please install them with the following command:            ║ 
║                                                            ║ 
║     sudo npx playwright install-deps                       ║ 
║                                                            ║ 
║ <3 Playwright Team                                         ║ 
╚════════════════════════════════════════════════════════════╝

これを解決するためには、npm(Node.js)をインストールするところからです。
ただし、Node.jsをインストールしなくてもよい方法が存在します。
その方法を下記で説明しています。

明らかに、WindowsよりはPlaywrightを動かすハードルが高いです。
おそらく、macOSも同じではないでしょうかね。

まとめ

Windowsが手元にある場合は、Windowsでのインストールから始めましょう。
そして、Pythonのバージョンに関しては、古くないPythonを使います。

このことだけを意識すれば、TikTokApiのシステム要件はそんなに難しくありません。

以上、TikTokApiのシステム要件を説明しました。
次は、TikTokApiをインストールします。

TikTokApiのインストール

検証は、次のバージョンのPythonで行います。

>python -V   
Python 3.9.7

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.3.1
setuptools 58.3.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、TikTokApiのインストールです。
TikTokApiのインストールは、以下のコマンドとなります。
この順番通りにコマンドを実行します。

pip install TikTokApi 
python -m playwright install

インストールは、しばらく時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package            Version 
------------------ --------- 
async-generator    1.10 
attrs              21.2.0 
certifi            2021.10.8 
cffi               1.15.0 
charset-normalizer 2.0.7 
cryptography       35.0.0 
greenlet           1.1.2 
h11                0.12.0 
idna               3.3 
outcome            1.1.0 
pip                21.3.1 
playwright         1.16.0 
pycparser          2.20 
pyee               8.2.2 
pyOpenSSL          21.0.0 
requests           2.26.0 
selenium           4.0.0 
selenium-stealth   1.0.6 
setuptools         58.3.0 
six                1.16.0 
sniffio            1.2.0 
sortedcontainers   2.4.0 
TikTokApi          4.0.4 
trio               0.19.0 
trio-websocket     0.9.2 
urllib3            1.26.7 
websockets         10.0 
wsproto            1.0.0

依存するパッケージは、多いです。
そのため、Python仮想環境の利用をおススメします。

Windowsなら、IDEにPyCharmを使えば簡単に仮想環境を利用できます。
プロジェクト(今回ならTikTokApi専用)毎に仮想環境となります。

また、次の記事のようにコマンドでも簡単に仮想環境を利用できます。
GUIのない Linuxサーバーなら、こちらが一般的となるでしょう。

以上、 TikTokApiのインストールについて説明しました。
最後は、 TikTokApiの動作確認を行います。

TikTokApiの動作確認

TikTokApiの動作確認は、次のコードで行います。
公式に掲載されているサンプルコードを少し変更しています。

from TikTokApi import TikTokApi
api = TikTokApi.get_instance()
results = 5

# Since TikTok changed their API you need to use the custom_verifyFp option.
# In your web browser you will need to go to TikTok, Log in and get the s_v_web_id value.
trending = api.by_trending(count=results, custom_verifyFp="")

for tiktok in trending:
    # Prints the id of the tiktok
    print(tiktok['desc'])

print(len(trending))

上記を実行すると、以下のような結果が表示されます。

Challenge the Game discussed mental health, equality and love for the game! Celebrate all women in sports using #HerStory
Check out our new tutorial on going LIVE!
You can now ask and answer any questions on LIVE with the new Q&amp;A feature. Check it out now!
🚨New feature alert!🚨more #Duet  layouts are now available. Try them out now!
Now Introducing: STITCH! Make the ultimate collab with your fav creators 🎬
5

トレンドに掲載されている動画の情報を取得できています。
なお、取得したデータ(tiktok変数)の形式は以下ページで確認できます。

https://gist.github.com/davidteather/7c30780bbc30772ba11ec9e0b909e99d

ここまで確認できれば、TikTokApiの動作確認としてはOKです。
以上、TikTokApiの動作確認を説明しました。

追記 2021年10月27日
TikTokApiを実際に利用したい場合は、次の記事をご覧ください。
ユーザー別に動画投稿を最大で2000件まで取得する方法を解説しています。

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