# solari fetch instagram hashtag posts

> ハッシュタグの投稿を 1 ページ分その場で収集します。

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

Instagram のハッシュタグフィードを 1 ページ分その場で収集し、投稿を保存してフィードの順番で返します。呼び出すたびに Instagram へリクエストが出るので、先に catalog tag search を確認してください。

**どんなときに使うか** — catalog tag search にハッシュタグがない、または情報が古いとき。あるいは、人気投稿やリールを今すぐ見たいとき。

**返される内容** — そのページの投稿（保存済み）と、次のページ用のカーソル。

## パラメータ

- `hashtag` (string, 必須, ≤ 150 chars) — ハッシュタグ（# の有無は問いません）。
- `tab` (enum, 任意) — recent、top、clips（リール）のいずれか。 値: `recent`, `top`, `clips`.
- `cursor` (string, 任意, ≤ 8192 chars) — 前のページの next_cursor。

## レスポンス

### `Response`

- `ingested` (boolean) — この呼び出しで投稿を 1 件以上保存した場合は true。
- `fetched_on_demand` (boolean) — 常に true。呼び出すたびにその場で収集します。
- `hashtag` (string) — 取得に使ったハッシュタグ（# なし）。
- `tab` (string) — このページを取得したフィード。
- `is_hidden` (boolean) — このハッシュタグのフィードを Instagram が返さない場合は true。非表示・制限付き・存在しないハッシュタグが該当し、items は空になります。
- `hidden_reason` (string | null) — 非表示のハッシュタグに Instagram が付けるラベル。
- `found` (integer) — items に含まれる投稿の件数。
- `fetched_count` (integer) — このページで Instagram が返した投稿の件数。保存できなかった投稿があると found より大きくなります。
- `items` (object[]) — このページの投稿（フィードの順番）。
- `next_cursor` (string | null) — 次のページを取得するときに cursor として渡します。フィードの終わりでは null。
- `note` (string) — この後に起きること。
- `next` (string) — 同じタグを後から読むためのカタログコマンド。

### `items[]`

- `id` (uuid) — 投稿 ID。
- `slug` (string) — Instagram のショートコード。
- `text` (string) — キャプション。
- `posted_at` (timestamp) — 投稿日時（UTC）。
- `username / user_id / account_id` (string) — 投稿したアカウント。
- `like_count / comment_count` (integer) — エンゲージメント。
- `play_count` (integer | null) — 動画の再生数。
- `media_type` (string) — 投稿の形式。
- `assets` (object[]) — メディアファイル（掲載順）。それぞれに asset_url、media_type、video_duration があります。
- `assets[].asset_url` (string | null) — フルサイズの画像または動画の直接ダウンロードリンク。ファイルがまだ保存されていない場合は null。

## 例

```console
$ solari fetch instagram hashtag posts hashtag=ootd tab=top
```

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

```json
{
  "ingested": true,
  "fetched_on_demand": true,
  "hashtag": "ootd",
  "tab": "top",
  "is_hidden": false,
  "hidden_reason": null,
  "found": 1,
  "fetched_count": 1,
  "items": [
    {
      "id": "01a06a16-552d-7099-ae0a-77e6b68de960",
      "slug": "DaS66VzJBPW",
      "text": "SEOUL OOTD — 這次搭配了四種完全不同風格 #ootd #lynn__ootd #穿搭販賣機 #韓國穿搭",
      "posted_at": "2026-07-02T15:33:13Z",
      "virtual_campaign": null,
      "username": "llling_yinnnnn",
      "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "profile_picture_url": null,
      "like_count": 32,
      "comment_count": 1,
      "media_type": "reel",
      "play_count": 888,
      "media": []
    }
  ],
  "next_cursor": "eyJwIjoxLCJtIjoiUVZGRC4uLiJ9",
  "note": "These posts were collected live and are stored now. solari_catalog_instagram_tag_search lists them after its next daily refresh.",
  "next": "solari catalog instagram tag search query=#ootd"
}
```

## MCP で呼び出す場合

```json
{
  "name": "solari_fetch_instagram_hashtag_posts",
  "arguments": {
    "hashtag": "ootd",
    "tab": "top"
  }
}
```

## 注意点

- 1 ページはおよそ 20〜30 件で、数秒かかります。
- カーソルは、取得したときと同じハッシュタグとタブでしか使えません。
- フィードの終わりは next_cursor が null になったときだけです。found が 0 でも next_cursor が返ることがあるので、その場合は続けて取得してください。
- 非表示・制限付き・スペルミスのハッシュタグには、Instagram はどれも同じ応答を返します。is_hidden=true で、投稿は 0 件です。スペルは hashtag search で確認してください。
- 投稿はすぐに保存されますが、catalog tag search に表示されるのは、1 日 1 回の次回更新の後です。
- 収集した直後の投稿は、メディアファイルの保存に少し時間がかかることがあります。そのため、最初は asset_url が null の場合があります。
- likes_hidden が true のときは like_count を使わないでください。投稿者がいいね数を非表示にしているため、null か、実際の値ではない可能性があります。

## 関連ツール

- [`solari_fetch_instagram_hashtag_search`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-hashtag-search.md?lang=ja)
- [`solari_catalog_instagram_tag_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-tag-search.md?lang=ja)
- [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ja)
