Skip to content

bynogthowerfk/unlimited-socialblade-youtube-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

csharp# Unlimited SocialBlade YouTube API Scraper

Unlimited SocialBlade YouTube API Scraper gives you structured access to deep YouTube channel analytics, historical growth metrics, and rich metadata in one unified JSON output. It helps analysts, creators, and platforms understand audience growth, rank changes, and cross-platform presence without dealing with official API quotas or scattered tools. Use this SocialBlade YouTube API style scraper to track subscribers, views, videos, and growth trends across any number of channels at scale.

Bitbash Banner

Telegram   WhatsApp   Gmail   Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for unlimited-socialblade-youtube-api you've just found your team — Let’s Chat. 👆👆

Introduction

This project provides a programmatic way to fetch SocialBlade-style analytics for YouTube channels, including daily, weekly, and monthly history, plus comprehensive channel metadata. Instead of manually checking dashboards, you can send a list of channel identifiers and receive a full analytics snapshot and time-series data as JSON.

It is designed for:

  • Data analysts and BI teams tracking channel and creator performance.
  • Influencer and talent agencies benchmarking channels across markets.
  • Growth marketers monitoring subscriber and view growth over time.
  • Creator tools and dashboards that need a reliable SocialBlade YouTube API–like data source.

Channel Growth & Creator Intelligence

  • Accepts flexible identifiers: usernames, channel IDs, or full channel URLs, so you can plug in whatever identifiers you already use.
  • Returns rich channel metadata, including category, country, thumbnails, and cross-platform social links.
  • Provides daily history, monthly growth, and weekly growth series for subscribers, views, and videos.
  • Includes compact growth summaries (3–365 days) for fast trend analysis without post-processing.
  • Surfaces relative ranks and positions, enabling you to see how a channel compares globally, by country, or by category.

Features

Feature Description
Multiple identifier modes Query channels by handle/username, channel ID, or full channel URL to match your existing datasets.
Bulk channel analytics Send dozens or hundreds of channels in one request to reduce overhead and speed up reporting pipelines.
Rich channel metadata Retrieve display name, thumbnails, banners, country, category, external socials, and kid-friendly flag.
Detailed historical metrics Get daily history for subscribers, views, and video count over a configurable period.
Monthly & weekly growth series Access aggregated monthly and weekly stats to power trend lines and rolling metrics.
Growth summary snapshot Use pre-computed growth deltas over 3–365 day windows for instant insight.
Ranking and position data Inspect channel rank by subscribers, views, country, category, and overall position.
JSON-first output Optimized for ingestion into data warehouses, dashboards, notebooks, and automation tools.

What Data This Scraper Extracts

Field Name Field Description
identifier The original identifier you requested (e.g., pewdiepie, mrbeast, channel ID, or URL).
identifier_type Type of identifier used, such as channel_username, channel_id, or channel_url.
data.channel_info.id Canonical YouTube channel ID.
data.channel_info.created_at ISO timestamp of when the channel was created.
data.channel_info.display_name Human-readable channel title.
data.channel_info.avatar URL to the current channel avatar image.
data.channel_info.banner URL to the current channel banner image.
data.channel_info.disabled Flag if the channel is disabled or unavailable (null if active).
data.channel_info.country Two-letter country code associated with the channel.
data.channel_info.channel_type Channel category/type (e.g., entertainment, gaming, travel).
data.channel_info.socials[] Array of external social media profiles with URL, label, and favicon.
data.channel_info.made_for_kids Boolean indicating whether the channel is marked as made for kids.
data.channel_info.subscribers Latest subscriber count reported.
data.channel_info.views Latest total view count for the channel.
data.channel_info.videos Latest total number of public videos on the channel.
data.channel_info.ranks Rank positions across SocialBlade-style metrics (overall, by subscribers, by views, by country, by category).
data.channel_info.identifiers[] Known aliases and handles for the channel with their types (handle, username, etc.).
data.channel_info.stats Convenience object with current subscribers, views, and video counts.
data.channel_info.grade Overall grading/score assigned to the channel (e.g., A++, B+).
data.channel_info.identifier Primary identifier object used internally for the channel.
data.channel_info.stats_hidden Flag or metadata if statistics are hidden or restricted.
data.daily_history[] Daily time-series with date, subscribers, views, and videos for the configured history window.
data.growth_summary.subscribers_* Aggregated subscriber change over 3, 7, 14, 30, 60, 90, 180, and 365 days.
data.growth_summary.views_* Aggregated view change over 3, 7, 14, 30, 60, 90, 180, and 365 days.
data.growth_summary.videos_* Aggregated video count change over 3, 7, 14, 30, 60, 90, 180, and 365 days.
data.monthly_growth[] Monthly aggregated subscribers and views, ideal for charts and long-term trend analysis.
data.weekly_growth[] Weekly aggregated subscribers, views, and videos for higher-frequency growth analysis.
data.channel_ranks.metadata Context for ranking: country and category associated with the ranking.
data.channel_ranks.position Detailed position numbers for each ranking dimension (overall, subscribers, views, country, category).
data.channel_ranks.shared Shared position metrics when there are ties across metrics.
data.channel_ranks.ahead Counts of how many channels are ahead by subscribers, views, etc.

