YouTube data
List every video of a YouTube channel: title, video id, duration, view count, publish date and thumbnail, plus channel name, handle and subscriber count. Paste channel URLs, @handles or channel ids. Only delivered videos are charged.
One video delivered to the dataset. Channels that fail or have no public videos are never charged.
ACTOR=steadydata~youtube-channel-videos URL="https://api.apify.com/v2/acts/$ACTOR/run-sync-get-dataset-items" curl -X POST "$URL?token=$APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"channels": ["@mkbhd"], "maxVideosPerChannel": 100, "language": "en"}' # rows come straight back as JSON, one object per delivered row
| Field | Name | What it does |
|---|---|---|
channelsrequired | Channels | Channel URLs, @handles or channel ids. All of these work: https://www.youtube.com/@mkbhd, @mkbhd, https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ, UCBJycsmduvYEL83R_U4JriQ. |
maxVideosPerChannel | Max videos per channel | Stop after this many videos per channel, newest first. This is your cost ceiling: one delivered video is one charged event. |
language | Language | Interface language for the texts YouTube returns, e.g. en, nl, de. Affects wording such as the publish date. |
country | Country | ISO country code used for the request, e.g. US, NL, DE. |
| Field | Type |
|---|---|
channelId | string, null |
channelName | string, null |
channelHandle | string, null |
channelUrl | string, null |
channelSubscribers | integer, null |
channelVideoCount | integer, null |
videoId | string, null |
url | string, null |
title | string, null |
duration | string, null |
durationSeconds | integer, null |
viewCount | integer, null |
publishedText | string, null |
thumbnailUrl | string, null |
status | string, null |
input | string, null |
errorCode | string, null |
error | string, null |