Merge Audio & Video for Instagram/Facebook

Merge video and audio from Instagram/Facebook and other sources

Overview

The difference between Get Direct Link and Download and Merge is that the video will be downloaded, audio and video will be merged and then the share link will be created

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.facebook.com/reel/1231817508603093",
  "proxySettings": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "CA"
  },
  "mergeAV": true
}

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.facebook.com/reel/1231817508603093",
    "proxySettings": {
      "useApifyProxy": true,
      "apifyProxyGroups": ["RESIDENTIAL"],
      "apifyProxyCountry": "CA"
    },
    "mergeAV": true
  }'

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"
      },
    ],
    "download": [
      {
        "resolution": 720,
        "url": "https://api.apify.com/v2/key-value-stores/amhvXQKACHs124/records/downloaded_video_1732199392399.mp4"
      }
    ]
}

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

The download url is the file saved in your Storage (Apify), this link will be automatically generated

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.facebook.com/reel/1231817508603093',
  proxySettings: {
    useApifyProxy: true,
    apifyProxyGroups: ['RESIDENTIAL'],
    apifyProxyCountry: 'CA'
  },
  "mergeAV": true
};

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.facebook.com/reel/1231817508603093',
    'proxySettings': {
        'useApifyProxy': True,
        'apifyProxyGroups': ['RESIDENTIAL'],
        'apifyProxyCountry': 'CA'
    },
    'mergeAV': true
}

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.facebook.com/reel/1231817508603093",
            proxySettings = new
            {
                useApifyProxy = true,
                apifyProxyGroups = new[] { "RESIDENTIAL" },
                apifyProxyCountry = "CA"
            },
            mergeAV = true
        };

        // 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