How to download videos from Social Media for Free

Udhayarajan M
5 min readFeb 12, 2023

Hello there,

A social media video downloader has several use cases that make it a valuable tool for users. Firstly, it allows users to save videos from popular social media platforms such as Facebook, Instagram etc. This can be useful for individuals who want to keep a copy of a video for personal use or for businesses who want to save and repost their promotional videos. Secondly, the downloader can be used to download videos from private accounts, where access to the video is restricted to followers only. This feature is helpful for people who want to save a video from a private account without having to follow the account. Lastly, the downloader can be used to download videos in bulk, making it easier for users to save multiple videos at once, saving time and effort. Overall, the social media video downloader is a versatile tool that offers many benefits to its users. Images are easy to screenshot and able to be shared with others. But videos are the one which requires a separate tool to download them. So here we introduce the VidSnap family. Here I’m providing ways to download them.

As an end user:

If you don’t have prior coding knowledge and you need to download videos then you can use our VidSnap App (Only for Android) to download and manage them. You can get the latest apk from my GitHub repo. It is an open-source application which is licenced under GNU GPL-V3.

As a developer(for Java/Kotlin):

If you are a developer looking to create a video downloader application using Java or Kotlin here we provide you with a library that you can easily include with your project and with a few lines of code you can get the download link for the social media post. You can use VidSnapKit-Ultimate (available in MavenCentral). It is an open-source project licenced under Apache 2.0. Here is the VidSnapKit-Ultimate repo.

val downloadUrl: String = "...."
val userCookies: String = "...."
val extractor = Extractor.findExtractor(downloadUrl)
// If extractor is Null then the URL provide isn't supported by our library
extractor?.let{
userCookies?.let { cookie->
it.cookies = cookie
}
it.start { res ->
//Get data from here
}
}

Here is the breakdown of the parameters used:

downloadUrl :- It is the URL we get from social media if we want to share the media.

userCookies :- Instagram & Facebook sometimes requires valid cookies to fetch data from their server while downloading a private video.

For example usage, you can refer here.

Other Developers:

Oh! Aren’t you use Java/Kotlin for your project 🥲. It’s okay we also provide Free cloud service that you can easily include in any of your projects to download the video. Here is our API service from RapidApi.

For Rapid API:

Endpoint: https://vidsnap.p.rapidapi.com/fetch

Method: GET

Query Param: url=<SOCIAL_MEDIA_URL>

Headers:

“X-RapidAPI-Key”:<GET_FROM_RAPID_API>

“X-RapidAPI-Host”: “vidsnap.p.rapidapi.com”

Sample response as follows:

{
"formats": [
{
"title": "....",
"url": "....",
"src": "....",
"videoData": [
{
"url": "....",
"mimeType": "video/mp4",
"quality": "widthxheight",
"size": 114305420,
"hasAudio": true
},
{
"url": "....",
"mimeType": "video/webm",
"quality": "widthxheight",
"size": 114305420,
"hasAudio": false
},
],
"imageData": [
{
"url": "...",
"mimeType": "image/jpeg",
"resolution": "640",
"size": 30794
},
{
"url": "...",
"mimeType": "image/jpeg",
"resolution": "960",
"size": 59357
}
],
"audioData": [
{
"url": "...",
"mimeType": "audio/mp4",
"size": 14883844,
"bitrate": 191000
},
{
"url": "...",
"mimeType": "audio/webm",
"size": 7650937,
"bitrate": 99000
}
]
}
],
"error": null
}

It is the sample 200(ok) response.

The format follows,

Response:
|
+-- formats (array of objects):
| |
| +-- 0:
| | |
| | +-- title
| | +-- url
| | +-- src
| | +-- videoData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- quality
| | | +-- size (in bytes)
| | | +-- hasAudio (boolean)
| | |
| | +-- imageData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- resolution
| | | +-- size
| | |
| | +-- audioData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- size
| | | +-- bitrate
| |
| +-- 1:
| | |
| | +-- title
| | +-- url
| | +-- src
| | +-- videoData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- quality
| | | +-- size (in bytes)
| | | +-- hasAudio (boolean)
| | |
| | +-- imageData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- resolution
| | | +-- size
| | |
| | +-- audioData:
| | | |
| | | +-- url
| | | +-- mimeType
| | | +-- size
| | | +-- bitrate
| |
| +-- ...
|
+-- error:
| |
| +-- message
| +-- errorCode
| +-- ...(metadata) --> it can be omited and may change based on our use case.

Note: This representation is simplified and may not capture the complete structure or metadata of each object. It aims to provide a visual understanding of the hierarchical relationships between the different components of the response

Responses:

200 (OK): Everything is fine and you will get desired output

401(Unauthorized): You are missing a Header Value Cookies. It may be protected/private video you need an account’s (which has access to it) cookies. Pass the cookie as a HeaderValue for `cookies`.

501(Not Implemented): The link you have provided is not yet supported by our system. May be added in future.

500(Internal Error): As we are a budding industrialist we don’t have proper support and maintenance team 😅. If it happened kindly report to me either one of my 2 repositories issues either VidSnap or VidSnapKit-Ultimate. Else you can also contact me.

Pros of using us:

  • No matter what-ever happens in this universe we are actively maintaining it
  • All logic we use to download is safe and public as it is an open source
  • We don’t use any ads in our APP. We prefer users’ satisfaction to our income

Cons of us:

  • Mono developer as a single developer I’m handling all the stuff for this project. Build logic creating/updating Android App, Maintaining server, fixing bugs etc.
  • It takes a maximum of 1 week to get a response from me.

Site Supported:

  • Instagram
  • Facebook
  • Vimeo
  • Dailymotion
  • LinkedIn
  • Sharechat
  • Likee
  • TikTok(Beta stage)
  • Twitter(Beta stage)
  • Youtube(Only on Android App)

Contact Me:

Mail: mudhayarajan.2013@gmail.com (est 1 week for response)

Instagram: udhayarajan_m (est 3 days for response)

WhatsApp: +918610477421 (est 1–2 days for a reply)

--

--