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.
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
Event
Price
Per 1,000
Charged for
YouTube channel video youtube-channel-video-listed
$0.0005
$0.50 / 1,000
Charged 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
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.
Field
Type
Default
Meaning
channels *
array
required
YouTube 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.
maxVideos
integer
30
Max 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.
sort
string
"latest"
Sort order latest = newest uploads first; popular = most viewed first. One of "latest", "popular".
maxChannels
integer
100
Max channels Safety cap on the number of channels processed in this run. Range 1–1000.
concurrency
integer
3
Concurrency How many channels are listed in parallel (1–8). Range 1–8.
includeRaw
boolean
false
Include raw upstream response Attach the unmodified provider video object to each video record.
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.
Field
Type
Meaning
input
string | object
Input The channel URL, @handle or ID as provided.
recordType
string
Record 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"
position
integer
Position 1-based position of the video in the channel listing.
videoId
string | null
Video ID
url
string | null
URL
type
string | null
Type video / short / live as reported upstream.
title
string | null
Title
description
string | null
Description snippet
publishedAt
string | null
Published at ISO 8601, approximate (derived by the upstream from YouTube's relative time).
publishedTimeText
string | null
Published (relative) e.g. "9 days ago".
durationSecs
number | null
Duration (s)
durationText
string | null
Duration
viewCount
number | null
Views
thumbnailUrl
string | null
Thumbnail URL
channelId
string | null
Channel ID
channelName
string | null
Channel name
channelHandle
string | null
Channel handle
videosDelivered
integer
Videos delivered channel records only.
pagesFetched
integer
Pages fetched channel records only.
reachedEnd
boolean
Reached end channel records only: true when the channel has no more videos.
stoppedByBudget
boolean
Stopped by budget channel records only.
status
string
Status ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
charged
boolean
Charged
chargedEvent
string
Charged event
error
object
Error
warnings
array
Warnings
source
string
Source
fetchedAt
string
Fetched 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"
}