# YouTube Outlier Video Finder - Breakout Video Ideas (`seemuapps/youtube-outlier-video-finder`) Actor

Find YouTube videos that got 3x, 10x or 50x more views than their channel usually gets - outlier score, median views and subscribers for any niche.

- **URL**: https://apify.com/seemuapps/youtube-outlier-video-finder.md
- **Developed by:** [Seemu Scraping](https://apify.com/seemuapps) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.00 / 1,000 outlier videos

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Outlier Video Finder - Breakout Video Ideas

Find the YouTube videos that massively outperformed their own channel - the 3x, 10x and 50x breakouts that show which ideas, titles and thumbnails actually work in your niche. Enter a few niche keywords (or a list of channels) and get every outlier video ranked by **outlier score**: the video's views divided by the channel's median views.

A video with 2M views means little on a channel that averages 2M. A video with 300K views on a channel that averages 6K is a proven idea worth studying. This actor finds the second kind - no login, no browser extension.

### What you get

For every outlier video:

- **outlierScore** - views ÷ channel median views, to 2 decimals (e.g. `12.4` = 12.4x the channel's normal video)
- **views** and **channelMedianViews** - the video's views and the channel's typical views
- **title**, **url**, **thumbnailUrl**, **videoId**
- **publishedAt** (ISO date), **publishedText** (e.g. "3 weeks ago"), **publishedAtIsExact**
- **duration**, **durationSeconds**, **isShort**
- **channelName**, **channelId**, **channelUrl**, **subscriberCount**
- **viewsPerSubscriber** - how far the video travelled beyond the channel's own audience
- **baselineVideoCount** - how many recent uploads the median is based on
- **matchedKeyword** - the niche keyword that led to this channel

Results come sorted by outlier score, highest first. Export to JSON, CSV, Excel or Google Sheets from the **Dataset** tab.

### Use cases

- **Video idea research** - find topics that are proven to break out in your niche before you film
- **Title and thumbnail inspiration** - study what the 10x videos did differently from the channel's normal uploads
- **Competitor analysis** - scan competing channels and see which of their videos over-performed
- **Trend spotting** - set **Published within** to the past week or month to catch ideas breaking out right now
- **Small-channel opportunities** - high outlier scores on small channels show ideas that win on merit, not audience size
- **Agency and creator reporting** - deliver ranked breakout lists for clients in any niche

### How to use

1. Enter one or more **Niche keywords** (e.g. `home espresso`, `budget travel tips`) and/or specific **Channels** (`@handle`, channel URL or channel ID)
2. Set the **Minimum outlier score** - 3 (the default) returns videos with at least 3x the channel's median views
3. Optionally narrow **Published within** to the past week, month, 3 months or year
4. Turn on **Include Shorts** to also scan Shorts - they are compared only with the channel's other Shorts
5. Run the actor - ranked outlier videos appear in the **Dataset** tab

#### How the outlier score is calculated

For each channel the actor reads its most recent uploads (30 by default - adjust **Videos per channel**), leaves out anything uploaded in the last 3 days (still gaining views), and takes the **median** view count. Every video is then scored as `views ÷ median`. The median is used rather than the average so one viral hit does not hide the others. Long-form videos and Shorts get separate baselines because their view counts behave very differently. Channels with fewer than 5 usable uploads are skipped.

For keyword searches, the videos that ranked in search are also scored against their channel's baseline, so older evergreen breakouts show up alongside recent ones.

### Input example

```json
{
  "keywords": ["home espresso", "latte art"],
  "channels": ["@jameshoffmann"],
  "minOutlierScore": 3,
  "publishedWithin": "year",
  "includeShorts": false,
  "maxChannelsPerKeyword": 10,
  "recentVideosPerChannel": 30,
  "maxItems": 50
}
```

### Output example

```json
{
  "videoId": "-g3R55KPZ6U",
  "url": "https://www.youtube.com/watch?v=-g3R55KPZ6U",
  "title": "Struggling with Espresso? This Beginner's Guide Will Change Everything!",
  "thumbnailUrl": "https://i.ytimg.com/vi/-g3R55KPZ6U/hqdefault.jpg",
  "views": 294624,
  "channelMedianViews": 5647,
  "outlierScore": 52.17,
  "channelId": "UCGd5F6fdCbxjrTivAkaeXpw",
  "channelName": "Artisti Coffee Roasters.",
  "channelUrl": "https://www.youtube.com/@ArtistiCoffeeRoasters",
  "subscriberCount": 242000,
  "viewsPerSubscriber": 1.217,
  "publishedText": "1 year ago",
  "publishedAt": "2025-01-16T06:45:00.000Z",
  "publishedAtIsExact": true,
  "durationSeconds": 1602,
  "duration": "26:42",
  "isShort": false,
  "baselineVideoCount": 29,
  "matchedKeyword": "home espresso"
}
```

### Pricing

You pay per outlier video returned. Channels that produce no outliers cost nothing extra, and **Max results** caps your spend on every run.

### FAQ

**Why is a video with fewer views ranked above a viral one?** The score measures performance relative to the channel's normal videos, not raw views. That is what makes an idea repeatable for channels of any size.

**Why is subscriberCount rounded?** YouTube shows subscriber counts rounded to three significant figures (e.g. 2.56M) for every channel.

**Why was a channel skipped?** Channels with fewer than 5 eligible recent uploads (after leaving out the last 3 days and live streams) do not have a reliable baseline. The run log lists every skipped channel.

**Can I scan a whole list of competitors?** Yes - leave **Niche keywords** empty and paste up to 200 channels into **Channels**.

# Actor input Schema

## `keywords` (type: `array`):

Search terms for your niche, one per line. The channels that rank for each term are scanned for outlier videos.

## `channels` (type: `array`):

Optional. Specific channels to scan - @handles, channel URLs or UC... channel IDs. Can be combined with keywords.

## `minOutlierScore` (type: `number`):

Only return videos with at least this many times the channel's median views. 3 = three times the channel's typical video.

## `publishedWithin` (type: `string`):

Only return outliers uploaded within this period. Recent windows surface what is breaking out right now.

## `includeShorts` (type: `boolean`):

Also scan each channel's Shorts. Shorts are scored against the channel's Shorts median, never against long-form videos.

## `maxChannelsPerKeyword` (type: `integer`):

How many distinct channels to take from the search results of each keyword.

## `recentVideosPerChannel` (type: `integer`):

How many of each channel's most recent uploads form its baseline. The median views of these videos (ignoring uploads under 3 days old) is the channel's normal performance.

## `maxItems` (type: `integer`):

Maximum outlier videos to return, highest outlier score first. 0 = return every outlier found.

## `country` (type: `string`):

Two-letter country code used for keyword searches, e.g. US, GB, AU, DE.

## `language` (type: `string`):

Language code used for keyword searches, e.g. en, de, pt-BR.

## Actor input object example

```json
{
  "keywords": [
    "home espresso"
  ],
  "minOutlierScore": 3,
  "publishedWithin": "any",
  "includeShorts": false,
  "maxChannelsPerKeyword": 10,
  "recentVideosPerChannel": 30,
  "maxItems": 50,
  "country": "US",
  "language": "en"
}
```

# Actor output Schema

## `results` (type: `string`):

One record per outlier video: videoId, url, title, thumbnailUrl, views, channelMedianViews, outlierScore, channelId, channelName, channelUrl, subscriberCount, viewsPerSubscriber, publishedText, publishedAt, publishedAtIsExact, durationSeconds, duration, isShort, baselineVideoCount, matchedKeyword.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "home espresso"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/youtube-outlier-video-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["home espresso"] }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/youtube-outlier-video-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "home espresso"
  ]
}' |
apify call seemuapps/youtube-outlier-video-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/youtube-outlier-video-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/uVas0iOfZJcdPMFgG/builds/aP37nMDbnoAJ56KwQ/openapi.json
