This content isn't available, try again later: YouTube rate limit

This YouTube error means the session or account went over YouTube's video request rate limit.

This content isn't available, try again later.

Short answer

This YouTube error means the session or account went over YouTube's video request rate limit. The documented limits, how long the block lasts and how to pace requests.

Diagnosis checked 2026-11-11; sources below.

Why it happens

The guest session or account went over YouTube's video request rate limit (about 300 videos an hour for guest sessions, about 2,000 for accounts), and yt-dlp reports it as rate-limited for up to an hour. Source: yt-dlp wiki: This content isn't available.

Do this now

  1. If the data is yours or your use fits the official terms, switch to the official route: YouTube Data API v3 (Public API). No per-call fee is published; the constraint is the daily quota. Extra quota is not self-serve.
  2. For video files and metadata at volume, run a hosted route instead of patching your own requests: YouTube Video, Playlist & Channel Downloader with Metadata. The request below runs it with its published example input through the Apify API (your token, billed at the Store price).
  3. Compare every route, with fields and prices, on the YouTube page.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "mode": "metadata",
    "videoUrls": [
        "https://www.youtube.com/watch?v=jNQXAC9IVRw"
    ],
    "playlistUrls": [],
    "channelUrls": [],
    "searchQueries": [],
    "videoQuality": "360p",
    "container": "auto",
    "audioOnly": False,
    "audioFormat": "m4a",
    "downloadSubtitles": False,
    "subtitleLanguages": [
        "en"
    ],
    "subtitleFormat": "vtt",
    "includeTranscript": False,
    "maxVideos": 1,
    "maxMinutes": 30,
    "maxMB": 100,
    "allow4K": False,
    "storage": "ephemeral_kvs",
    "storageRetentionDays": 7,
    "s3Prefix": "youtube-downloader",
    "s3Region": "auto",
    "proxyConfiguration": {
        "useApifyProxy": True
    }
}

run = client.actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "mode": "metadata",
    "videoUrls": [
        "https://www.youtube.com/watch?v=jNQXAC9IVRw"
    ],
    "playlistUrls": [],
    "channelUrls": [],
    "searchQueries": [],
    "videoQuality": "360p",
    "container": "auto",
    "audioOnly": false,
    "audioFormat": "m4a",
    "downloadSubtitles": false,
    "subtitleLanguages": [
        "en"
    ],
    "subtitleFormat": "vtt",
    "includeTranscript": false,
    "maxVideos": 1,
    "maxMinutes": 30,
    "maxMB": 100,
    "allow4K": false,
    "storage": "ephemeral_kvs",
    "storageRetentionDays": 7,
    "s3Prefix": "youtube-downloader",
    "s3Region": "auto",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

const run = await client.actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~youtube-video-playlist-and-channel-downloader/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"mode":"metadata","videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"playlistUrls":[],"channelUrls":[],"searchQueries":[],"videoQuality":"360p","container":"auto","audioOnly":false,"audioFormat":"m4a","downloadSubtitles":false,"subtitleLanguages":["en"],"subtitleFormat":"vtt","includeTranscript":false,"maxVideos":1,"maxMinutes":30,"maxMB":100,"allow4K":false,"storage":"ephemeral_kvs","storageRetentionDays":7,"s3Prefix":"youtube-downloader","s3Region":"auto","proxyConfiguration":{"useApifyProxy":true}}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=nimbryxo-studio/youtube-video-playlist-and-channel-downloader",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

Open YouTube Video, Playlist & Channel Downloader with Metadata in Apify Store

Routes that work for YouTube data

The official route first, then the catalogue Actors that fit this problem (video files and metadata), by their published fields. Store figures are the publisher's public numbers.

Routes for YouTube data
RouteCore fieldsPrice / 1KSuccess, 30 daysLink
Public APIYouTube Data API v3not comparedbelowOfficial docs
YouTube Video, Playlist & Channel Downloader with Metadata4/8$0.9996% of 24 runsOpen in Apify Store
YouTube Video Metadata & Chapter Extractor7/8$0.9916 runs, too few to rateOpen in Apify Store
YouTube Playlist Contents & Channel Playlist Finder7/8$0.9913 runs, too few to rateOpen in Apify Store

Official price: No per-call fee is published; the constraint is the daily quota. Extra quota is not self-serve. Compare all 25 YouTube routes.

The facts behind the error

FactValue
What it meansThe YouTube guest session or account exceeded YouTube's video request rate limit
Block lengthyt-dlp reports the session or account as rate-limited by YouTube for up to an hour
Guest session limitAbout 300 videos an hour (about 1,000 webpage or player requests)
Account limitAbout 2,000 videos an hour (about 4,000 webpage or player requests)
Documented recoveryAdd a delay of about 5-10 seconds between downloads with yt-dlp's -t sleep preset
First trackedyt-dlp issue #11426, opened November 1, 2024; maintainers called it a newly enforced rate limit

Sources

Every dated claim on this page comes from the public sources below. Check the source before you make a business decision on it.

Content updated 2026-11-11Data checked 2026-11-11

Get YouTube data with a catalogue Actor

YouTube Search Results & Entity Type Scraper returns 7 of 8 core YouTube fields at $0.99 per 1,000 results. Compare all 25 YouTube routes.

Open in Apify Store