Tony Wang4 分で読めます2026年のTikTokスクレイピング完全ガイド(API&Python)
2026年にTikTokをスクレイピングする3つの方法(Pythonでの自作、既製ツール、構造化API)を解説。それぞれ何が取得でき、どこで破綻し、法的な基礎はどうなっているかを紹介します。
2026 年に TikTok をスクレイピングする最速の方法は、正規化された JSON(動画・プロフィール・ハッシュタグ・コメント・トレンド)を返す構造化された TikTok API を呼び出すことです。自前のヘッドレスブラウザで TikTok の暗号化ヘッダーやアンチボット防御と戦う必要はありません。DIY のスクレイパーを構築することもできますが、TikTok はソーシャルメディアの中でも最も攻撃的なアンチスクレイピング対策を実行しています。このガイドでは 3 つのアプローチすべてを取り上げ、それぞれが何を返すのか、どこで破綻するのか、そして法的な基礎を解説します。
TikTok をスクレイピングするのは合法ですか?
公開されている TikTok データ(公開動画、キャプション、公開プロフィールの項目、ハッシュタグ)のスクレイピングは、その他の公開ウェブのスクレイピングと同じ一般的なカテゴリに属します。米国では hiQ v. LinkedIn において、公開データへのアクセスは CFAA 違反にあたらないと判断されました。ただし TikTok の利用規約は自動アクセスを禁止しており、個人データ(PII)やログインの背後にあるものは避けるべきです。基本方針としては、公開された非個人データのみを対象とし、レート制限を守り、TikTok の利用規約を確認することです。ウェブスクレイピングは合法かも参照してください。これは法的助言ではありません。
選択肢 1: Python での DIY(そしてなぜ破綻するのか)
任意の公開 TikTok コンテンツ向けの公式 API は存在しません。Research API は限られた地域の承認された研究者のみに制限されており、Display API と Content Posting API は自分自身のアカウントしか対象としていません。そのため DIY は、署名され、フィンガープリントされたエンドポイントに対してヘッドレスブラウザ(Playwright)を使うことを意味します。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
page = p.chromium.launch().new_page()
page.goto("https://www.tiktok.com/search?q=marketing")
# then defeat msToken, X-Bogus signatures, and fingerprinting...
デモでは動作しますが、その後は苦戦を強いられます。TikTok はソーシャルメディアの中でも最も攻撃的なアンチボット対策の一つを実行しているからです。
- 署名付きリクエスト — 呼び出しには頻繁に変化する動的な署名(
msToken、X-Bogus/X-Gnarly)が必要です。これらの再現は壊れやすく、更新のたびに破綻します。 - フィンガープリント — TLS、canvas、WebGL のフィンガープリントに加えてリアルタイムの不正スコアリングが自動化を検知し、データセンターの IP は信頼されないため、レジデンシャルまたはモバイルのプロキシが必要になります。
- 行動検知 — リクエストのタイミングやナビゲーションがスコアリングされます。人間らしいブラウジングなしに URL へ直接ジャンプすると BAN されます。
- スケールと陳腐化 — クエリごとにブラウザを立てるのは遅いため、ブラウザクラスターを運用することになりますが、TikTok が防御を更新するたびに壊れます。
選択肢 2: 既製ツール
ノーコードのスクレイパーやマーケットプレイスの actor はブラウザ処理を肩代わりし、CSV/JSON としてエクスポートします。一度きりの取得には向いていますが、項目が予測できるプロダクト内パイプラインにはあまり向きません。
選択肢 3: 構造化された TikTok API
繰り返しのワークフローには、TikTok スクレイピング API が正規化された JSON を返し、実行するブラウザは不要です。keyword で公開動画を検索します(カーソルによるページネーション、count は最大 50)。
curl "https://api.crawlora.net/api/v1/tiktok/search?keyword=marketing&count=20" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/tiktok/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"keyword": "marketing", "count": 20},
)
for video in resp.json()["data"]:
print(video.get("id"), video.get("play_count"))
クリエイター、その最近の投稿、単一の動画、または動画のコメントを取得します。
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/tiktok"
profile = requests.get(f"{base}/profile/chatgpt", headers=h).json()["data"]["user"]
posts = requests.get(f"{base}/posts", headers=h, params={"secUid": profile["secUid"]}).json()["data"]
comments = requests.get(f"{base}/comments", headers=h, params={"aweme_id": "7304809083817774382"}).json()["data"]
ハンドルでクリエイターを取得し、返された secUid を使ってその投稿をページ送りし、/post/{id} で単一の動画を取得し、aweme_id で動画のコメントを取得します。いずれもカーソルによるページネーションに対応しています。検索レスポンスはそのまま保存できる正規化された JSON です(項目は例示であり、ドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": [
{
"id": "73900000000000",
"author": "example_creator",
"description": "marketing tips",
"play_count": 184000,
"like_count": 12400,
"comment_count": 312
}
]
}
収集できるもの
公開コンテンツがそれらを公開している範囲で、エンドポイントごとにまとめると次のとおりです。
- 検索 —
keywordによる公開動画。カーソルによるページネーション(countは最大 50)。 - 動画 —
/post/{id}による id 指定での動画詳細一式。再生数・いいね数・コメント数・シェア数、説明文、音楽、投稿者。 - プロフィール — ハンドル指定での公開クリエイター項目。id、ニックネーム、bio、認証フラグ、各種合計値、そして投稿を一覧化するために必要な
secUid。 - プロフィール投稿 —
secUidによるクリエイターの動画。最新順または人気順でソート。 - コメント —
aweme_idによる動画のトップレベルコメント。カーソルによるページネーション。 - トレンドとハッシュタグ — トレンド分析のためのトレンド動画、チャレンジ、ハッシュタグフィード。
制約とよくある課題
- 任意の公開コンテンツ向けの公式 API は存在しない。 Research API は限られた地域の承認された研究者のみに制限されており、Display/Content Posting API は自分自身のアカウントしか対象としていないため、公開コンテンツの収集はスクレイピングを意味します。
- 防御は頻繁に変わる。 署名(
msToken、X-Bogus)やフィンガープリントのチェックは頻繁に更新されるため、DIY のスクレイパーはすぐに陳腐化します。マネージド API はその保守を吸収します。 - secUid のワンステップ。 クリエイターの投稿を一覧化するにはその
secUidが必要で、これは@handleから直接ではなく、先にプロフィールエンドポイントから取得します。 - カーソルによるページネーション。 検索・投稿・コメントはカーソルでページ送りされます。返されたカーソルを各呼び出しに引き継いでください。
- アイデンティティは個人データ。 GDPR/CCPA の下ではクリエイターやコメント投稿者を個人データになり得るものとして扱ってください。公開された非個人項目のみを収集し、TikTok の利用規約を確認してください。
活用される場面
- クリエイターとトレンドのインテリジェンス — クリエイター、ハッシュタグ、伸びている動画を追跡します。TikTok トレンドインテリジェンスのユースケースを参照してください。
- ブランドと競合のモニタリング — トピックやブランドがどうトレンド化するかを観測します。
- AI エージェント向けコンテキスト — 構造化された TikTok シグナルをリサーチエージェントに供給します。
出典
収集を始める
まずは無料でお試しください: 無料ウェブスクレイパーで任意の公開 URL を実行するか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップは不要です。
Playground で検索エンドポイントをテストし、API ドキュメントでスキーマを確認し、料金をチェックしてください。ソーシャル系の残りについてはYouTube のスクレイピング方法とReddit のスクレイピング方法、Twitter/X のスクレイピング方法も、そしてウェブスクレイピング API の選び方も参照してください。
よくある質問
ブロックされずにTikTokをスクレイピングできますか?
構造化APIを使えば、署名、プロキシのルーティング、ブラウザの実行はエンドポイントの背後で処理されます。DIYのスクレイパーは、動的な署名(msToken、X-Bogus)、TLS/canvas/WebGLのフィンガープリント、行動検知を自力で突破しなければなりません。自前で保守するTikTokスクレイパーが頻繁に壊れるのはこのためです。
TikTokにはスクレイピング向けの公式APIがありますか?
任意の公開コンテンツ向けにはありません。TikTokのResearch APIは限られた地域の承認された研究者のみに制限されており、Display APIとContent Posting APIは自分自身のアカウントしか対象としていません。そのため、公開動画・プロフィール・コメントを大規模に収集することはスクレイピングを意味します。
TikTokのコメントやプロフィールをスクレイピングできますか?
公開されている範囲では可能です。ハンドルでプロフィールを取得し、返されたsecUidを使ってそのクリエイターの投稿を一覧化し、aweme_idで動画のコメントを取得します。検索・投稿・コメントはカーソルによるページネーションに対応しています。クリエイターやコメント投稿者のアイデンティティは個人データになり得るものとして扱ってください。
どのようなTikTokデータを取得できますか?
キーワードによる公開検索結果、id指定での動画詳細一式、公開プロフィール項目(secUidを含む)、クリエイターの投稿、動画のコメント、そして取得可能な範囲でトレンド/ハッシュタグ/チャレンジのフィードを取得できます。
これは公式のTikTok APIですか?
いいえ。公開されたTikTokデータを抽出するものであり、TikTokの公式APIとは独立しています。
どのくらいの頻度で更新できますか?
継続的なポーリングではなく、プランと責任ある利用の範囲内でスケジュール化したスナップショットを実行してください。