Get Download Link

Get direct download link from platform

Overview

Below is an example of how to use the API to get the video download link of the platforms.

Proxy is required to get the list of download links.

API Request

Endpoint: https://api.apify.com/v2/acts/wilcode~all-social-media-video-downloader/runs?token=<YOUR_API_TOKEN>

Method: POST

Headers:

{
  "Content-Type": "application/json"
}

Request Body:

{
  "url": "https://www.youtube.com/watch?v=HCjNJDNzw8Y",
  "proxySettings": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "CA"
  }
}

cURL

curl -X POST "https://api.apify.com/v2/acts/wilcode~all-social-media-video-downloader/runs?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.youtube.com/watch?v=HCjNJDNzw8Y",
    "proxySettings": {
      "useApifyProxy": true,
      "apifyProxyGroups": ["RESIDENTIAL"],
      "apifyProxyCountry": "CA"
    }
  }'

JSON Results

{
    "title": "Video title",
    "uploader": "Channel Name",
    "channel": "Channel Name",
    "upload_date": "20240706",
    "duration": 100,
    "description": "",
    "like_count": 478,
    "comment_count": 19,
    "thumbnail": "image thumbnail url",
    "formats": [
      {
        "resolution": "720x1080",
        "url": "url download"
      },
      {
        "resolution": "1080x1920",
        "url": "url download"
      },
      {
        "resolution": "audio only",
        "url": "url download"
      },
    ]
}

The list of download links and resolutions will be listed in the formats attribute.

Other language examples

Fetch in JavaScript

const fetch = require('node-fetch');

const endpoint = 'https://api.apify.com/v2/acts/wilcode~all-social-media-video-downloader/runs?token=<YOUR_API_TOKEN>';

const requestBody = {
  url: 'https://www.youtube.com/watch?v=HCjNJDNzw8Y',
  proxySettings: {
    useApifyProxy: true,
    apifyProxyGroups: ['RESIDENTIAL'],
    apifyProxyCountry: 'CA'
  }
};

fetch(endpoint, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(requestBody)
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

Python

import requests

endpoint = 'https://api.apify.com/v2/acts/wilcode~all-social-media-video-downloader/runs?token=<YOUR_API_TOKEN>'

headers = {
    'Content-Type': 'application/json'
}

body = {
    'url': 'https://www.youtube.com/watch?v=HCjNJDNzw8Y',
    'proxySettings': {
        'useApifyProxy': True,
        'apifyProxyGroups': ['RESIDENTIAL'],
        'apifyProxyCountry': 'CA'
    }
}

response = requests.post(endpoint, headers=headers, json=body)
print(response.json())

C#

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string endpoint = "https://api.apify.com/v2/acts/wilcode~all-social-media-video-downloader/runs?token=<YOUR_API_TOKEN>";

        // Define request body
        var requestBody = new
        {
            url = "https://www.youtube.com/watch?v=HCjNJDNzw8Y",
            proxySettings = new
            {
                useApifyProxy = true,
                apifyProxyGroups = new[] { "RESIDENTIAL" },
                apifyProxyCountry = "CA"
            }
        };

        // Convert request body to JSON
        string jsonBody = System.Text.Json.JsonSerializer.Serialize(requestBody);

        using (HttpClient client = new HttpClient())
        {
            // Set headers
            client.DefaultRequestHeaders.Add("Content-Type", "application/json");

            // Send POST request
            HttpResponseMessage response = await client.PostAsync(
                endpoint,
                new StringContent(jsonBody, Encoding.UTF8, "application/json")
            );

            // Get response content
            string responseContent = await response.Content.ReadAsStringAsync();

            // Print response
            Console.WriteLine("Response:");
            Console.WriteLine(responseContent);
        }
    }
}

Last updated