# YouTube Downloader — MP4 Video & MP3 Audio Links (`tictechid/vanzi-youtube-downloader`) Actor

YouTube video downloader for Apify: download YouTube videos, Shorts, and playlists as MP4 or MP3/M4A. Self-contained — get direct download\_url links from Apify storage plus title and file size. Bulk URLs, quality caps, optional subtitles & thumbnails.

- **URL**: https://apify.com/tictechid/vanzi-youtube-downloader.md
- **Developed by:** [TicTech](https://apify.com/tictechid) (community)
- **Categories:** Videos, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 downloads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Video & MP3 Downloader — Direct Download Links

Turn any **YouTube** watch link, **Short**, or **playlist** into a ready-to-use **download URL** — MP4 video or MP3/M4A audio — in one Apify run.

Perfect for automation, media pipelines, archival, n8n / Make / Zapier, and research workflows where you need a clean link, not a browser download. Fully self-contained on Apify — files land in **Apify Key-Value storage** with fetchable `download_url` links.

### What you get

- **Direct `download_url`** from Apify storage for each item (plus title, status, format, file size)
- **MP4 or audio** — pick format or flip audio-only
- **Quality control** — cap resolution (360p to 4K / best)
- **Playlists** — expand and process up to `max_items` (never dumps an entire huge catalog)
- **Optional** subtitle and thumbnail URLs (also stored on Apify)
- **Bulk-ready** — paste many start URLs in one run
- **Optional Apify Proxy** — improve YouTube reliability when needed

### How to use

1. Open this Actor on Apify and click **Try for free** / **Start**.
2. Paste one or more YouTube URLs into **Start URLs** (watch, youtu.be, Shorts, or playlist).
3. Choose **Format** (`mp4`, `mp3`, `m4a`, …) and optionally **Audio only** / **Max resolution**.
4. Set **Max items** (default 100 — ideal for free-tier runs).
5. Run. Open the **Dataset** tab and copy `download_url` for each completed row.

Use the **Example Tasks** on the Store page for one-click demos (single video or a couple of Shorts).

#### Example input

```json
{
  "start_urls": [
    "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    "https://www.youtube.com/shorts/SXHMnicI6Pg"
  ],
  "format": "mp4",
  "audio_only": false,
  "max_resolution": "720",
  "max_items": 2
}
```

#### Example output row

```json
{
  "source_url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "title": "Me at the zoo",
  "status": "completed",
  "download_url": "https://api.apify.com/v2/key-value-stores/…/records/media-jNQXAC9IVRw.mp4",
  "format": "mp4",
  "file_size": 524288,
  "error": null
}
```

`status` can be `completed`, `failed`, `skipped`, or `cancelled`. Failed/skipped rows keep `download_url` empty and explain why in `error`.

### Tips for best results

- For playlists, only up to **max\_items** are downloaded (default 100) — the Actor will not explode huge catalogs.
- Download links come from **Apify Key-Value storage** (run-scoped). Retention follows your Apify plan — **save files promptly** if you need a long-term copy.
- Prefer **public** videos. Private, members-only, or age-restricted content may fail.
- For audio extraction set `"format": "mp3"` or `"audio_only": true`.
- Keep `max_items` at **100 or below** on free Apify plans for smoother runs.
- **Apify Proxy** is used on the Apify platform for YouTube reliability (residential first when available; configure via proxyConfiguration).

### Usage Limits

- **Free tier:** max items per run ≤ **100**. Upgrade to continue with larger batches.
- **Paid plans:** higher run volume per Apify limits.

> See [Apify Pricing](https://apify.com/pricing?fpr=maxknj).

### Optional extras (PPE)

- **Subtitle download** and **thumbnail download** are optional flags. When enabled and successfully stored, they incur a small extra pay-per-event charge (on top of the main download).

### Free plan

On Apify's **free plan**, this Actor allows **3 runs** total. Paying Apify users have unlimited runs. [Upgrade anytime](https://apify.com/pricing?fpr=maxknj).

### Disclaimer

Use only for content you have the right to download. Respect YouTube Terms of Service and copyright law. You are responsible for how you use the output.

### Keywords

YouTube downloader, YouTube to MP4, YouTube to MP3, Shorts download, playlist download links, YouTube video download API, TicTech vanzi, Apify storage download

### Also from TicTech

Need speech-to-text for Reels / TikTok / Shorts / Facebook? Try our proven multi-platform Transcriber used by 2,000+ Apify users:

**[TikTok · Instagram · Facebook · YouTube Shorts Transcriber](https://apify.com/tictechid/anoxvanzi-Transcriber)** — timestamps, multi-language, bulk URLs, PPE pricing.

Full catalog: [apify.com/tictechid](https://apify.com/tictechid)

For more details, contact the maintainer or email us at contact@tictech.id

# Actor input Schema

## `start_urls` (type: `array`):

YouTube watch, Shorts, or playlist URLs. Alias: urls.

## `urls` (type: `array`):

Optional alias for start\_urls. Use either start\_urls or urls.

## `format` (type: `string`):

Output format: mp4, mkv, webm, mov, mp3, m4a, ogg, opus.

## `audio_only` (type: `boolean`):

Extract audio only (default format becomes m4a if you leave format as video).

## `max_resolution` (type: `string`):

Cap video resolution: best, 2160, 1440, 1080, 720, 480, 360, …

## `max_items` (type: `integer`):

Cap how many videos to download (playlists included). 0 or unset → 100. Free tier tip: ≤ 100.

## `download_subtitles` (type: `boolean`):

Include subtitle URL when available.

## `download_thumbnail` (type: `boolean`):

Include thumbnail URL when available.

## `folder` (type: `string`):

Optional Key-Value key prefix for organizing uploaded files.

## `proxyConfiguration` (type: `object`):

Apify Proxy for YouTube reliability (recommended, on by default). Residential is tried first when groups are not set.

## Actor input object example

```json
{
  "start_urls": [
    "https://www.youtube.com/watch?v=jNQXAC9IVRw"
  ],
  "format": "mp4",
  "audio_only": false,
  "max_resolution": "1080",
  "max_items": 100,
  "download_subtitles": false,
  "download_thumbnail": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Download results (download\_url + status per job).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "start_urls": [
        "https://www.youtube.com/watch?v=jNQXAC9IVRw"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tictechid/vanzi-youtube-downloader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "start_urls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"] }

# Run the Actor and wait for it to finish
run = client.actor("tictechid/vanzi-youtube-downloader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "start_urls": [
    "https://www.youtube.com/watch?v=jNQXAC9IVRw"
  ]
}' |
apify call tictechid/vanzi-youtube-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tictechid/vanzi-youtube-downloader"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rBEybibBbOBUa2aGc/builds/SYGP8c6RKMa2eSyp4/openapi.json
