YouTube Video Metadata Scraper - Details to JSON
Pricing
from $1.20 / 1,000 results
YouTube Video Metadata Scraper - Details to JSON
Export known YouTube video details with explicit source labels. Get available titles, descriptions and metrics, or reject the limited oEmbed fallback.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Ben
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 hours ago
Last modified
Categories
Share
Enrich known public YouTube video URLs with available titles, descriptions, channel fields, dates and engagement metrics. Every row identifies whether it came from the video page or the limited public oEmbed response, so integrations can distinguish detailed and basic records.
Try a small export: Python course video metadata example. Free-plan result events cost $1.5 per 1,000 video records, plus the Actor-start event. Check the Pricing tab for your account’s discounts.
Cloud availability, September 10, 2026: the tested Apify run returned basic oEmbed metadata. Full video-page extraction worked locally but encountered a source access block in the cloud. Do not depend on detailed metrics until your own run returns metadata_source: video_page.
Tested input
{"videoUrls": ["https://www.youtube.com/watch?v=K5KVEU3aaeQ"]}
Run the Actor, open Dataset → Overview, then export JSON, CSV or Excel. The example above returned one record in a September 10, 2026 Apify run. Source availability can change.
Real output
Selected fields from that run:
{"video_id": "K5KVEU3aaeQ","title": "Python Full Course for Beginners","channel": "Programming with Mosh","duration_seconds": null,"view_count": null,"like_count": null,"comment_count": null,"upload_date": null,"metadata_source": "oembed"}
Input controls
Supply videoUrls as one value or a list of up to 100 public video URLs or eleven-character video IDs. Standard watch, short-link, Shorts, embed and live-video URLs are accepted. Duplicate video IDs run once. Channel and playlist URLs are rejected. Set requireFullMetadata: true to reject oEmbed fallback when video-page extraction fails.
Scope and field availability
metadata_source: video_page identifies video-page extraction, but individual fields can still be unavailable. metadata_source: oembed contains basic title, author/channel URL and thumbnail data; description, duration, engagement and dates remain null. Both are billable video results when fallback is allowed. Strict mode rejects oEmbed, but it does not guarantee that every field exists in the video-page response.
Costs, limits and failures
On the Free plan, each exported video record costs $0.0015. The start event costs $0.00005 per allocated GB, with a minimum of one event. At 512 MB, the 1-record example costs $0.00155 in Actor events before discounts. Prices remain unchanged in this update.
Set a maximum charge in the run options. Delivery stops when the result budget is reached. Duplicate input URLs or IDs are collapsed before retrieval; rerunning the same input later is a new billable observation. Limits are upper bounds, not guaranteed row counts.
The Output tab links to SUMMARY. Source errors fail the run while retaining any valid rows already exported; successful earlier rows retain their result charges. Inspect the summary, dataset and run log before retrying. An unavailable source is not evidence that a channel, playlist or video was deleted. A legitimate empty collection or a filter excluding every video can still return zero rows successfully.
Export an existing run with Python
Install apify-client, set APIFY_TOKEN and APIFY_DATASET_ID, and export the completed dataset without starting another run:
import jsonimport osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])rows = list(client.dataset(os.environ["APIFY_DATASET_ID"]).iterate_items())with open("youtube-video-metadata-scraper.json", "w", encoding="utf-8") as output:json.dump(rows, output, ensure_ascii=False, indent=2)
Save a Task for each recurring input and schedule it through Apify. API and automation workflows can reuse the same input. Compare video IDs between runs when building a monitoring database.
Questions before running
Does it return transcripts or download media? No. It returns metadata only.
Why are metrics null? The source may omit them, or the Actor may have used oEmbed. Inspect metadata_source and availability.
Can I require full details? requireFullMetadata disables oEmbed fallback. It does not invent fields YouTube withholds.
Related YouTube workflows
- Keyword search discovers video URLs from phrases.
- Playlist export collects videos from known playlists.
- Transcripts and subtitles exports available caption tracks.