SFOLN

Catalogue / Social media data

YouTube Channel Videos Scraper

sfoln/youtube-channel-videos · Social media, Videos, Automation On request

List the videos of YouTube channels by URL, @handle or channel ID: title, URL, publish date, duration, views and thumbnail, newest or most popular first, up to 300 per channel. $0.50 per 1,000 videos. No YouTube API key or login needed; failed requests are free.

About

What it does

YouTube Channel Videos Scraper lists the videos of one or many YouTube channels (by channel URL, @handle or UC… channel ID) and returns one dataset record per video: video ID, URL, title, description snippet, publish date (absolute and relative), duration, view count and thumbnail. Choose newest-first or most-popular-first and how many videos per channel (up to 300). Built for channel monitoring, competitor research, content pipelines and AI agents.

Price

Price per delivered record

EventPricePer 1,000Charged for
YouTube channel video
youtube-channel-video-listed
$0.0005$0.50 / 1,000Charged once per video record delivered from a channel's video list. Channel summary records, missing channels and failed requests are not charged, unless the provider billed the lookup of a channel without videos (one event).

Apify free plan: up to 10 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.

Run

Call it from code, an agent or the Console

This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com

curl · synchronous run, rows in the response
curl -X POST "https://api.apify.com/v2/actors/sfoln~youtube-channel-videos/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channels":["https://www.youtube.com/@YouTube"],"maxVideos":10}'
mcp.json · hosted Apify MCP server
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=sfoln/youtube-channel-videos"
    }
  }
}
asynchronous run · for large batches
POST https://api.apify.com/v2/actors/sfoln~youtube-channel-videos/runs?maxTotalChargeUsd=1
GET  https://api.apify.com/v2/actor-runs/{runId}            # until status is SUCCEEDED
GET  https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json

Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: List the 20 most popular videos of the YouTube channel @YouTube with their view counts and publish dates.

Input

Input fields

Paste YouTube channel URLs, @handles or channel IDs. The Actor lists each channel's videos and writes one dataset record per video, plus one summary record per channel.

FieldTypeDefaultMeaning
channels *arrayrequiredYouTube channels
Channel URLs (youtube.com/@handle, /channel/UC…, /c/…, /user/…), @handles or UC… channel IDs. Duplicates are removed. Accounts on the Apify free plan can process up to 10 channels per run.
maxVideosinteger30Max videos per channel
How many videos to list per channel (newest first, or most popular). Each listed video is one charged event. Range 5–300.
sortstring"latest"Sort order
latest = newest uploads first; popular = most viewed first. One of "latest", "popular".
maxChannelsinteger100Max channels
Safety cap on the number of channels processed in this run. Range 1–1000.
concurrencyinteger3Concurrency
How many channels are listed in parallel (1–8). Range 1–8.
includeRawbooleanfalseInclude raw upstream response
Attach the unmodified provider video object to each video record.
Example input
{
  "channels": [
    "https://www.youtube.com/@YouTube"
  ],
  "maxVideos": 10
}

Output

One record per input item

Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.

FieldTypeMeaning
inputstring | objectInput
The channel URL, @handle or ID as provided.
recordTypestringRecord type
video (one per listed video, charged) | channel (one summary per input channel; not charged, except a not_found channel whose empty listing the provider billed) e.g. "video"
positionintegerPosition
1-based position of the video in the channel listing.
videoIdstring | nullVideo ID
urlstring | nullURL
typestring | nullType
video / short / live as reported upstream.
titlestring | nullTitle
descriptionstring | nullDescription snippet
publishedAtstring | nullPublished at
ISO 8601, approximate (derived by the upstream from YouTube's relative time).
publishedTimeTextstring | nullPublished (relative)
e.g. "9 days ago".
durationSecsnumber | nullDuration (s)
durationTextstring | nullDuration
viewCountnumber | nullViews
thumbnailUrlstring | nullThumbnail URL
channelIdstring | nullChannel ID
channelNamestring | nullChannel name
channelHandlestring | nullChannel handle
videosDeliveredintegerVideos delivered
channel records only.
pagesFetchedintegerPages fetched
channel records only.
reachedEndbooleanReached end
channel records only: true when the channel has no more videos.
stoppedByBudgetbooleanStopped by budget
channel records only.
statusstringStatus
ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
chargedbooleanCharged
chargedEventstringCharged event
errorobjectError
warningsarrayWarnings
sourcestringSource
fetchedAtstringFetched at
Example record
{
  "input": "@ThePatMcAfeeShow",
  "recordType": "video",
  "position": 1,
  "videoId": "5EWaxmWgQMI",
  "url": "https://www.youtube.com/watch?v=5EWaxmWgQMI",
  "type": "video",
  "title": "Russell Wilson Hopes To Finish Career As A Steeler, Reflects On NFL Career With Pat McAfee",
  "description": "Welcome to The Pat McAfee Show LIVE from Noon-3PM EST Mon-Fri...",
  "publishedAt": "2025-01-23T22:48:53.914Z",
  "publishedTimeText": "9 days ago",
  "durationSecs": 2245,
  "durationText": "37:25",
  "viewCount": 110447,
  "thumbnailUrl": "https://i.ytimg.com/vi/5EWaxmWgQMI/hqdefault.jpg",
  "channelId": null,
  "channelName": null,
  "channelHandle": "ThePatMcAfeeShow",
  "status": "ok",
  "charged": true,
  "chargedEvent": "youtube-channel-video-listed",
  "source": "scrapecreators",
  "fetchedAt": "2026-10-14T10:00:00.000Z"
}

Machine-readable

This page for agents