> ## Documentation Index
> Fetch the complete documentation index at: https://docs.konbiniapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get video download URLs

> Returns every rendition YouTube serves for this video, each with a direct file URL you can download with a plain GET request — no cookies, auth headers, or special HTTP client needed. Renditions with `audioChannels` set are complete files; YouTube only serves those up to 360p. Above that, video and audio come separately, so combine a `video/*` and an `audio/*` rendition to get a playable file. URLs expire after a few hours — see `expiresAt`.

## What it does

Returns every rendition YouTube serves for this video, each with a direct file URL you can download with a plain GET request — no cookies, auth headers, or special HTTP client needed. Renditions with `audioChannels` set are complete files; YouTube only serves those up to 360p. Above that, video and audio come separately, so combine a `video/*` and an `audio/*` rendition to get a playable file. URLs expire after a few hours — see `expiresAt`.

## Tool details

| Field | Value |
| - | - |
| Tool name | `youtube_get_video_download_url` |
| Platform | YouTube |
| REST endpoint | `GET /v1/youtube/videos/{videoId}/download` |
| Result type | Detail tool |

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `videoId` | `string` | Yes | YouTube video ID (the `v=` value from a watch URL) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |

## Example

```json theme={null}
{
  "name": "youtube_get_video_download_url",
  "arguments": {
    "videoId": "plN7JMbadRg",
    "projection_preset": "minimal",
    "data_fields": [
      "totalItems",
      "type",
      "items",
      "expiresAt"
    ]
  }
}
```

## Available data fields

* `@context`
* `type`
* `totalItems`
* `items`
* `expiresAt`

## Response notes

Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.