# Youtube Video Shorts Mp3 Downloader (`scrapers-hub/youtube-video-shorts-mp3-downloader`) Actor

🎵 Need a YouTube Video Shorts MP3 Downloader? Download your favorite Shorts audio in seconds! ⚡ Fast, easy, and mobile-friendly. 🔥 Convert & enjoy anytime—no hassle. Try it now! #MP3 #YouTubeShorts

- **URL**: https://apify.com/scrapers-hub/youtube-video-shorts-mp3-downloader.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Videos, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### YouTube Video Downloader 📥

**YouTube Video Downloader** helps you download YouTube videos in your chosen resolution and provides direct download links. It’s designed for marketers, researchers, and content teams who want a faster workflow for “youtube video downloader” and “download youtube videos” use cases—saving you hours of manual work when you need results at scale (including options for “convert youtube to mp4” and “convert youtube to mp3” style workflows through separate audio links).

---

### Why choose YouTube Video Downloader?

| Feature | Benefit |
| --- | --- |
| ✅ **Direct download links for video and audio** | Get `downloadable_video_link` and `downloadable_audio_link` based on the formats available |
| ✅ **Resolution selection** | Choose from 8K, 4K, 2K, 1080p, 720p, 480p, or 360p and receive a corresponding `provided_resolution` |
| ✅ **Built-in proxy support for reliable scraping** | Keeps runs stable with proxy configuration and automatic residential fallback when you don’t set proxies |
| ✅ **Includes retries and fallbacks for resilience** | If extraction or downloading fails, the actor attempts multiple strategies for better success rates |
| ✅ **Structured output dataset** | Results are pushed into an Apify dataset with consistent fields for easy downstream processing |
| ✅ **Optional upload to storage** | If enabled, uploads the downloaded 360p content to Apify Key-Value Store and returns an `apify_storage_url` |

---

### Key features

- 🎬 **Video and audio links in one run**: Produces `downloadable_video_link` and `downloadable_audio_link` so you can “youtube to mp3 downloader” workflows using the audio link when available.  
- 🎛️ **Desired resolution control**: Request 8K/4K/2K/1080p/720p/480p/360p and receive `provided_resolution` plus helpful `note` when an exact match isn’t possible.  
- 🛡️ **Proxy resilience**: Works with optional proxy configuration and includes an automatic residential fallback path to reduce reliability issues.  
- 🔄 **Retry logic for robustness**: Downloads use multiple attempts and fallback behavior to handle failures more gracefully.  
- 📊 **Rich metadata**: Returns `title`, `author`, `thumbnail`, `duration`, `channel`, `video_type`, and more—useful for analytics and archiving.  
- 💾 **Upload Video to Storage option**: When `upload_video_to_apify` is enabled, it uploads the 360p video to Apify Key-Value Store and provides a public link.  
- 🔗 **Shorts and standard video support**: Accepts any YouTube URL you provide (including Shorts URLs) via `video_urls`.  

---

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ],
  "desired_resolution": "2k",
  "proxyConfiguration": {},
  "upload_video_to_apify": false
}
````

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `video_urls` | Yes | List of YouTube video URLs to process. You can pass plain URLs or objects containing a `url` field (the actor reads `item.get("url")` when `item` is a dictionary). |
| `desired_resolution` | No | Select the desired resolution: 8K, 4K, 2K, 1080p, 720p, 480p, or 360p. Default is `2k`. |
| `proxyConfiguration` | No | Proxy settings (optional). If no proxy is selected, the actor will automatically use RESIDENTIAL proxy (recommended). Only Residential (default) and Own proxies are available. |
| `upload_video_to_apify` | No | Toggle this option to upload the 360p video to Apify storage (may be slow). Default is `false`. |

***

### Output

The actor pushes results into the Apify dataset as JSON objects (one per input URL) with a consistent field structure.

