virlo

TotalClaw 作者 totalclaw

Virlo 社交媒体情报 — 病毒式视频分析、主题标签排名、趋势摘要以及 YouTube、TikTok 和 Instagram 上的社交聆听。用于内容策略、趋势发现、竞争分析和利基监控。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~virlogit-virlo-short-form-video-training-data
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~virlogit-virlo-short-form-video-training-data/file -o virlogit-virlo-short-form-video-training-data.md
## 概述(中文)

Virlo 社交媒体情报 — 病毒式视频分析、主题标签排名、趋势摘要以及 YouTube、TikTok 和 Instagram 上的社交聆听。用于内容策略、趋势发现、竞争分析和利基监控。

## 原文

# Virlo

Social media intelligence for short-form video — Bloomberg for viral content.

Homepage: https://dev.virlo.ai
Source: https://github.com/CalciferFriend/virlo-skill
Full API docs: https://dev.virlo.ai/docs | Playground: https://dev.virlo.ai/docs/playground

## Config

Set `VIRLO_API_KEY` environment variable. Your API key has the format `virlo_tkn_<your_key>` and can be obtained from the [Virlo dashboard](https://dev.virlo.ai/dashboard).

## Context

The Virlo API provides cross-platform analytics across YouTube, TikTok, and Instagram. Key capabilities:

- **Hashtags** — 500K+ hashtags ranked by usage count and total views
- **Trends** — Daily curated trending topics updated at 1am UTC
- **Videos** — 2M+ viral video performance data (views, likes, shares, comments)
- **Orbit** — Keyword-based social listening with async analysis jobs
- **Comet** — Automated niche monitoring with scheduled scraping

## API Access

All endpoints use base URL `https://api.virlo.ai/v1`, `snake_case` naming, and return data in a `{ "data": ... }` envelope.

### Making Requests

Use `curl` directly with the `VIRLO_API_KEY` environment variable:

```bash
# GET request
curl -s -X GET "https://api.virlo.ai<endpoint>" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# POST request with JSON body
curl -s -X POST "https://api.virlo.ai<endpoint>" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '<json-body>'
```

### Examples

```bash
# List top hashtags
curl -s -X GET "https://api.virlo.ai/v1/hashtags" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Top 10 viral videos
curl -s -X GET "https://api.virlo.ai/v1/videos?limit=10" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Daily trend digest
curl -s -X GET "https://api.virlo.ai/v1/trends" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Create an Orbit search
curl -s -X POST "https://api.virlo.ai/v1/orbit" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"name":"AI research","keywords":["artificial intelligence","AI tools"]}'
```

---

## API Reference

### Authentication

All requests require a Bearer token:

```
Authorization: Bearer virlo_tkn_<your_key>
```

Never commit API keys to version control. Regenerate compromised keys from the dashboard.

### Response Envelope

All responses use a `{ "data": ... }` envelope. List endpoints include pagination metadata:

```json
{
  "data": {
    "total": 500,
    "limit": 50,
    "offset": 0,
    "items": [ ... ]
  }
}
```

### Pagination

List endpoints use offset-based pagination via `limit` and `page` query parameters:

| Parameter | Type    | Default | Description             |
| --------- | ------- | ------- | ----------------------- |
| `limit`   | integer | 50      | Items per page (1-100)  |
| `page`    | integer | 1       | Page number (1-indexed) |

Maximum of 1000 total results accessible via pagination.

### Common Query Parameters

Many video-related endpoints support these filters:

| Parameter    | Type    | Description                                       |
| ------------ | ------- | ------------------------------------------------- |
| `min_views`  | integer | Minimum view count threshold                      |
| `platforms`  | string  | Comma-separated: `youtube`, `tiktok`, `instagram` |
| `start_date` | string  | ISO 8601 date filter (earliest publish date)      |
| `end_date`   | string  | ISO 8601 date filter (latest publish date)        |
| `order_by`   | string  | Sort field (varies per endpoint)                  |
| `sort`       | string  | Sort direction: `asc` or `desc` (default: `desc`) |

### Platforms

- `youtube` — YouTube Shorts and videos
- `tiktok` — TikTok videos
- `instagram` — Instagram Reels

---

### Hashtags

Virlo tracks 500K+ hashtags ranked by usage count and total views.

#### List Hashtags

```
GET /v1/hashtags
```

Standard pagination (`limit`, `page`).

**Response:**
```json
{
  "data": [
    {
      "hashtag": "#shorts",
      "count": 10926,
      "total_views": 869912593
    }
  ]
}
```

| Field         | Type    | Description                                   |
| ------------- | ------- | --------------------------------------------- |
| `hashtag`     | string  | The hashtag text (may or may not include `#`)  |
| `count`       | integer | Number of videos using this hashtag           |
| `total_views` | integer | Sum of views across all videos with this tag  |

---

### Trends

Daily curated trending topics updated at 1am UTC.

#### List Trend Groups

```
GET /v1/trends
```

Standard pagination (`limit`, `page`).

**Response:**
```json
{
  "data": [
    {
      "id": "b88c0c23-8501-4975-a1e9-b7c1160c6342",
      "title": "Trends for Oct 15th",
      "trends": [
        {
          "id": "132ea402-804d-4515-b706-f3ff9c698c5e",
          "trend_id": "8ab75d1a-cb50-4885-b9b3-2e4ede2a3620",
          "trend_group_id": "b88c0c23-8501-4975-a1e9-b7c1160c6342",
          "ranking": 1,
          "trend": {
            "id": "8ab75d1a-cb50-4885-b9b3-2e4ede2a3620",
            "name": "NBA Season Opening Night",
            "description": "The 2025-26 NBA season officially tipped off...",
            "trend_type": "content"
          }
        }
      ]
    }
  ]
}
```

| Field    | Type   | Description                                      |
| -------- | ------ | ------------------------------------------------ |
| `id`     | string | UUID of the trend group                          |
| `title`  | string | Display title (e.g., "Trends for Oct 15th")      |
| `trends` | array  | Array of ranked trend entries                    |

Trend entry fields: `id`, `trend_id`, `trend_group_id`, `ranking`, `trend` (object with `id`, `name`, `description`, `trend_type`).

---

### Videos

2M+ viral videos across YouTube, TikTok, and Instagram.

#### List Top Videos (Cross-Platform)

```
GET /v1/videos
```

| Parameter    | Type    | Description                                       |
| ------------ | ------- | ------------------------------------------------- |
| `limit`      | integer | Items per page (1-100, default 50)                |
| `page`       | integer | Page number (1-indexed, default 1)                |
| `min_views`  | integer | Minimum view count filter                         |
| `platforms`  | string  | Comma-separated: `youtube`, `tiktok`, `instagram` |
| `start_date` | string  | ISO 8601 earliest publish date                    |
| `end_date`   | string  | ISO 8601 latest publish date                      |
| `order_by`   | string  | `publish_date`, `views`, `created_at`             |
| `sort`       | string  | `asc` or `desc` (default: `desc`)                 |

#### Platform-Specific Endpoints

```
GET /v1/youtube-videos
GET /v1/tiktok-videos
GET /v1/instagram-videos
```

Same parameters and response shape as `/v1/videos`, filtered to a single platform.

#### Video Object Fields

| Field                | Type         | Description                                |
| -------------------- | ------------ | ------------------------------------------ |
| `id`                 | string       | Virlo UUID                                 |
| `url`                | string       | Original video URL                         |
| `publish_date`       | string       | ISO 8601 publish timestamp                 |
| `views`              | integer      | View count                                 |
| `number_of_likes`    | integer      | Like count                                 |
| `number_of_comments` | integer      | Comment count                              |
| `description`        | string       | Video description                          |
| `thumbnail_url`      | string