Skip to content
Search/
CyberMax › Answers

How to get all videos from a YouTube channel, with views, likes and comments

Updated 2026-12-01 · Data and API builders · by CyberMax

Short answer

Use the official YouTube Data API: look up the channel, page through its uploads list 50 videos at a time, then fetch statistics for each batch. Chanroll on Apify does those three calls for any list of channels with your own free API key and returns one row per video at $0.15 per 1,000 videos plus $0.001 per run; channels that are not found are free.

  1. Create a free YouTube Data API key: Google Cloud Console, new project, enable YouTube Data API v3, Credentials, Create API key (about 3 minutes, no billing account).
  2. Open Chanroll on Apify and paste the key into the YouTube Data API key field.
  3. Add channels as URLs, @handles or UC… IDs, one per line.
  4. Set Videos per channel (0 = every upload) and, if you want, Shorts only, long-form only or a published-after date.
  5. Run. Each video comes back with title, publish date, duration, views, likes, comment count, tags and topics; each channel gets a free row with subscribers and video count.
  6. Download CSV or Excel, or turn on Monitor mode and schedule it to receive only new uploads.

Copy-paste code

Python (pip install apify-client)

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("cybermax/youtube-channel-scraper").call(run_input={"apiKey": os.environ["YOUTUBE_API_KEY"], "channels": ["@GoogleDevelopers"], "maxVideosPerChannel": 50})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)

cURL (one call, rows come back as JSON)

curl -X POST "https://api.apify.com/v2/acts/cybermax~youtube-channel-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"apiKey": "YOUR_YOUTUBE_API_KEY", "channels": ["@GoogleDevelopers"], "maxVideosPerChannel": 50}'

No code: n8n, Make or Zapier

n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method:  POST
URL:     https://api.apify.com/v2/acts/cybermax~youtube-channel-scraper/run-sync-get-dataset-items
Auth:    Header Auth  ->  Authorization: Bearer <your Apify token>
Body:    JSON  {"apiKey": "YOUR_YOUTUBE_API_KEY", "channels": ["@GoogleDevelopers"], "maxVideosPerChannel": 50}

Make:    Apify app -> "Run an Actor" (Actor: cybermax/youtube-channel-scraper, wait for finish = yes) -> "Get Dataset Items"
Zapier:  Apify app -> action "Run Actor" (cybermax/youtube-channel-scraper) -> "Fetch Dataset Items" -> your app

From an AI agent (MCP)

# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
  "mcpServers": {
    "youtube-channel-scraper": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/youtube-channel-scraper",
               "--header", "Authorization: Bearer ${APIFY_TOKEN}"],
      "env": { "APIFY_TOKEN": "<your Apify token>" }
    }
  }
}
# The agent sees one tool, cybermax--youtube-channel-scraper, with the Actor's input schema (pass your YouTube API key in apiKey).
Real run on Apify (12 Nov 2026: 2 channels found, 2 not found, 200 videos in 6.1 s, 12 API units)
rowtitlepublishedlengthviewslikescomments
channelGoogle for Developers: 2,680,000 subscribers, 6,125 videos
videoAccelerate shipping to scale with Google Antigravity2026-10-292:3514,18011214
videoBuilding an autonomous plant rover with Gemini Live2026-10-292:063,3161366
channel@thishandledoesnotexist12345xyz: Channel not found (free)

Source: Chanroll (Apify Actor cybermax/youtube-channel-scraper) README, real Apify run on 12 Nov 2026

Run Chanroll on ApifyYouTube Data API overview (Google)

Why you need your own API key

YouTube's terms and its robots.txt do not allow scraping its pages, so the legitimate way to read video data in bulk is the official YouTube Data API. Google gives each project 10,000 free units a day and ties them to a key, which is why the key is yours and not ours.

The key is a secret input: it is stored encrypted on Apify, sent only to googleapis.com and never written to logs or results. You can restrict it to the YouTube Data API and revoke it at any time.

How the API lists a channel's videos

Every channel has an uploads playlist. Its ID is the channel ID with the first two letters changed from UC to UU. Reading that playlist costs 1 API unit per 50 videos, and one more unit fetches the statistics for those 50, so a 5,000-video channel uses about 200 of the 10,000 free daily units.

YouTube also keeps per-type lists: UULF for long-form videos, UUSH for Shorts and UULV for live streams. Chanroll uses them, so a Shorts-only export never pays for the other videos.

What you do not get

The API returns counts and metadata. It does not return transcripts, comment text or files, and like counts are missing where an owner hides them.

Good to know

View and like counts are the values at run time; every row carries retrievedAt.

YouTube's API terms ask you to refresh or delete stored statistics after 30 days.

Gripeline icon

Gripeline: See what users hate about any app

$0.0001 per review + $0.003 per app summary

Tracking what people say about an app as well? Gripeline pulls App Store and Google Play reviews into the same kind of table.

Runs on your own Apify account, pay per result; failed results are not charged.

Questions

Is it free to try?

Run it with no key for a free demo of the output format. With a key, Apify's free plan includes $5 of monthly credit, enough for about 33,000 videos, and Google's quota is free.

How many videos per day?

About 250,000 on the default quota of 10,000 units.

Can I get only new uploads?

Yes. Monitor mode remembers what it delivered and returns only new videos on each scheduled run.

Can an AI agent use it?

Yes. Apify's MCP server exposes it as cybermax--youtube-channel-scraper.

Free: the Free API Starter Kit

Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Compare the options

App Store and Google Play review scrapers compared: price per 1,000 reviewsGripeline vs two review scrapers on Apify: live price per 1,000 reviews, both stores in one schema, complaint

Related answers

How to export YouTube search results (and trending videos) with view countsTurn YouTube keyword searches and trending charts into a table with views, likes and duration through the offiHow to get views, likes and comments for a list of YouTube videosCheck views, likes, comments and duration for hundreds of YouTube links or a whole playlist through the offici