Example Output

[
  {
    "identifier": "pewdiepie",
    "identifier_type": "channel_username",
    "data": {
      "channel_info": {
        "id": "UC-lHJZR3Gqxm24_Vd_AJ5Yw",
        "created_at": "2010-04-29T00:00:00.000Z",
        "display_name": "PewDiePie",
        "avatar": "https://yt3.ggpht.com/...",
        "banner": "https://yt3.googleusercontent.com/...",
        "country": "JP",
        "channel_type": "entertainment",
        "socials": [
          {
            "url": "https://instagram.com/pewdiepie",
            "title": "IG"
          },
          {
            "url": "https://tiktok.com/@pewdiepie",
            "title": "TikTok"
          }
        ],
        "made_for_kids": false,
        "subscribers": 110000000,
        "views": "29513805690",
        "videos": 4812,
        "ranks": {
          "sb": 37911,
          "subscribers": 12,
          "views": 101,
          "country": 1,
          "category": 6
        },
        "grade": "B+"
      },
      "daily_history": [
        {
          "date": "2025-03-23T00:00:00.000Z",
          "subscribers": 110000000,
          "views": "29510097109",
          "videos": 4811
        },
        {
          "date": "2025-04-01T00:00:00.000Z",
          "subscribers": 110000000,
          "views": "29513805690",
          "videos": 4812
        }
      ],
      "growth_summary": {
        "subscribers_30": 0,
        "views_30": 15342128,
        "videos_30": 1
      },
      "monthly_growth": [
        {
          "date": "2024-10-31T00:00:00.000Z",
          "subscribers": -1000000,
          "views": 25545472
        },
        {
          "date": "2025-03-31T00:00:00.000Z",
          "subscribers": 0,
          "views": 16028318
        }
      ],
      "weekly_growth": [
        {
          "date": "2024-12-02T00:00:00.000Z",
          "subscribers": 0,
          "views": "4863428",
          "videos": 0
        }
      ]
    }
  },
  {
    "identifier": "mrbeast",
    "identifier_type": "channel_username",
    "data": {
      "channel_info": {
        "id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
        "created_at": "2012-02-20T00:00:00.000Z",
        "display_name": "MrBeast",
        "avatar": "https://yt3.ggpht.com/...",
        "banner": "https://yt3.googleusercontent.com/...",
        "country": "US",
        "channel_type": "entertainment",
        "socials": [
          {
            "url": "https://instagram.com/mrbeast",
            "title": "Follow"
          },
          {
            "url": "https://twitter.com/MrBeast",
            "title": "Twitter"
          }
        ],
        "made_for_kids": false,
        "subscribers": 380000000,
        "views": "77096359634",
        "videos": 858,
        "ranks": {
          "sb": 8,
          "subscribers": 1,
          "views": 12,
          "country": 1,
          "category": 1
        },
        "grade": "A++"
      },
      "daily_history": [
        {
          "date": "2025-03-23T00:00:00.000Z",
          "subscribers": 377000000,
          "views": "75915726695",
          "videos": 856
        },
        {
          "date": "2025-04-01T00:00:00.000Z",
          "subscribers": 380000000,
          "views": "77096359634",
          "videos": 858
        }
      ],
      "growth_summary": {
        "subscribers_30": 12000000,
        "views_30": 2911596733,
        "videos_30": 8
      },
      "monthly_growth": [
        {
          "date": "2024-06-30T00:00:00.000Z",
          "subscribers": 28000000,
          "views": 3186558099
        },
        {
          "date": "2025-03-31T00:00:00.000Z",
          "subscribers": 12000000,
          "views": 2984022871
        }
      ],
      "weekly_growth": [
        {
          "date": "2025-03-31T00:00:00.000Z",
          "subscribers": 3000000,
          "views": "751080521",
          "videos": 0
        }
      ]
    }
  }
]

