Youtube Video Details Scraper
Pricing
$5.00/month + usage
Youtube Video Details Scraper
[ π₯ YouTube Video Scraper β¨ ] β‘ Scrape videos & playlists quickly & easily π Get title, description, views, likes & upload date πΊ Grab channel info for research, analytics & content creation π All-in-one tool for unlimited data access ππ‘π₯
Pricing
$5.00/month + usage
Rating
5.0
(1)
Developer

Alpha Scraper
Actor stats
0
Bookmarked
5
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
YouTube Video + Channel Enriched Scraper π¬
Extract detailed YouTube video metadata plus channel βAboutβ text & social links β with human-readable counters.
Built for Apify Actors using the Python SDK. Reads input with Actor.get_input() and writes dataset items with Actor.push_data(). ([Apify Documentation][1])
Features β
- Works with single videos or playlists (process all or a range of items).
- Enriches video data with channel About text and first TikTok / Instagram / X links found on the channel profile. ([Google Help][2])
- Human-friendly counters (e.g.,
1.4M) alongside raw numbers.
Input π§
Provide JSON to the actor:
| Field | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
startUrls | array<{url:string}> | string | β | β | One or more YouTube video or playlist URLs. | [{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}] |
processAll | boolean | β | false | If true, process all items in a playlist. If false, limit via playlistItems. | true |
playlistItems | string | β | "1" | Playlist slice in yt-dlp format (e.g., "1-10", "1,3,5"). Ignored when processAll: true. | "1-25" |
proxyConfiguration | object | β | β | Apify Proxy settings (datacenter/residential, country). Created with Actor.create_proxy_configuration() under the hood. | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" } |
requestTimeoutSec | integer | β | 25 | Timeout for fetching channel About/social links. | 30 |
Example input
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },{ "url": "https://www.youtube.com/playlist?list=PLxxxxxxxx" }],"processAll": false,"playlistItems": "1-5","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"},"requestTimeoutSec": 25}
Output π€
Each processed video yields a JSON object like below.
Example output
{"title": "Never Gonna Give You Up","video_id": "dQw4w9WgXcQ","uploader": "Rick Astley","upload_date": "20091024","publish_date": "2009-10-24","duration": 213,"duration_str": "3:33","view_count": 1500000000,"view_count_str": "1.5B","like_count": 12000000,"like_count_str": "12M","dislike_count": null,"comment_count": 450000,"comment_count_str": "450K","categories": ["Music"],"tags": ["Rick Astley", "80s"],"description": "The official video for βNever Gonna Give You Upβ...","thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","channel_name": "Rick Astley","channel_url": "https://www.youtube.com/@RickAstley","channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw","channel_subscriber_count": 4100000,"channel_subscriber_count_str": "4.1M","about": "Welcome to the official Rick Astley channel...","tiktok": "https://www.tiktok.com/@example","instagram": "https://www.instagram.com/example","x": "https://x.com/example","subtitles": null}
Field reference
Video metadata
| Field | Type | Description |
|---|---|---|
title | string | Video title |
video_id | string | YouTube video ID |
uploader | string | null | Uploader name |
upload_date | string | null | Original upload date (YYYYMMDD) |
publish_date | string | null | ISO date derived from upload/timestamp (YYYY-MM-DD) |
duration | integer | null | Duration in seconds |
duration_str | string | null | Human-readable duration (H:MM:SS or M:SS) |
description | string | null | Video description |
categories | array | null | Video categories |
tags | array | null | Video tags |
thumbnail | string | null | Thumbnail URL |
url | string | Video URL |
subtitles | object | null | Subtitles map from yt-dlp |
Engagement (raw + humanized)
| Field | Type | Description |
|---|---|---|
view_count | integer | null | View count (raw) |
view_count_str | string | null | View count (e.g., 1.4M) |
like_count | integer | null | Like count (raw) |
like_count_str | string | null | Like count (e.g., 320K) |
comment_count | integer | null | Comment count (raw) |
comment_count_str | string | null | Comment count (e.g., 5.6K) |
dislike_count | integer | null | May be unavailable |
Channel enrichment
| Field | Type | Description |
|---|---|---|
channel_name | string | null | Channel display name |
channel_url | string | null | Channel URL |
channel_id | string | null | Channel ID |
channel_subscriber_count | integer | null | Subscribers (raw, if exposed) |
channel_subscriber_count_str | string | null | Subscribers (e.g., 2.3M) |
about | string | null | Channel βAboutβ text |
tiktok | string | null | First TikTok link found on the channel profile |
instagram | string | null | First Instagram link found on the channel profile |
x | string | null | First X/Twitter link found on the channel profile |
Social/profile links are taken from channel profile links that creators can configure on YouTube. If none are set, these fields will be
null. ([Google Help][2])