YouTube Competitor Analytics: Track Growth & Find Their Outliers
The single fastest growth tactic on YouTube isn't a secret hook formula ā it's studying what already works for channels like yours and making a better version. The slow way to do that is opening ten competitor channels every week and squinting at view counts. The fast way is a script that pulls their vitals and flags their breakout videos automatically.
This guide builds a competitor tracker that monitors channel growth over time and ā more importantly ā surfaces outliers: the videos that massively outperformed a channel's average. Those are proven topics, handed to you. Code in JavaScript.
Step 1: Channel vitals
The channel endpoint takes a handle (or channelId / url) and returns the headline stats.
const API_KEY = process.env.SOCIAVAULT_API_KEY;
const BASE = "https://api.sociavault.com/v1/scrape/youtube";
const headers = { "x-api-key": API_KEY };
async function getChannel(handle) {
const res = await fetch(`${BASE}/channel?handle=${handle}`, { headers });
const json = await res.json();
if (!json.success) return null;
const d = json.data;
// Log d once to confirm field names for your use.
return {
name: d.name || d.title,
channelId: d.channelId || d.id,
subscribers: d.subscriberCountText,
totalViews: d.viewCountText,
videoCount: d.videoCountText,
};
}
Step 2: Track growth over time (the honest way)
Here's the thing most "growth tracker" posts gloss over: a single call gives you a snapshot, not growth. YouTube doesn't hand you a history. To track growth you have to capture the subscriber/view numbers on a schedule and compare them yourself.
import fs from "fs";
const STORE = "yt-history.json";
async function snapshot(handle) {
const c = await getChannel(handle);
if (!c) return;
const history = JSON.parse(
fs.existsSync(STORE) ? fs.readFileSync(STORE, "utf8") : "{}",
);
(history[c.name] ||= []).push({
date: new Date().toISOString().split("T")[0],
subs: c.subscribers,
views: c.totalViews,
});
fs.writeFileSync(STORE, JSON.stringify(history, null, 2));
console.log(`šø ${c.name}: ${c.subscribers} subs, ${c.totalViews} views`);
}
Run that weekly across your competitor set and you build the growth history YouTube won't give you. Compare snapshots to see who's accelerating.
Step 3: Find their outliers (the real prize)
Pull a channel's most popular videos and compare each to the channel's own average. Videos doing several times the average are proven winners ā the topics worth remaking.
async function findOutliers(handle) {
const channel = await getChannel(handle);
if (!channel) return;
const res = await fetch(
`${BASE}/channel-videos?channelId=${channel.channelId}&sort=popular`,
{ headers },
);
const json = await res.json();
let videos = json.data?.videos || [];
if (!Array.isArray(videos)) videos = Object.values(videos);
const withViews = videos.filter((v) => typeof v.viewCountInt === "number");
const avg =
withViews.reduce((s, v) => s + v.viewCountInt, 0) / (withViews.length || 1);
console.log(
`\nš Outliers for ${channel.name} (avg ā ${Math.round(avg).toLocaleString()} views)`,
);
withViews
.filter((v) => v.viewCountInt > avg * 3) // 3x+ the channel average
.slice(0, 10)
.forEach((v) => {
const x = (v.viewCountInt / avg).toFixed(1);
console.log(
` ${x}x ā ${v.title} (${v.viewCountInt.toLocaleString()} views)`,
);
});
}
findOutliers("Veritasium");
The 3x average threshold is the heuristic that matters: a video pulling triple its channel's norm tapped into something ā a topic, a title, a thumbnail ā that resonated beyond the existing audience. That's your remix candidate.
Turning it into a routine
The whole thing becomes powerful as a weekly habit:
- Pick 5ā10 competitors in your niche.
- Snapshot their vitals weekly to track who's accelerating.
- Re-run the outlier finder to catch new breakouts as they happen.
- For each new outlier, study the hook (first 30 seconds) and thumbnail, then make your better version.
Pair it with a full channel video export for deeper analysis, and the Shorts vs long-form comparison to see which format is driving their growth.
Frequently Asked Questions
How do I track a YouTube competitor's growth?
Capture their channel stats (subscribers, total views) on a schedule and compare snapshots over time. A single API call gives you a snapshot, not a trend ā so the growth tracking comes from storing those snapshots yourself and diffing them weekly, as shown above.
Can I see a channel's subscriber history?
Not directly ā YouTube doesn't expose historical subscriber data, and neither does any scraper, because the public page only shows the current count. You build the history by snapshotting the current count regularly and storing it. Start now and you'll have a trend in a few weeks.
What is an outlier video and why does it matter?
An outlier is a video that significantly outperformed its channel's average views (say, 3x or more). It signals a topic, title, or format that resonated beyond the channel's usual audience ā making it a proven, low-risk topic for you to cover with your own angle.
How do I find a channel's best-performing videos?
Pull the channel's videos sorted by popularity and compare each video's view count to the channel average. The ones far above average are the breakouts. The code here flags everything above 3x the average automatically.
Do I need the official YouTube API for this?
No. A scraping API returns channel vitals and video stats directly, with integer view fields, without OAuth setup or quota limits. That makes weekly competitor monitoring across many channels practical and cheap.
How often should I run this?
Weekly is the sweet spot ā frequent enough to catch new breakout videos and growth shifts, infrequent enough to keep costs negligible. Snapshot vitals and re-scan for outliers on the same schedule.
The bottom line
Growth on YouTube rewards studying winners. Snapshot your competitors' vitals to see who's accelerating, surface their outlier videos to find proven topics, and remix the best with your own angle. It's a weekly script that replaces hours of manual checking.
Want to track your competitors? Start free with SociaVault with 50 credits.
Found this helpful?
Share it with others who might benefit
Ready to Try SociaVault?
Start extracting social media data with our powerful API. No credit card required.