Video downloader

Download videos into your storage

Decodo Video downloader (target: youtube_video) can be used to download and save specified Youtube videos into the s3 compatible storage.

youtube_video

📘

The youtube_video target only supports asynchronous and batch integrations.

📘

Batch youtube_video requests are limited to 100 video per request.

Videos must be up to 3 hours in length in order to be downloadable.

📘

To get access or learn more, please Contact our sales team

Download a YouTube video into an Amazon S3-compatible storage location.

Parameter

Type

Required

Description

Default

Example

target

string

Required to select YouTube download.

youtube_video

query

string

YouTube video ID.

dFu9aKJoqGg

upload_url

string

The URL to a S3-compatible storage location.

https://<key>:<secreat>@<bucket-url>

media

string

Select between video without sound, audio, or audio_video for both.

audio_video

quality

string

Quality of video or audio. Valid options: best, worst, 480, 720, 1080, 1440, 2160.

720

Testing

In order to test the youtube_video target, you may choose to upload straight to your storage provider, or you may upload into a test S3-compatible drive.

We recommend using iDrive to test your integration for free.

S3-compatible providers

Bellow are a number of S3-compatible providers that will work with this target out of the box:

Sample request

curl --request 'POST' \
        --url 'https://scraper-api.decodo.com/v2/task' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \ // update with base64encode(username:password)
        --header 'Content-Type: application/json' \
        --data '
    {
      "target": "youtube_video",
      "query": "PFRn5zKJTD8",
      "upload_url": "https://storage_username:[email protected]/bucket_name"
    }
'

A successfully queued job will return a response similar to this:

{
    "target": "youtube_video",
    "query": "PFRn5zKJTD8",
    "page_from": 1,
    "limit": 10,
    "geo": null,
    "device_type": "desktop",
    "headless": null,
    "parse": false,
    "locale": null,
    "domain": "com",
    "output_schema": null,
    "created_at": "2025-07-01 11:09:53",
    "id": "7345770621134969857",
    "status": "pending",
    "content_encoding": "utf-8",
    "updated_at": "2025-07-01 11:09:53",
    "force_headers": false,
    "force_cookies": false,
    "headers_cookies_policy": false,
    "media": "audio_video",
    "quality": "720"
}

Monitoring progress

The status of a queued video download can be checked through the /v2/task/:id/results endpoint (you can find id in the body of the response after the task has been created):

  • HTTP status code 204 indicates that the download is still processing.
  • HTTP status code 200 indicates that the download has finished and an attempt to upload to your storage direction has been made.
🚧

Scraper API does not currently support:

  • Showing download progress (completed/remaining percent)
  • Indicating when uploading to upload_url fails (invalid credentials, bucket not found, etc.)

Requests are still charged even if the upload to upload_url fails - we recommend testing with small videos first.

Support

Still can't find an answer? Want to say hi? We take pride in our 24/7 customer support. Alternatively, you can reach us via our support email at [email protected].

Feedback

Something's missing? Request an article!
Got feedback? Let us know how we're doing and what can be improved.