Whether you are researching competitors, picking influencers, tracking a topic or building a dataset, you often need a spreadsheet of YouTube videos with real numbers: views, likes, publish dates and the channel's subscriber count. YouTube does not offer a one-click export for other people's channels, and the official API has strict daily quotas. This guide shows two practical ways to get that data.
What data you can export
For each video: title, description, URL, exact view count, likes (when the creator shows them), publish date, length, category, tags, thumbnail, whether it has captions, and the channel name and subscriber count. You can also record which search query, channel or playlist each video came from and its position there.
No-code: run it from the Apify console
- Open the YouTube Channel & Video Scraper.
- Under Channels, paste channel URLs or
@handles. Under Search queries, add search terms if you want topic research instead. - Set Max videos per source, and optionally Minimum views to skip low-performing videos.
- Click Start, then download the dataset as CSV, Excel or JSON.
Python
import csv
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("neon_innovation_lab/youtube-channel-video-scraper").call(run_input={
"channels": ["@fireship", "@veritasium"],
"searchQueries": ["MCP server tutorial"],
"searchSort": "views", # relevance | date | views | rating
"maxVideosPerSource": 50,
"minViews": 10000, # skipped videos are not billed
})
rows = [r for r in client.dataset(run["defaultDatasetId"]).iterate_items() if r["status"] == "ok"]
fields = ["title", "channelName", "channelSubscribers", "viewCount", "likeCount", "publishDate", "lengthSeconds", "url"]
with open("videos.csv", "w", newline="", encoding="utf-8") as f:
w = csv.DictWriter(f, fieldnames=fields, extrasaction="ignore")
w.writeheader()
w.writerows(rows)
print(len(rows), "videos exported")
Useful analyses once you have the data
- Outlier videos: divide
viewCountbychannelSubscribersto find videos that performed far above the channel's normal audience. - Upload cadence: group
publishDateby week to see how often a competitor publishes. - Topic gaps: run several
searchQueries, sorted by views, and compare titles and tags for angles nobody has covered. - Length vs performance: plot
lengthSecondsagainstviewCountper channel.
What it costs
The Actor is pay per event: $0.003 per video (about $3 per 1,000). Unavailable videos and videos skipped by the minimum-views filter are not charged, and you can set a maximum cost per run in the console. Exporting 200 videos costs about $0.60.
Limits worth knowing
- Likes appear only when the creator makes them public. Subscriber counts are the rounded figures YouTube displays.
- Listings contain what YouTube shows to anonymous visitors, so very deep search results may be capped by YouTube.
- Private, deleted and age-restricted videos are reported as unavailable.
- Respect YouTube's terms of service and applicable law when using the data.
Need what is said in the videos too?
Pair this with the YouTube Transcript Scraper to get timestamped transcripts for the same videos, ready for search or AI summaries.