YouTube Video Search Scraper
Pricing
from $5.00 / 1,000 videos
YouTube Video Search Scraper
Input keywords to search YouTube videos. Outputs matching videos with titles, URLs, CDN stream links, thumbnails, channel details, views, likes, comments, durations, tags, mentions, descriptions, codecs, categories, and upload dates.
Pricing
from $5.00 / 1,000 videos
Rating
0.0
(0)
Developer
CodeNest
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
🎬 YouTube Video, Shorts & Playlist Scraper - Search, Direct URLs & Playlist Extraction
The most comprehensive, high-speed YouTube scraper on Apify! Extract YouTube videos, Shorts, and entire Playlists via Search Keywords, Direct Video URLs, or Playlist Links with direct progressive MP4 stream links (with sound), full engagement metrics, creator intelligence, and rich metadata.
📋 Overview
Whether you want to scrape specific YouTube videos, download metadata from complete playlists, or discover videos across niche keywords, this YouTube Video, Shorts & Playlist Scraper delivers enterprise-grade performance:
- 🎯 Direct Video & Shorts Scraping - Paste any YouTube watch URL, Shorts link, or youtu.be link to extract instant details.
- 📋 Full Playlist Extraction - Scrape entire playlists with configurable video limits (
max_videos_per_playlist). - 🔍 Multi-Engine Keyword Discovery - Search across YouTube directly and search indexes for maximum coverage.
- 🔊 Direct CDN Stream URLs (With Sound) - Authentic Google CDN progressive MP4 stream links with verified audio (
has_audio: true). - 📊 Complete Engagement Data - Real-time view counts, likes, comments, and upload timestamps.
- 👤 Channel & Creator Attribution - Channel title, channel ID, channel URL, and creator mentions.
- 🏷️ Tags & Mentions Extraction - Full tags array, description text, and extracted @mentions.
- 💎 Pay-Per-Event (PPE) Monetization - Pay only for successfully verified videos ($0.005 per video). Free tier includes 3 free videos to test!
Perfect for content creators 🎬, AI model training datasets 🤖, market researchers 📈, social media analysts 📊, and music aggregators 🎵!
⭐ Core Capabilities
🎯 1. Direct Video & Shorts Scraping
- Supports standard watch URLs (
https://www.youtube.com/watch?v=...) - Supports YouTube Shorts (
https://www.youtube.com/shorts/...) - Supports short domains (
https://youtu.be/...) and embed links (/embed/...) - Instant extraction of full video metadata without searching
📋 2. YouTube Playlist Extraction
- Scrape any public or unlisted YouTube playlist (
https://www.youtube.com/playlist?list=...) - Customizable candidate extraction limit via
max_videos_per_playlist(1 to 500 videos) - Deduplicates videos automatically so you never scrape or pay for duplicates
🔍 3. Multi-Keyword Search Discovery
- Native YouTube Search - 100% relevant, fast first-round extraction
- Google SERP & Deep Search Indices - Discovers deep video candidates
- Source Tracking - Clear attribution indicating which keyword or URL yielded each video (
source_typeandsource)
🔊 4. Authentic CDN Stream Links with Sound
- Direct Google CDN MP4 video streams
- Guaranteed audio codec (
mp4a.40.2AAC audio) - Codec details for video (
avc1.42001E) and audio
📊 5. Engagement Metrics & Rich Data
- View counts, like counts, and comment counts
- Duration in raw seconds and human-readable format (
HH:MM:SS) - High-resolution thumbnail images (
maxresdefaultorhqdefault) - Full video descriptions, tags, categories, and @mentions
⚙️ Input Configuration
You can provide Direct Video URLs, Playlist URLs, Search Keywords, or any combination!
Example 1: Direct Video URLs & Playlists
{"start_urls": [{ "url": "https://www.youtube.com/watch?v=0CTkiCtjzOM" },{ "url": "https://www.youtube.com/shorts/3SrPOrNqOgM" },{ "url": "https://www.youtube.com/playlist?list=PLgxs93BSP-hrI_pMZT28kVmGcvfFq234b" }],"max_videos_per_playlist": 50,"concurrency": 10}
Example 2: Keyword Search Discovery
{"keywords": ["hindi song","gaming highlights"],"max_videos_per_keyword": 50,"concurrency": 10}
Example 3: Combined (URLs + Playlists + Keywords)
{"start_urls": [{ "url": "https://www.youtube.com/watch?v=ujtwJ2z7QrY" },{ "url": "https://www.youtube.com/playlist?list=PLgxs93BSP-hrI_pMZT28kVmGcvfFq234b" }],"keywords": ["lofi music"],"max_videos_per_keyword": 20,"max_videos_per_playlist": 30,"concurrency": 10}
📝 Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
start_urls | Array | ⚪ Optional | [] | List of direct YouTube video URLs, Shorts links, or Playlist URLs to scrape directly. |
keywords | Array | ⚪ Optional | ["health"] | Search keywords or topics to find videos across YouTube. |
max_videos_per_keyword | Integer | ⚪ Optional | 20 | Maximum number of verified videos to scrape per search keyword (1–1000). |
max_videos_per_playlist | Integer | ⚪ Optional | 50 | Maximum number of videos to extract from each playlist URL (1–500). |
concurrency | Integer | ⚪ Optional | 10 | Parallel workers for verification and scraping (1–25). |
proxy_serp | Object | ⚪ Optional | GOOGLE_SERP | Apify Google SERP proxy configuration for search index queries. |
proxy_residential | Object | ⚪ Optional | RESIDENTIAL | Apify Residential proxy configuration for fallback and rate-limit bypass. |
📤 Output Structure
Every item saved in the Apify dataset contains verified metadata and an active CDN stream with sound:
[{"video_id": "0CTkiCtjzOM","title": "90’S Old Hindi Songs💗 90s Love Song💛Udit Narayan, Alka Yagnik, Kumar Sanu","url": "https://www.youtube.com/watch?v=0CTkiCtjzOM","raw_cdn_stream_url": "https://rr1---sn-n02xgoxufvg3-2gb6.googlevideo.com/videoplayback?expire=...","media_type": "video","source_type": "direct_url","source": "https://www.youtube.com/watch?v=0CTkiCtjzOM","source_keyword": "https://www.youtube.com/watch?v=0CTkiCtjzOM","channel_title": "Anish Golu Official","channel_id": "UCcV7aONSTnxXWrOdBJ5qjOg","channel_url": "https://www.youtube.com/channel/UCcV7aONSTnxXWrOdBJ5qjOg","duration": 5352,"duration_formatted": "1:29:12","views_count": 1234457,"likes_count": 2590,"comments_count": 37,"mentions": ["@Anishgoluofficial", "@HindiRDMusic"],"tags": ["hindi song", "old is gold", "bollywood songs"],"upload_date": "2026-10-24","thumbnail_url": "https://i.ytimg.com/vi/0CTkiCtjzOM/maxresdefault.jpg","description": "90’S Old Hindi Songs Jukebox collection featuring timeless melodies...","categories": ["Music"],"has_audio": true,"audio_codec": "mp4a.40.2","video_codec": "avc1.42001E","is_live": false,"scraped_at": "2026-10-26T09:15:30.123456+00:00"}]
📖 Output Field Documentation
| Field | Type | Description |
|---|---|---|
video_id | String | Unique 11-character YouTube video ID. |
title | String | Full title of the YouTube video. |
url | String | Canonical YouTube watch or short URL. |
raw_cdn_stream_url | String | Direct Google CDN progressive MP4 stream URL (playable with video and sound). |
media_type | String | "video" for standard videos or "short" for YouTube Shorts. |
source_type | String | How this video was discovered: "direct_url", "playlist", or "keyword". |
source | String | The exact URL or keyword search query that produced this video. |
source_keyword | String | Identical to source (provided for backward compatibility). |
channel_title | String | Name of the YouTube channel/creator. |
channel_id | String | Channel ID of the creator. |
channel_url | String | Direct URL to the channel page. |
duration | Integer | Total duration of the video in seconds. |
duration_formatted | String | Duration formatted as MM:SS or HH:MM:SS. |
views_count | Integer | Total view count at the time of scraping. |
likes_count | Integer | Total number of likes. |
comments_count | Integer | Total number of comments. |
mentions | Array | All @mentions discovered in the title and description. |
tags | Array | Video creator keywords/tags. |
upload_date | String | Video upload date formatted as YYYY-MM-DD. |
thumbnail_url | String | URL to the highest resolution thumbnail image available. |
description | String | Complete description text of the video. |
categories | Array | YouTube category classifications (e.g. ["Music"], ["Gaming"]). |
has_audio | Boolean | Always true — only videos with verified progressive audio streams are collected. |
audio_codec | String | Audio codec specification (e.g. mp4a.40.2). |
video_codec | String | Video codec specification (e.g. avc1.42001E). |
is_live | Boolean | true if video was a live stream, false otherwise. |
scraped_at | String | UTC timestamp in ISO 8601 format when video was scraped. |
💎 Pay-Per-Event (PPE) Pricing & Free Tier
This actor operates on Apify's Pay-Per-Event (PPE) model:
- 💰 Verified Video: $0.005 per successfully scraped video with progressive audio.
- 🆓 Free Tier Policy: Free/unpaid Apify accounts can scrape up to 3 videos per run at no cost for testing and evaluation.
- 🛡️ Zero Waste Guarantee: You are never charged for dead links, restricted videos, or failed searches. You only pay for verified output records.
- 🛑 Spending Limit Protection: The actor automatically monitors the user-configured spending limit (
ACTOR_MAX_TOTAL_CHARGE_USD) and stops gracefully if the limit is reached.
💡 Common Use Cases
- 🎵 Music & Audio Libraries: Gather song collections with exact duration and direct playable streams.
- 📈 Competitor & Trend Analysis: Track high-performing videos across specific niches and keywords.
- 🤖 AI & ML Training Datasets: Scrape high-quality video metadata, descriptions, tags, and transcripts for LLM / vision training.
- 📱 Social Media Archiving: Build playlists and catalog video collections from public YouTube channels.
- 🎙️ Podcast & Interview Scraping: Extract full episode details and view counts from creator playlists.
⚠️ Notes & Best Practices
- Stream URL Expiration: Like all YouTube CDN streams,
raw_cdn_stream_urlis signed by Google CDN and expires after its TTL (typically 6 hours). Use it promptly or stream directly. - Playlists: Public and unlisted playlists are supported. Private playlists require account access and cannot be scraped.
- Shorts: YouTube Shorts are automatically detected (
media_type: "short").
📧 Support & Custom Requirements
Need custom features such as subtitle/transcript extraction, automated cloud uploads (S3/Google Drive), or custom webhooks?
✉️ Contact us at codenest2.0@gmail.com for custom enterprise actors and integrations!