VideoIntel - Universal Video Metadata Extractor avatar

VideoIntel - Universal Video Metadata Extractor

Pricing

from $0.00005 / actor start

Go to Apify Store
VideoIntel - Universal Video Metadata Extractor

VideoIntel - Universal Video Metadata Extractor

Check video URL support and extract metadata, thumbnails, metrics, formats and permitted downloads from YouTube, TikTok, Instagram, Facebook, X/Twitter, Vimeo, Twitch, Kick, SoundCloud and 1,500+ sites.

Pricing

from $0.00005 / actor start

Rating

5.0

(2)

Developer

Prashant Patil

Prashant Patil

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

5 days ago

Last modified

Share

Extract structured metadata from public video URLs and return clean Apify Dataset rows.

VideoIntel is built for bulk video intelligence workflows such as creator research, social media monitoring, video cataloging, lead enrichment, content audits, and internal media operations.

Important: Use this Actor only for videos you are legally allowed to access and process. Do not use it to bypass DRM, paywalls, private content protections, or a platform's access controls.

What You Get

  • Bulk metadata extraction from public video URLs.
  • Support for many yt-dlp compatible platforms, including YouTube videos, YouTube Shorts, TikTok videos, Instagram Reels, Facebook videos, Vimeo, Dailymotion, and more.
  • Structured JSON output with title, uploader, duration, views, likes, comments, upload date, thumbnails, source URL, platform IDs, and channel details.
  • Optional format metadata for users who need technical video details.
  • Failed or unsupported URLs returned as dataset rows, so one bad URL does not stop a bulk run.
  • Optional download mode for videos you are legally allowed to download.

Common Use Cases

  • Build creator and channel research datasets.
  • Audit public video catalogs at scale.
  • Enrich lead lists with video engagement metrics.
  • Monitor public social video performance.
  • Collect thumbnail, title, duration, and upload metadata for internal media tools.

Input

{
"urls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"urlsDatasetId": "",
"datasetUrlField": "url",
"datasetStartOffset": 0,
"operation": "metadata",
"includeFormats": false,
"includeDirectMediaUrls": false,
"includeSubtitles": false,
"proxyConfiguration": {
"useApifyProxy": true
},
"maxConcurrency": 3,
"maxUrls": 0,
"maxRetries": 2,
"timeoutSecs": 60,
"maxFileSizeMb": 100,
"failOnUnsupported": false
}

Large Batches

The direct Video URLs input is meant for quick runs and API examples. For large jobs such as 10,000 or 100,000 URLs, put the URLs in an Apify Dataset and select it in Input Dataset.

Expected Dataset row shape:

{ "url": "https://www.youtube.com/watch?v=..." }

You can also use sourceUrl, videoUrl, or webpageUrl, or set Dataset URL field to your own column name.

For very large runs:

  • Use Input Dataset instead of pasting all URLs into the Actor input.
  • Keep maxConcurrency modest for strict platforms, usually 1 to 3.
  • Use Dataset start offset to resume or split a huge list into chunks.
  • Use Max URLs to process to test a small slice before launching the full batch.
  • Give the run enough timeout, memory, proxy access, and maximum cost allowance for the expected number of results.

Internally, VideoIntel streams URLs through a bounded worker queue, so it does not create one task per input URL.

Proxy Support

Some platforms treat cloud traffic differently from local browser traffic. If a URL works on your laptop but fails in an Apify cloud run, enable proxies in the Proxy configuration input.

When proxying is enabled, VideoIntel creates a separate proxy session for each input URL. This gives each video extraction a stable IP during its own yt-dlp requests while still rotating between URLs in bulk runs.

Recommended setup for strict platforms:

  • Enable Apify Proxy in Proxy configuration.
  • Use residential proxies when available for YouTube, TikTok, Instagram, Facebook, and other platforms that aggressively block datacenter IPs.
  • Keep maxConcurrency modest for strict platforms, usually 1 to 3.
  • Keep maxRetries enabled so temporary proxy challenges can retry with a fresh proxy session.
  • Retry failed URLs in a later run if the platform temporarily rate-limits or challenges the proxy IP.

Proxy availability and cost depend on the Apify account and selected proxy group. Proxies reduce IP-based blocking, but they cannot access private, deleted, region-blocked, age-restricted, paywalled, or account-only content.

YouTube can still challenge datacenter or automatic proxy IPs. For YouTube-heavy batches, use residential proxies when available.

Output

Each URL creates one Dataset item:

{
"sourceUrl": "https://www.youtube.com/watch?v=...",
"status": "success",
"platform": "Youtube",
"videoId": "...",
"title": "Video title",
"duration": 123,
"viewCount": 100000,
"likeCount": 5000,
"commentCount": 200,
"uploader": "Channel name",
"uploadDate": "2026-06-15",
"thumbnail": "https://...",
"webpageUrl": "https://..."
}

Failed URLs are returned as rows instead of crashing the run, unless failOnUnsupported is true.

{
"sourceUrl": "https://example.com/not-supported",
"status": "failed",
"errorCode": "download-error",
"errorMessage": "Unsupported URL"
}

Download Mode

Set operation to download.

{
"urls": ["https://www.youtube.com/watch?v=..."],
"operation": "download",
"preferredQuality": "480p",
"maxFileSizeMb": 100
}

Downloaded files are stored in the run's default key-value store. Dataset rows include:

{
"status": "success",
"fileKey": "VIDEO-abc123.mp4",
"fileUrl": "https://api.apify.com/v2/key-value-stores/<STORE_ID>/records/VIDEO-abc123.mp4"
}

Users need their Apify token to access private run storage through the API.

Only use download mode for videos you own, control, or are otherwise legally allowed to download. This Actor does not bypass DRM, paywalls, private content protections, or platform access controls.

Pricing

This Actor uses pay-per-event pricing. Each metadata result is written as one default dataset item, so pricing is predictable for both small and bulk jobs.

You pay for:

  • Actor start.
  • Each video metadata result written to the default dataset.

Download mode may involve additional file storage and transfer costs depending on the run configuration.

API usage

Synchronous call, best for small runs under 5 minutes:

curl -X POST \
"https://api.apify.com/v2/acts/upworkprashantp~videointel-video-metadata-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"operation": "metadata"
}'

Asynchronous call, best for bulk jobs:

curl -X POST \
"https://api.apify.com/v2/acts/upworkprashantp~videointel-video-metadata-extractor/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"operation": "metadata"
}'

Then use the returned defaultDatasetId to fetch results:

$curl "https://api.apify.com/v2/datasets/DEFAULT_DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"