Back to Blog
General

YouTube Shorts Scraper API: Extract Shorts from Any Channel

February 13, 2026
4 min read
S
By SociaVault Team
youtubeshortsapishort-form video

YouTube Shorts Scraper API: Analyze Short-Form Video Content

YouTube Shorts compete directly with TikTok and Instagram Reels. This guide shows you how to extract Shorts data for content analysis and competitive research.

Why Track YouTube Shorts?

  • Format Analysis - Compare Shorts vs long-form performance
  • Trend Detection - Spot viral Shorts early
  • Competitor Research - Analyze rival Shorts strategy
  • Content Repurposing - Track cross-posted content
  • Growth Tracking - Monitor Shorts channel growth

Shorts API Endpoints

EndpointDescription
Channel ShortsGet Shorts from a channel
Simple ShortsAuto-paginated Shorts retrieval
Trending ShortsDiscover trending Shorts

Get Channel Shorts

const response = await fetch('https://api.sociavault.com/youtube/channel/shorts', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    handle: 'MrBeast'
  })
});

const shorts = await response.json();

Sample Response

{
  "shorts": [
    {
      "id": "abc123xyz",
      "title": "Would you do this for $1000? 💰",
      "views": 45000000,
      "likes": 2100000,
      "comments": 15000,
      "duration": 58,
      "publishedAt": "2026-01-08T16:00:00Z",
      "thumbnail": "https://..."
    }
  ],
  "hasMore": true,
  "cursor": "next_page"
}

Simple Shorts Endpoint

For easier pagination, use the Simple Shorts endpoint:

const response = await fetch('https://api.sociavault.com/youtube/channel/shorts/simple', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    handle: 'MrBeast',
    amount: 50 // Get 50 Shorts automatically
  })
});

Discover currently trending YouTube Shorts:

const response = await fetch('https://api.sociavault.com/youtube/shorts/trending', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
});

const trending = await response.json();

Use Cases

Compare Shorts vs Long-Form

Analyze which format performs better:

const videos = await getChannelVideos(handle);
const shorts = await getChannelShorts(handle);

const videoAvg = videos.reduce((s, v) => s + v.views, 0) / videos.length;
const shortsAvg = shorts.reduce((s, v) => s + v.views, 0) / shorts.length;

console.log(`Long-form average: ${videoAvg.toLocaleString()} views`);
console.log(`Shorts average: ${shortsAvg.toLocaleString()} views`);
console.log(`Shorts perform ${(shortsAvg / videoAvg * 100).toFixed(0)}% compared to long-form`);

Track Shorts Posting Frequency

Analyze upload patterns:

const shorts = await getChannelShorts(handle);

const shortsByWeek = {};
shorts.forEach(short => {
  const week = getWeekNumber(new Date(short.publishedAt));
  shortsByWeek[week] = (shortsByWeek[week] || 0) + 1;
});

const avgPerWeek = shorts.length / Object.keys(shortsByWeek).length;
console.log(`Average Shorts per week: ${avgPerWeek.toFixed(1)}`);

Find Viral Shorts

Identify outlier performers:

const shorts = await getChannelShorts(handle);

const avgViews = shorts.reduce((s, v) => s + v.views, 0) / shorts.length;
const viralShorts = shorts.filter(s => s.views > avgViews * 3);

console.log(`Viral Shorts (3x+ average): ${viralShorts.length}`);
viralShorts.forEach(s => {
  console.log(`- ${s.title}: ${s.views.toLocaleString()} views`);
});

Monitor what's trending:

async function checkTrending() {
  const { shorts } = await getTrendingShorts();
  
  // Analyze common themes
  const titleWords = shorts
    .flatMap(s => s.title.toLowerCase().split(/\s+/))
    .filter(w => w.length > 3);
  
  const wordCounts = {};
  titleWords.forEach(word => {
    wordCounts[word] = (wordCounts[word] || 0) + 1;
  });
  
  const trending = Object.entries(wordCounts)
    .sort((a, b) => b[1] - a[1])
    .slice(0, 10);
  
  console.log('Trending topics:', trending);
}

Frequently Asked Questions

What's the maximum Shorts duration?

YouTube Shorts are limited to 60 seconds. Content over 60 seconds appears in regular videos.

How do I distinguish Shorts from regular videos?

The Shorts endpoint only returns Shorts content. The Videos endpoint returns all videos including Shorts.

Can I get Shorts from any channel?

Yes, any public channel's Shorts are accessible.

Trending Shorts are refreshed continuously, reflecting real-time popularity.

Are view counts accurate?

Yes, view counts are fetched in real-time from YouTube.

Get Started

Sign up free and start analyzing YouTube Shorts.

Documentation: /docs/api-reference/youtube/channel-shorts

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.