YouTube, channels
Export every video from a YouTube channel to CSV
Type a channel name, an @handle or a channel URL. The Actor walks the channel's Videos tab, opens each video and gives you one row per video with views, the exact like count, publish date, description, hashtags and links. Download it as CSV, Excel or JSON.
- $2 per 1,000 videos
- Channel by plain name
- CSV, Excel or JSON
- No API key
Step by step
- Open the YouTube Scraper on Apify and sign in, or create a free Apify account.
- Type the channel in Channels: a plain name like
Fireship, an@handlelike@NASA, or a channel URL. Add as many channels as you want in one run. - Set Max items to how many videos you want per channel.
- Pick extras if you want them: top comments per video, or estimated dislikes from Return YouTube Dislike.
- Press Start, then export. On the Output tab, download CSV, Excel or JSON, or connect the Google Sheets integration so every run lands in the same sheet.
The columns you get
| Column | What it holds |
|---|---|
title, url, id | The video and its link |
viewCount, likes | Views and the exact public like count |
date, publishedAt | Upload date as YouTube shows it, and as YYYY-MM-DD when YouTube gives a full date |
channelName, channelUrl, numberOfSubscribers | Channel info on every row |
text | The full description |
hashtags, descriptionLinks | Hashtags, and every link in the description with its label: sponsors, socials, affiliate and contact links |
dislikes, comments | Optional: Return YouTube Dislike estimates and top comments |
channelCountry, channelJoinedDate, channelTotalViews | Optional with includeChannelAbout: the channel's About data, no extra charge |
A quick competitor analysis in a spreadsheet
Put two or three channels in one run and add a few formula columns:
- Likes per 1,000 views =
likes / viewCount * 1000. A quick read on how much an audience cares, comparable across channel sizes. - Views per day =
viewCount / (today - publishedAt). Sort by it to find each channel's breakout videos, not just its oldest ones. - Posting rhythm. Pivot
publishedAtby month to see how often each channel publishes and whether output dropped before views did. - Sponsors. Filter
descriptionLinksfor tracking domains to see who sponsors whom.
Schedule the same run weekly and you have a time series of your competitors' catalogue without touching it again.
Playlists
Paste a playlist link into Start URLs and every public video in it comes back as a row with the same columns. That is the quickest way to export any public YouTube playlist to CSV or Excel, yours or anyone else's. A playlist whose paging stops partway keeps the videos it listed and is named in the run's FAILED_INPUTS record, so a short playlist is never silent.
Outlier videos
Channel rows carry outlierScore: the video's views divided by the channel's median views, with channelMedianViews next to it. A score of 2.5 means the video did 2.5 times that channel's normal, which makes a channel's breakout videos easy to sort out without any formula. Sort by it after a run with channelSortBy: "newest" to see what is working right now.
Is this the lowest-cost way to list a channel's videos?
No, and it isn't trying to be. A channel-only tool such as streamers/youtube-channel-scraper lists videos for $1.30 per 1,000 on Apify's Free plan (as of 2026-10-15) because it reads the channel page and stops there. Ours opens every video, so each row carries the exact like count, the full description, hashtags and links, and it can attach comments and dislike estimates without a second tool. If titles and view counts are all you need, use the cheaper one.
Limits
- Videos tab by default. Channel runs read the Videos tab.
channelContentadds the Shorts or Live tab, and Max items then applies to each tab. For Shorts with length and music, use the YouTube Shorts scraper. - Channel About data is opt-in. Turn on
includeChannelAboutto add the channel's country, joined date, total views and links to every row, at no extra charge. - No video length on channel rows yet. The
durationfield is filled for search results only for now; channel, playlist and video-link rows leave it empty. - Recent videos only.
publishedAftertakes a date or an age such as30 daysand skips older videos at no charge;channelSortByreads newest, most popular or oldest first. The search filters (upload date, length, features) apply to search terms only. - Public videos only. Private videos aren't visible to visitors, so they don't appear.
Run it from code
Two channels, up to 200 videos each: at most 400 rows, or $0.80. The rows can also be downloaded directly as CSV from https://api.apify.com/v2/datasets/<datasetId>/items?format=csv.
// Save as run.mjs, then: npm i apify-client && APIFY_TOKEN=... node run.mjs
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yugenox/youtube-scraper').call({
channels: [
"Fireship",
"@NASA"
],
maxItems: 200
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.title, item.viewCount, item.publishedAt);import os
from apify_client import ApifyClient # pip install apify-client
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yugenox/youtube-scraper").call(run_input={
"channels": ["Fireship", "@NASA"],
"maxItems": 200,
})
if run is None:
raise RuntimeError("Run did not finish")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item.get("title"), item.get("viewCount"), item.get("publishedAt"))# Small jobs: runs the Actor and returns the rows in one call (up to 5 minutes).
curl -X POST "https://api.apify.com/v2/acts/yugenox~youtube-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels":["Fireship","@NASA"],"maxItems":200}'Questions people ask
Can I scrape a channel with just its name?
Yes. Type the name as it appears on YouTube, for example Fireship. An @handle or a channel URL works too.
How many videos can I export?
Every public video on the channel's Videos tab, up to the Max items you set (the maximum is 20,000 per input).
Does it include Shorts and live streams?
Channel runs read the Videos tab unless you add shorts or streams in channelContent. Search runs can include Shorts with includeShorts, and live streams can be capped with maxStreams. For Shorts with length and music, use the separate YouTube Shorts Scraper.
Can it update a Google Sheet automatically?
Yes. Schedule the run on Apify and connect the Google Sheets integration, or use Make, Zapier or n8n.
How much does a 500-video channel cost?
500 rows at $2 per 1,000, so $1.00, including comments and dislike estimates if you turn them on.
Run it on your own data
Open the Actor on Apify, paste your input and press Start. You pay per result from your own Apify account, with no subscription to us. Or connect it to your AI assistant and ask in plain English.
Last updated 2026-10-06.