# solari fetch tiktok post search

> TikTok の動画をキーワードでライブ検索します。

- **CLI**: `solari fetch tiktok post search`
- **MCP ツール**: `solari_fetch_tiktok_post_search`
- **アクセス権**: `solari:read`
- **対象プラン**: 無料トライアル · Plus · Pro · Enterprise
- **クレジット**: 1

キーワードで TikTok 自体の動画を検索します。結果は TikTok の関連度順で、動画 id、URL、投稿者、キャプション、投稿日時、再生・いいね・コメント・シェア数、長さ、カバー画像だけの薄い一覧です。何も保存せず、どのヒットも URL で fetch tiktok post を呼べば収集できます。

**どんなときに使うか** — あるテーマ、ブランド、フレーズについて人々が TikTok に何を投稿しているか知りたいが、起点となるハンドルがないときに使います。

**返される内容** — TikTok の順序で最大 limit 件の動画、次のページ用の cursor、最初の動画を収集する fetch コマンドです。

## パラメータ

- `query` (string, 必須, ≤ 100 chars) — 検索するキーワードやフレーズ。
- `limit` (integer, 任意, 既定値 20, 1–30) — 1 ページあたり最大何件まで。
- `cursor` (string, 任意, ≤ 1024 chars) — 同じ query の前のページで受け取った next_cursor。最初のページでは省略します。

## レスポンス

### `Response`

- `query` (string) — 検索に使ったキーワード。
- `items` (object[]) — 一致した動画。TikTok の関連度順。
- `total` (integer) — このページの動画の数。
- `has_more` (boolean) — TikTok に次のページがあれば true。
- `next_cursor` (string | null) — 同じ query と一緒に cursor として渡す値。最後のページなら null。
- `note` (string | null) — 注意点があるときだけ入ります。たとえば一致する動画がないとき。
- `next` (string) — 最初の動画を収集する fetch コマンド。結果があるときだけ。

### `items[]`

- `video_id` (string) — TikTok の公開数値 id。
- `url` (string) — 公開動画の URL。そのまま fetch tiktok post に渡せます。
- `username` (string | null) — 投稿者のハンドル。URL に含まれるときだけ。
- `caption` (string | null) — キャプション。
- `posted_at` (timestamp | null) — 投稿日時(UTC)。
- `play_count` (integer | null) — 再生数。
- `like_count` (integer | null) — いいね数。
- `comment_count` (integer | null) — コメント数。
- `share_count` (integer | null) — シェア数。
- `duration_seconds` (integer | null) — 動画の長さ(秒)。
- `cover_url` (string | null) — カバー画像の URL。期限切れになることがあるので早めに使ってください。

## 例

```console
$ solari fetch tiktok post search query="green tea ceramide" limit=1
```

_読みやすさのため、長い文字列と繰り返しの配列要素を省略しています。_

```json
{
  "query": "green tea ceramide",
  "items": [
    {
      "video_id": "7680375687139642645",
      "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645",
      "username": "innisfree_official",
      "caption": "Deeply hydrated skin—NO OFF HOURS. 💚  wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores …",
      "posted_at": "2026-09-02T12:00:00Z",
      "play_count": 493,
      "like_count": 37,
      "comment_count": 2,
      "share_count": 0,
      "duration_seconds": 23,
      "cover_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/oQfAEIgDBRiLAeFsAQeZhIQ9CEfIAgBDpAqbfE~tplv-tiktokx-origin.image?…"
    }
  ],
  "total": 1,
  "has_more": true,
  "next_cursor": "eyJjIjoiMSIsInMiOiIyMDI2MDkyOTA2NDUxOEIzRDJGMDdBOUMxRTRCNkQ4RjAyIn0",
  "note": null,
  "next": "solari fetch tiktok post url=https://www.tiktok.com/@innisfree_official/video/7680375687139642645"
}
```

## MCP で呼び出す場合

```json
{
  "name": "solari_fetch_tiktok_post_search",
  "arguments": {
    "query": "green tea ceramide",
    "limit": 1
  }
}
```

## 注意点

- 結果は TikTok の関連度ランキングなので、ゆるく関連するだけの動画が混ざることがあります。使う前に caption と username を確認してください。
- 何も保存せず、ヒットに post_id はありません。ヒットの url で fetch tiktok post を呼ぶと、投稿者と一緒に投稿全体を収集して保存します。
- has_more が true なら、next_cursor を同じ query と一緒に cursor として渡すと次のページを受け取れます。cursor は別の query には使えません。
- 呼び出しごとに TikTok へライブで問い合わせます。数秒かかり、cache はありません。items が空で note があれば、一致する公開動画がありません。

## 関連ツール

- [`solari_fetch_tiktok_post`](https://pub.brandazine.ai/docs/tools/fetch-tiktok-post.md?lang=ja)
- [`solari_fetch_tiktok_account_search`](https://pub.brandazine.ai/docs/tools/fetch-tiktok-account-search.md?lang=ja)
- [`solari_catalog_tiktok_content_search`](https://pub.brandazine.ai/docs/tools/catalog-tiktok-content-search.md?lang=ja)
