YouTube Scraper: Video, Channel, Playlist & Search (No API Key)
Pricing
from $2.00 / 1,000 results
YouTube Scraper: Video, Channel, Playlist & Search (No API Key)
Scrape YouTube videos, channels, playlists and search results without the YouTube API or an API key. Get exact view and like counts, subscribers, duration, tags, category, publish date, thumbnails, chapters and hashtags. Sort and filter search. No key, no quota. Export JSON, CSV, Excel.
Pricing
from $2.00 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
YouTube Scraper: Video, Channel, Playlist and Search Data (No API Key)
Scrape YouTube video data, channel data, playlists and search results without the official YouTube Data API, no API key and no quota. Give it search queries, video URLs, channel URLs or handles, or playlist URLs and get one clean JSON record per video with title, description, exact view count, exact like count, channel name and subscriber count, duration, publish date, tags, category, thumbnails, hashtags, chapters and Shorts / Live flags. Export to JSON, CSV or Excel.
Here is one real result, with the fields the actor returns for an enriched video:
{"videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","description": "The official video for \"Never Gonna Give You Up\" by Rick Astley ...","channelName": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","channelHandle": "@RickAstleyYT","subscriberText": "4.53M subscribers","subscriberCount": 4540000,"viewCount": 1811933605,"viewCountText": "1,811,933,605 views","likeCount": 19374320,"likeCountText": "19374320","commentCount": null,"duration": null,"durationSeconds": 213,"publishedText": "Oct 24, 2009","publishedAt": "2009-10-24","uploadDate": "2009-10-25","category": "Music","tags": ["rick astley", "Never Gonna Give You Up", "nggyu", "rick roll"],"hashtags": ["#RickAstley", "#NeverGonnaGiveYouUp"],"chapters": [],"isLive": false,"isUpcoming": false,"isShort": false,"isFamilySafe": true,"availableCountriesCount": 249,"thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","thumbnails": [{ "url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "quality": "1280x720" }],"source": "video","detailsFetched": true,"observedAt": "2026-09-05T12:00:00.000Z","error": null}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What this YouTube scraper does
- Why use it (no API key, no quota)
- Quickstart
- Input reference
- Output reference
- Comparison with other YouTube scrapers
- Common use cases
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What this YouTube scraper does
This is a YouTube data extractor and video metadata API that reads YouTube's public data layer and returns one normalized record per video. It accepts four kinds of input, in any combination:
- Search queries (
searchQueries): keywords to search YouTube for, with optional sort order, upload-date, duration and type filters. This is your no-key YouTube Search API. - Video URLs (
videoUrls): video URLs or IDs to fetch full per-video details for, including the channel's subscriber count, description and chapters. - Channel URLs or handles (
channelUrls): pull a channel's recent videos for channel analytics and monitoring. - Playlist URLs (
playlistUrls): pull every video in a playlist.
Turn on enrichDetails (default) and each video is upgraded with a full detail record: exact like and view counts, tags / keywords, category, duration in seconds, exact publish and upload dates, channel handle, hashtags, and Shorts / Live flags. Missing values are always returned as null so your schema stays stable.
Why use it (no API key, no quota)
- No API key and no OAuth. You do not need a Google Cloud project or the official YouTube Data API. There is no daily quota to run out of.
- Exact numbers. Get the exact like count and exact view count, not rounded "19M" style values.
- Four inputs in one actor. Search, video, channel and playlist scraping in a single run.
- Fast HTTP transport. No headless browser, so runs are quick and cheap.
- Structured, stable output. Every record carries the same fields with honest
nulls, ready for JSON, CSV or Excel.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the top 10 videos for a search, sorted by view count.
{"searchQueries": ["lofi hip hop"],"sortBy": "views","maxVideos": 10,"enrichDetails": true,"country": "US","language": "en"}
Provide any combination of searchQueries, videoUrls, channelUrls and playlistUrls.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | no | ["lofi hip hop"] | Keywords to search YouTube for. Each query returns matching videos. |
videoUrls | string[] | no | [] | Video URLs or IDs (watch?v=..., youtu.be/..., /shorts/..., or a bare 11-character ID). |
channelUrls | string[] | no | [] | Channel URLs or handles (/@handle, /channel/UC..., /c/name). Returns the channel's recent videos. |
playlistUrls | string[] | no | [] | Playlist URLs or playlist IDs (playlist?list=PL..., or a bare PL... id). |
maxVideos | integer | no | 50 | Maximum number of videos to return across all inputs. Free Apify plans are capped at 10 per run. |
sortBy | string | no | relevance | Sort search results: relevance, date, views, rating (search only). |
uploadDate | string | no | any | Upload-date filter: any, hour, today, week, month, year (search only). |
duration | string | no | any | Duration filter: any, short (<4 min), medium (4-20 min), long (>20 min) (search only). |
videoType | string | no | any | Result type: any, video, channel, playlist, movie (search only). |
enrichDetails | boolean | no | true | Fetch each video's full detail record (see below). Adds a paid details event per enriched video on paying accounts. Turn off for the fastest, cards-only run. |
country | string | no | US | Two-letter country code for results (gl). |
language | string | no | en | Interface language code (hl). |
At least one of searchQueries, videoUrls, channelUrls or playlistUrls must be provided.
Output reference
One dataset item per video. Types are string, integer, boolean, array, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
videoId | string | YouTube 11-character video ID. |
url | string | Canonical watch URL. |
title | string | Video title. |
description | string | Video description (full on detail records, snippet on search cards). |
channelName | string | Name of the channel that published the video. |
channelId | string | Channel ID (UC...). |
channelUrl | string | Canonical channel URL. |
channelHandle | string | Channel handle, for example @RickAstleyYT. |
subscriberText | string | Channel subscriber count as shown, for example 4.53M subscribers. |
subscriberCount | integer | Subscriber count parsed to an integer. |
viewCount | integer | Exact view count (from the detail record) or parsed card value. |
viewCountText | string | View count as shown. |
likeCount | integer | Exact like count from the detail record, or null. |
likeCountText | string | Like count as text. |
commentCount | integer | Comment count. Returned null (see FAQ). |
duration | string | Duration text, for example 1:44:52 (on search / channel / playlist cards). |
durationSeconds | integer | Duration in whole seconds (from the detail record). |
publishedText | string | Relative or absolute publish text, for example 3 years ago or Oct 24, 2009. |
publishedAt | string | Exact publish date normalized to YYYY-MM-DD. |
uploadDate | string | Upload date normalized to YYYY-MM-DD. |
category | string | YouTube category, for example Music, Gaming, Education. |
tags | string[] | Video tags / keywords set by the creator. |
hashtags | string[] | Hashtags parsed from the description. |
chapters | array | Chapters as { title, startSeconds, startText } when the creator set them (video URLs). |
isLive | boolean | true for a live stream. |
isUpcoming | boolean | true for a scheduled / premiere video. |
isShort | boolean | true for a YouTube Short. |
isFamilySafe | boolean | Family-safe flag. |
availableCountriesCount | integer | Number of countries the video is available in. |
thumbnailUrl | string | URL of the best available thumbnail. |
thumbnails | array | All available thumbnails as { url, quality }. |
source | string | search, video, channel or playlist. |
playlistId / playlistTitle | string | Present on playlist-source records. |
detailsFetched | boolean | true when the detail add-on enriched this record. |
observedAt | string | ISO 8601 timestamp when the record was collected. |
error | string | null on success; populated instead of data when an item could not be fetched (never charged). |
Comparison with other YouTube scrapers
Honest comparison against popular Apify YouTube scrapers such as streamers/youtube-scraper and bernardo/youtube-scraper.
| Capability | This actor | streamers / bernardo |
|---|---|---|
| Search query scraping | Yes | Yes |
| Sort order (relevance / date / views / rating) | Yes | Yes |
| Upload-date, duration and type filters | Yes | Yes |
| Video URL scraping | Yes | Yes |
| Channel URL / handle scraping | Yes | Yes |
| Playlist URL scraping | Yes | Yes |
| Exact like count | Yes | Partial |
| Exact view count | Yes | Yes |
| Tags / keywords | Yes | Yes |
| Category, family-safe, availability | Yes | Partial |
| Channel handle + subscriber count | Yes | Yes |
| Shorts / Live / Upcoming flags | Yes | Yes |
| Hashtags and chapters | Yes | Partial |
| No API key required | Yes | Yes |
| Full comment scraping | No | Yes |
| Subtitles / transcript download | No | Yes |
| Headless browser | No (HTTP only, faster) | Yes |
Where the browser-based leaders reach further: streamers/youtube-scraper can download full comment threads and subtitles / transcripts, which this HTTP-only actor does not. If you need comments or transcripts, use a browser-based actor for those two fields. For everything else, including exact like counts, tags, category and availability, this actor returns a strict superset with faster, cheaper runs. Need transcripts specifically? See our YouTube Video Summarizer.
Common use cases
- YouTube search API without a key: pull ranked results for any keyword with sort and date filters.
- Channel analytics and monitoring: track a channel's latest videos, view counts and publish dates.
- Competitor and trend research: collect tags, categories and view counts across many videos.
- Content and playlist audits: export an entire playlist to CSV or Excel.
- Video metadata enrichment: resolve a list of video URLs or IDs into full records for a dataset or dashboard.
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~youtube-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["lofi hip hop"],"sortBy":"views","maxVideos":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~youtube-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"channelUrls":["https://www.youtube.com/@RickAstleyYT"],"maxVideos":50}'
Apify CLI:
apify call scrapers_lat/youtube-scraper \--input '{"videoUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object.
Billing and limits
- Pay per result. You are charged per video record returned (
resultevent). See the pricing tab for the current per-result price. - Optional details add-on. When
enrichDetailsis on, each enriched video also charges a smalldetailsevent for the full detail record (exact counts, tags, category, dates and flags). Enrichment and its charge apply to paying accounts only. TurnenrichDetailsoff to pay the base result price only. - No charge on failure. Items that cannot be fetched are written with a populated
errorfield and are not charged. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxVideos.
FAQ and troubleshooting
Do I need a YouTube API key? No. This actor reads YouTube's public data layer directly. There is no API key, no OAuth and no daily quota.
A run returned 0 records. Why?
No input was provided, or the search matched nothing. Provide at least one of searchQueries, videoUrls, channelUrls or playlistUrls. Zero-result runs are not charged.
Why is likeCount or tags null on some records?
Exact like counts, tags, category and duration in seconds come from the detail add-on. Keep enrichDetails on so search, channel and playlist cards are upgraded. On free Apify accounts the detail add-on does not run, so those fields stay null.
Why is commentCount null?
Comment counts are not exposed on the public video data layer without an extra paginated request, so this field is returned as null for honesty rather than guessed.
Can I get comments or subtitles / transcripts? Not from this actor. Full comment threads and subtitles require a browser-based scraper. See the comparison table above.
Can I mix search, video, channel and playlist inputs?
Yes. Provide any combination; results from all sources are merged and deduplicated by video ID up to maxVideos.
Is this an official YouTube tool? No. This actor is independent and has no affiliation with YouTube or Google. It reads only data that is publicly available.
Related scrapers
- YouTube Video Summarizer: AI summaries of YouTube videos from their transcript.
- Yellow Pages Canada Business Leads Scraper: Canadian business leads.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with YouTube or Google. Accesses only publicly available data.