Directory Structure Tree

unlimited-socialblade-youtube-api-scraper/
├── src/
│   ├── main.py
│   ├── client/
│   │   ├── __init__.py
│   │   ├── socialblade_client.py
│   │   └── http_session.py
│   ├── models/
│   │   ├── channel_info.py
│   │   ├── history_daily.py
│   │   ├── history_weekly.py
│   │   ├── history_monthly.py
│   │   └── growth_summary.py
│   ├── parsers/
│   │   ├── channel_parser.py
│   │   └── timeseries_parser.py
│   ├── services/
│   │   ├── channel_analytics_service.py
│   │   └── rank_calculator.py
│   ├── utils/
│   │   ├── date_utils.py
│   │   ├── logging_utils.py
│   │   └── validation.py
│   └── config/
│       ├── settings.py
│       └── defaults.json
├── tests/
│   ├── test_channel_info.py
│   ├── test_timeseries_parsing.py
│   └── test_client_integration.py
├── examples/
│   ├── basic_usage.py
│   ├── bulk_channels.py
│   └── notebook_demo.ipynb
├── data/
│   ├── sample_input.json
│   └── sample_output.json
├── scripts/
│   ├── export_to_csv.py
│   ├── export_to_parquet.py
│   └── refresh_channels.sh
├── pyproject.toml
├── requirements.txt
├── LICENSE
└── README.md

Use Cases

  • Creator analytics platforms use it to sync up-to-date subscriber, view, and rank data for thousands of channels, so they can power dashboards and alerts with reliable growth metrics.
  • Talent and influencer agencies use it to compare potential clients by historical growth and engagement trends, so they can make better signing and pricing decisions based on real data.
  • Brand and campaign managers use it to track partner channel performance during campaigns, so they can attribute lift, optimize spend, and report results with concrete numbers.
  • Market researchers and analysts use it to build longitudinal datasets of creator ecosystems, so they can study growth patterns, category shifts, and regional performance over time.
  • Developers of internal tools use it to plug an easy SocialBlade YouTube API–style layer into existing data pipelines, so they can avoid maintaining brittle manual exports or one-off scripts.

FAQs

Q1: How should I structure identifiers for best performance? Send multiple channels in a single request whenever possible. The process is optimized for batch execution, so grouping identifiers (e.g., hundreds of usernames or IDs) into one run reduces overhead and yields faster total throughput.

Q2: Is there a limit to how many identifiers I can request at once? There is no hard upper limit enforced by the logic itself. In practice, you will get the best results by balancing batch size with your infrastructure limits: thousands of channels per batch are typically fine, but extremely large lists might be better split into several runs to keep runtime predictable.

Q3: Which identifier type should I use: username, channel ID, or URL? Use channel IDs for maximum stability whenever you already have them, since they do not change. Usernames and URLs are perfectly supported and convenient when exploring or working with ad-hoc lists. All forms ultimately resolve to the same canonical channel.

Q4: What time windows can I configure for history and growth metrics? You can adjust parameters like daily_history_days and weekly_growth_years to control how much history is returned. Long windows produce richer analysis but larger payloads, so for lightweight dashboards you might choose just the last 7–30 days, while research workloads can safely request longer histories.


Performance Benchmarks and Results

Primary Metric: On a typical modern server, the scraper can process 50–150 channels per minute in a single batch while collecting full channel info plus daily, weekly, and monthly growth series, depending on network conditions and requested history depth.

Reliability Metric: With conservative retry logic and validation, end-to-end success rates above 98% are common across large batches, and failed channels can be safely retried without affecting already processed results.

Efficiency Metric: Batching multiple identifiers in one run reduces overhead significantly: compared to one-channel-per-run workflows, total runtime and resource usage can drop by 40–60% for medium and large channel lists.

Quality Metric: Channel metadata and metric series are normalized into a consistent JSON schema, with fields validated and coerced into stable formats. In practice, this yields high data completeness and minimizes the need for downstream cleaning before loading into BI tools or data warehouses.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
★★★★★

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
★★★★★

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
★★★★★

Releases

No releases published

Packages

 
 
 

Contributors