Universal video downloader API for YouTube, TikTok, Instagram, X, Twitch and 1000+ more sources. Pass one video URL and choose 4K, 720p, 480p, or metadata-only. Returns 43 normalized fields per video, including views, likes, comments, author, duration, subtitles and chapters, plus a stored file URL.
At a glance
| Store brand | AgentX โ apify.com/agentx |
|---|---|
| Pricing model | pay per event |
| Price per result row | โ |
| 1,000 rows (Free plan) | โ |
| 1,000 rows (Diamond plan) | โ |
| Default / max memory | 256 MB / 512 MB |
| Run timeout | 12 h |
| Public runs, last 30 days | 440 ยท 89.1% succeeded |
| Users | 18 in 30 days ยท 257 all time |
| First published | August 3, 2025 |
| Last build | 1.0.41 on August 26, 2026 |
What you have to give it
1 of the 3 input fields are required; the rest have defaults and can be left out.
| Field | Type | Required | Accepted values | What it does |
|---|---|---|---|---|
video_url | string | yes | https://www.youtube.com/watch?v=aqz-KE-bpKQ | Public video from any supported source link to read. |
video_quality | string | no | high, medium, low โฆ | Metadata Only returns the video from any supported source record without a file. High, Medium, and Low also store the best available rendition within the selected tier. |
max_comments | integer (comments) | no | 0 | Number of comment bodies to request for the video from any supported source. 0 skips comment retrieval. |
A run that works
The values below are the Actor's own prefills, so this input is valid as written:
{
"video_url": "https://www.youtube.com/watch?v=aqz-KE-bpKQ",
"video_quality": "metadata",
"max_comments": 0
} What comes back
Every dataset row carries the 43 fields below. The examples are the ones declared in the Actor's own output schema.
| Field | Type | Example | Meaning |
|---|---|---|---|
id | string | null | dQw4w9WgXcQ | Unique video identifier from the source platform |
source_url | string | null | https://www.youtube.com/watch?v=aircAruvnKk | Canonical page URL of the video on its own platform. |
thumbnail | string | null | https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg | Direct link to the source platform thumbnail image |
platform | string | null | youtube | Source platform as one lowercase token, such as 'youtube', 'twitch' or 'tiktok'. A platform this Actor does not name keeps its source extractor name, lowercased. |
media_type | string | null | video | Kind of media the source reports, such as video or audio. |
live_status | string | null | not_live | Whether the item is a normal recording, currently live, or a finished live stream. |
availability | string | null | public | Source visibility of the item, such as public, unlisted, subscriber_only, or needs_auth. |
age_limit | number | null | 0 | Minimum viewer age the source enforces. Zero means no restriction. |
language | string | null | en | Primary language of the item as reported by the source. |
title | string | null | My Awesome Video | Video title |
description | string | null | Check out this amazing tutorial on how to... | Full video description or caption |
duration | number | null | 213 | Video length in seconds |
published_at | string | null | 2024-03-15T12:00:00.000Z | ISO 8601 timestamp of when the video was published |
author | string | null | CreatorName | Username or display name of the video creator |
author_id | string | null | UCxxxxxxxxxxxxxxxxxxxxxx | Stable channel or uploader identifier on the source platform. |
author_url | string | null | https://www.youtube.com/@CreatorName | Direct link to the creator's profile page |
followers | number | null | 8510000 | Follower or subscriber count of the author's channel at processing time. |
is_verified | boolean | null | true | Whether the author's channel carries a verified badge. |
categories | array | null | Education, Technology | List of categories assigned to the video |
tags | array | null | #tutorial, #coding, #python | Hashtags and keywords associated with the video |
view_count | number | null | 1500000 | Total number of video views |
like_count | number | null | 48200 | Total number of likes or favorites |
shares_count | number | null | 820 | Number of times the video has been shared or reposted |
saves_count | number | null | 58564 | Number of times viewers saved or bookmarked the item, on sources that expose it. |
dislike_count | number | null | 310 | Total number of dislikes (if available) |
comment_count | number | null | 3100 | Total number of comments on the video |
width | number | null | 1920 | Video resolution width in pixels |
height | number | null | 1080 | Video resolution height in pixels |
fps | number | null | 30 | Video frame rate (frames per second) |
video_codec | string | null | avc1.64001E | Video codec of the selected stream, as the source reports it. Absent where the platform serves one pre-muxed stream with no per-track detail. |
audio_codec | string | null | mp4a.40.2 | Audio codec of the selected stream. Absent on the same platforms that omit the video codec. |
bitrate | number | null | 290.512 | Total bitrate of the selected stream in kbit/s, video and audio combined. |
dynamic_range | string | null | SDR | Colour range the source reports for the video, such as SDR or HDR10. |
file_ext | string | null | mp4 | Container extension of the selected media, such as mp4 or webm. |
file_size | number | null | 36533246 | Size of the selected media in bytes, exact when the source reports it and approximate otherwise. |
audio_title | string | null | Chill Beats Vol. 3 | Title of the audio track or background music |
audio_artist | string | null | LoFi Studio | Artist name of the audio track or background music |
subtitles | array | null | en, de, es | Language codes of the subtitle tracks the source publishes. Auto-generated captions are excluded. |
chapters | array | null | [object Object] | Chapter markers with title and start and end time in seconds, when the source defines them. |
comments | array | null | [object Object] | List of video comments with author, text, likes, and timestamp. Empty when Max Comments is 0, and never longer than Max Comments. |
video | string | null | https://api.apify.com/v2/key-value-stores/abc123/records/video.mp4 | Direct download link to the stored video file when video download is enabled |
processor | string | null | https://apify.com/agentx/all-video-scraper | URL of the Apify actor that processed this data |
processed_at | string | null | 2025-01-15T10:30:00+00:00 | ISO 8601 formatted timestamp (UTC) when the data was processed |
What it costs
| Charged event | Price | When |
|---|---|---|
| Actor Usage | $0.00001 | Charged for Actor runtime, proxy and storage. Cost depends on resource consumption during execution |
| Actor Start | $0.01 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
| Metadata | $0.09 โ $0.07 | Single video metadata record in the default dataset. |
| Download | $0.28 โ $0.21 | Single downloaded video record in the default dataset. |
When not to use it
- Memory is capped at 512 MB, so a very large job should be split into several narrower runs rather than scaled up.
- 10.9% of public runs in the last 30 days did not succeed, so a production caller needs a retry and a zero-row check rather than trusting the first response.
- The dataset carries 43 fields and nothing else; if your analysis needs a field that is not in the table above, no input setting will add it.
- It reads what is public at run time. There is no archive behind it, so a question about last quarter has to be answered from data you already collected.
Closest Actors in the catalog
Same categories, ordered by how many people run them. Compare the field tables before choosing.
| Actor | Brand | Fields | 1k rows (Free) | Users / 30 d |
|---|---|---|---|---|
| YouTube Video Downloader | TrueFetch | 43 | โ | 42 |
| TikTok Transcript | AgentX | 22 | $288.00 | 30 |
| TikTok Live Downloader | AgentX | 62 | $0.79 | 11 |
| TikTok Live Recorder | TrueFetch | 62 | $0.58 | 8 |
| Video To Text โ | TrueFetch | 22 | $520.00 | 5 |
| Linkedin Video Downloader โ | AgentX | 43 | โ | 5 |
Field guides that use this data
- Transcribing Podcasts and Recordings You Already Host โ Most transcript APIs want a platform link. When the audio is your own โ a podcast, a recorded call, an archive in S3 โ you need the direct-file path instead.
- Instagram Reel Transcript API: From Public URL to Text โ Turn a public Instagram reel into timestamped text with one API call: what you get back, what qualifies as input, and how translation into 133 languages works.
- Video Captions vs Transcripts: Which Text Source Fits the Job โ Captions and transcripts look interchangeable and are not. Compare coverage, timing accuracy, speaker data, language handling, and cost at volume.
Prove it on a narrow run
Open the live contract.
Pricing, availability and schema can change between snapshots. The Apify Actor page is the current source of truth.
Catalog snapshot 2026-09-04; Actor contract, pricing and run statistics read 2026-09-04.