YouTube Video Search Scraper avatar

YouTube Video Search Scraper

Pricing

from $5.00 / 1,000 videos

Go to Apify Store
YouTube Video Search Scraper

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

CodeNest

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

🎬 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_type and source)
  • Direct Google CDN MP4 video streams
  • Guaranteed audio codec (mp4a.40.2 AAC 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 (maxresdefault or hqdefault)
  • 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

ParameterTypeRequiredDefaultDescription
start_urlsArray⚪ Optional[]List of direct YouTube video URLs, Shorts links, or Playlist URLs to scrape directly.
keywordsArray⚪ Optional["health"]Search keywords or topics to find videos across YouTube.
max_videos_per_keywordInteger⚪ Optional20Maximum number of verified videos to scrape per search keyword (1–1000).
max_videos_per_playlistInteger⚪ Optional50Maximum number of videos to extract from each playlist URL (1–500).
concurrencyInteger⚪ Optional10Parallel workers for verification and scraping (1–25).
proxy_serpObject⚪ OptionalGOOGLE_SERPApify Google SERP proxy configuration for search index queries.
proxy_residentialObject⚪ OptionalRESIDENTIALApify 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

FieldTypeDescription
video_idStringUnique 11-character YouTube video ID.
titleStringFull title of the YouTube video.
urlStringCanonical YouTube watch or short URL.
raw_cdn_stream_urlStringDirect Google CDN progressive MP4 stream URL (playable with video and sound).
media_typeString"video" for standard videos or "short" for YouTube Shorts.
source_typeStringHow this video was discovered: "direct_url", "playlist", or "keyword".
sourceStringThe exact URL or keyword search query that produced this video.
source_keywordStringIdentical to source (provided for backward compatibility).
channel_titleStringName of the YouTube channel/creator.
channel_idStringChannel ID of the creator.
channel_urlStringDirect URL to the channel page.
durationIntegerTotal duration of the video in seconds.
duration_formattedStringDuration formatted as MM:SS or HH:MM:SS.
views_countIntegerTotal view count at the time of scraping.
likes_countIntegerTotal number of likes.
comments_countIntegerTotal number of comments.
mentionsArrayAll @mentions discovered in the title and description.
tagsArrayVideo creator keywords/tags.
upload_dateStringVideo upload date formatted as YYYY-MM-DD.
thumbnail_urlStringURL to the highest resolution thumbnail image available.
descriptionStringComplete description text of the video.
categoriesArrayYouTube category classifications (e.g. ["Music"], ["Gaming"]).
has_audioBooleanAlways true — only videos with verified progressive audio streams are collected.
audio_codecStringAudio codec specification (e.g. mp4a.40.2).
video_codecStringVideo codec specification (e.g. avc1.42001E).
is_liveBooleantrue if video was a live stream, false otherwise.
scraped_atStringUTC 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_url is 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!