```json
[
  {
    "original_url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz",
    "requested_resolution": "2k",
    "provided_resolution": 1440,
    "download_type": "progressive",
    "downloadable_video_link": {
      "mp4": "https://example.com/video.mp4"
    },
    "downloadable_audio_link": "https://example.com/audio.m4a",
    "title": "N/A",
    "author": "N/A",
    "thumbnail": "N/A",
    "duration": "N/A",
    "channel": "N/A",
    "source": "youtube",
    "video_type": "Video",
    "note": "Requested 1440p not available, providing closest: 1080p.",
    "prog_video_type": "Video+Audio",
    "prog_resolution": "1080p",
    "prog_video_format": "mp4",
    "prog_downloadable_link": {
      "url": "https://example.com/best-progressive.mp4"
    },
    "best_progressive_format_info": {
      "resolution": 1080,
      "format": "mp4",
      "url": "https://example.com/best-progressive.mp4",
      "format_id": "xxxxxxxx",
      "bitrate_kbps": 3000
    },
    "apify_storage_url": null,
    "storage_note": null,
    "status": "SUCCEEDED"
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `original_url` | string | The YouTube URL that was processed. |
| `requested_resolution` | string | The resolution you requested (from `desired_resolution`). |
| `provided_resolution` | number | The resolution height the actor actually provided for the selected video format. |
| `download_type` | string | The download type chosen for `downloadable_video_link` (e.g. progressive vs video\_only). |
| `downloadable_video_link` | object | Direct video link(s) keyed by extension (e.g. `mp4`). |
| `downloadable_audio_link` | string | Direct audio link (when an audio-only format is available). |
| `apify_storage_url` | string | null | Public URL for the uploaded video in Apify Key-Value Store (only when `upload_video_to_apify` succeeds). |
| `note` | string | A helpful message about resolution availability (for example, whether the requested resolution was found). |
| `prog_video_type` | string | Progressively selected type for the best progressive format info (`Video+Audio` or `N/A`). |
| `prog_resolution` | string | Resolution label for the progressive selection (e.g. `1080p` or `N/A`). |
| `prog_video_format` | string | Format/extension label for the progressive selection (or `N/A`). |
| `prog_downloadable_link` | object | The progressive download link details, including `url`. |
| `title` | string | Video title (or `N/A` if unavailable). |
| `author` | string | Video author/uploader (or `N/A` if unavailable). |
| `thumbnail` | string | Thumbnail URL (or `N/A` if unavailable). |
| `duration` | string | Human-readable duration (formatted by the actor). |
| `channel` | string | Channel name (or uploader as fallback). |
| `source` | string | Data source indicator (`youtube`). |
| `video_type` | string | Categorized as `Shorts` or `Video` based on duration. |
| `best_progressive_format_info` | object | null | Details about the best progressive format used for uploading when enabled. |
| `storage_note` | string | null | Upload/storage outcome message when `upload_video_to_apify` is enabled. |
| `status` | string | Run status for the item (`SUCCEEDED` for successful processing). |
| `error` | string | Present on failure entries pushed to the dataset (when processing fails). |

You can export the dataset from Apify Console in common formats like JSON/CSV depending on your workflow.

***

### How to use YouTube Video Downloader (via Apify Console)

1. **Open Apify Console**
   Visit [console.apify.com](https://console.apify.com) and sign in.

2. **Find the actor**
   Search for **YouTube Video Downloader** in the Actors marketplace and open the actor page.

3. **Go to the Input section**
   Use the built-in form or paste your `input.json`.

4. **Add your YouTube URLs**
   Fill `video_urls` with one or more links (including Shorts links). The actor will process each entry.

5. **Choose your `desired_resolution`**
   Pick one of: `8k`, `4k`, `2k`, `1080p`, `720p`, `480p`, or `360p` (default is `2k`). The actor returns both `requested_resolution` and `provided_resolution`.

6. **(Optional) Configure proxies**
   If you leave proxy configuration unset, the actor will automatically use residential proxy behavior (recommended for reliability). You can also provide your own proxy settings via `proxyConfiguration`.

7. **(Optional) Upload to storage**
   Toggle `upload_video_to_apify` if you want the actor to upload the 360p video to Apify Key-Value Store and return an `apify_storage_url`.

8. **Run & monitor logs**
   Click **Run** and watch the live logs for progress and retries.

9. **Access results**
   After completion, open the dataset from the **OUTPUT** tab and export the JSON results for your use cases (downloading, archiving, or analysis).

No coding required—get results in minutes with this YouTube video downloader.

***

### Advanced features & SEO optimization

- 🌐 **Resolution-aware downloading for youtube video downloader use cases**: You request a target resolution and the actor returns both `requested_resolution` and `provided_resolution`, plus a `note` when it must provide a closest available format.
- 🛡️ **Resilience-first runs for fast youtube video downloader workflows**: Built-in proxy support and retry/fallback behavior help improve success rate when processing larger batches of video URLs.
- 🔄 **Better reliability through repeated attempts**: The downloader uses multiple attempts per format, which is helpful when you’re testing a “fast youtube video downloader” approach in production.
- 💾 **Storage upload for convert youtube to mp4 and mp3-style pipelines**: When enabled, `Upload Video to Storage` produces an `apify_storage_url` that’s convenient for later retrieval and sharing.
- 📌 **Works well for youtube video downloader online-style automation**: You can plug the dataset output into downstream systems without manual copy-pasting of links.

***

### Best use cases

- 📈 **Marketing teams building content libraries**: Bulk-download and archive videos for campaign work, with consistent metadata like `title`, `author`, `thumbnail`, and `duration`.
- 🎓 **Researchers collecting shorts and video samples**: Save time by processing multiple YouTube Video URLs and categorizing `video_type` as `Shorts` or `Video`.
- ✉️ **Creators comparing formats for re-publishing**: Use `download_type`, `provided_resolution`, and direct links to evaluate “youtube downloader mp4” vs audio-only availability.
- 🛠️ **Developers integrating a youtube downloader mp4 workflow**: Consume structured dataset fields like `downloadable_video_link`, `downloadable_audio_link`, and (optionally) `apify_storage_url`.
- 📊 **Data analysts tracking resolution coverage**: Analyze how often the requested `desired_resolution` is available vs the closest match (via `note` and `provided_resolution`).
- 💻 **Teams who need reliable batch runs**: Use proxy configuration for more consistent outcomes when running a “best youtube video downloader” approach across many URLs.
- 🎬 **Browser extension-style workflows (without the extension)**: If you’re used to “youtube video downloader chrome extension” behavior, the dataset output gives you a similar automation-friendly result.

***

### Technical specifications

**Supported Input Formats**

- ✅ `video_urls`: An array of YouTube links (either plain URL strings or objects with a `url` field)
- ✅ `desired_resolution`: `8k`, `4k`, `2k`, `1080p`, `720p`, `480p`, `360p`
- ✅ `upload_video_to_apify`: boolean toggle (uploads 360p to storage when enabled)
- ✅ `proxyConfiguration`: optional proxy configuration object

**Proxy Support**

- ✅ Built-in proxy support via `proxyConfiguration`
- ✅ Automatic residential fallback behavior when no proxy is selected

**Retry Mechanism**

- ✅ Download attempts include retries (and fallback handling for extraction/downloading failures)

**Dataset Structure**

- ✅ One dataset record per processed input URL, pushed using `Actor.push_data(results_list)`
- ✅ Consistent fields including `original_url`, download links, and metadata

**Rate Limits & Performance**

- Depends on video length and whether `upload_video_to_apify` is enabled (the input description warns longer videos take more time when storage upload is on).

**Limitations**

- ❌ If extraction or downloading fails for certain URLs, you may need to re-run with the failed URLs (the actor notes that it usually works on the second try for downloads that fail, especially for long videos).

***

### FAQ

#### Do I need to provide proxy settings for reliable downloads?

❌ No. If you don’t set a proxy, the actor will automatically use residential proxy behavior (recommended). You can still provide `proxyConfiguration` if you have specific requirements.

#### What resolutions can I request with YouTube Video Downloader?

✅ You can select: `8k`, `4k`, `2k`, `1080p`, `720p`, `480p`, or `360p`. The output includes `provided_resolution`, and `note` explains when the requested resolution isn’t available and a closest match is provided.

#### Does it output both video and audio download links?

✅ Yes. The dataset can include `downloadable_video_link` (a link object keyed by extension) and `downloadable_audio_link` when audio-only formats are available.

#### What does “Upload Video to Storage” do?

✅ If you enable `upload_video_to_apify`, the actor uploads the 360p version to Apify Key-Value Store and provides a public link via `apify_storage_url`, plus a `storage_note`.

#### How do I export the results after the run?

✅ After execution, open the **OUTPUT** dataset in Apify Console. From there you can export the results (JSON/CSV depending on your workflow).

#### Can processing fail for some videos?

❌ Yes, failures can happen for some URLs. The input guidance recommends re-running the actor with the failed URL(s), especially for long videos—often it works on the second try.

#### How do I share feedback or request a feature for YouTube Video Downloader?

💡 You can email <dataforleads@gmail.com> with feedback or feature requests related to improving the YouTube video downloader experience.

***

### Support & feature requests

Want to improve **YouTube Video Downloader** (including “youtube video downloader online” style workflows like mp4/mp3 link handling)? Share your feedback and ideas.

- 💡 **Feature Requests**: For example, enhancements like additional export options or changes to how links and resolution choices are presented.
- 📧 **Contact**: Email <dataforleads@gmail.com>.

Your feedback helps shape the roadmap for this YouTube video downloader.

***

### Final thoughts

*If you’re looking for the most practical YouTube Video Downloader for fast, resolution-aware downloads, this actor’s structured dataset output and optional storage upload make it easy to operationalize at scale.*

***

### Disclaimer

This tool only accesses **publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for complying with applicable laws and regulations (for example GDPR/CCPA), as well as platform terms of service and any relevant spam or privacy requirements. For data removal requests, contact <dataforleads@gmail.com>.

Use YouTube Video Downloader responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

## `video_urls` (type: `array`):

List of YouTube video URLs to process.

## `desired_resolution` (type: `string`):

Select the desired resolution: 8K, 4K, 2K, 1080p, 720p, 480p, or 360p.

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

Configure proxies for this Actor. If no proxy is selected, the actor will automatically use RESIDENTIAL proxy to bypass YouTube bot detection (recommended). Only Residential (default) and Own proxies are available.

## `upload_video_to_apify` (type: `boolean`):

Toggle this option to upload the 360p video to Apify storage (this may be slow).

## Actor input object example

```json
{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ],
  "desired_resolution": "2k",
  "upload_video_to_apify": false
}
```

# 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 = {
    "video_urls": [
        {
            "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
        },
        {
            "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
        },
        {
            "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/youtube-video-shorts-mp3-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 = { "video_urls": [
        { "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz" },
        { "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO" },
        { "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/youtube-video-shorts-mp3-downloader").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ]
}' |
apify call scrapers-hub/youtube-video-shorts-mp3-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers-hub/youtube-video-shorts-mp3-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Youtube Video Shorts Mp3 Downloader",
        "description": "🎵 Need a YouTube Video Shorts MP3 Downloader? Download your favorite Shorts audio in seconds! ⚡ Fast, easy, and mobile-friendly. 🔥 Convert & enjoy anytime—no hassle. Try it now! #MP3 #YouTubeShorts",
        "version": "1.3",
        "x-build-id": "hT6XlHsERcHEkUMz9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~youtube-video-shorts-mp3-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-youtube-video-shorts-mp3-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers-hub~youtube-video-shorts-mp3-downloader/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-youtube-video-shorts-mp3-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers-hub~youtube-video-shorts-mp3-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-youtube-video-shorts-mp3-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "video_urls"
                ],
                "properties": {
                    "video_urls": {
                        "title": "YouTube Video URLs",
                        "type": "array",
                        "description": "List of YouTube video URLs to process.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "desired_resolution": {
                        "title": "Desired Resolution",
                        "enum": [
                            "8k",
                            "4k",
                            "2k",
                            "1080p",
                            "720p",
                            "480p",
                            "360p"
                        ],
                        "type": "string",
                        "description": "Select the desired resolution: 8K, 4K, 2K, 1080p, 720p, 480p, or 360p.",
                        "default": "2k"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (Optional)",
                        "type": "object",
                        "description": "Configure proxies for this Actor. If no proxy is selected, the actor will automatically use RESIDENTIAL proxy to bypass YouTube bot detection (recommended). Only Residential (default) and Own proxies are available."
                    },
                    "upload_video_to_apify": {
                        "title": "Upload Video to Storage",
                        "type": "boolean",
                        "description": "Toggle this option to upload the 360p video to Apify storage (this may be slow).",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
