Forked from aneelkkhatri/facebook-video-download-script.js
Created
April 12, 2018 12:38
-
-
Save jeanpimentel/e8df3f857d57e421f7b8f878027d3b96 to your computer and use it in GitHub Desktop.
Script for downloading Facebook videos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var LINK_TYPE_SD = 'sd_src_no_ratelimit'; | |
var LINK_TYPE_HD = 'hd_src_no_ratelimit'; | |
(function downloadVideo(type) { | |
function getMyObject(doc) { | |
var scriptsCollection = doc.getElementsByTagName("script"); | |
var scripts = []; | |
var regExp = /video_ids/i; | |
for (var i = scriptsCollection.length - 1; i >= 0; i--) { | |
var script = scriptsCollection[i].innerHTML; | |
if (regExp.test(script)) { | |
scripts.push(script); | |
}; | |
}; | |
var videoData = scripts[0].match(/"?videoData"?:(\[\{[^}]*\}\])/g).map(function(d) { | |
return eval(d.match(/"?videoData"?:(\[\{[^}]*\}\])/)[1])[0]; | |
}); | |
var paramsObject = { | |
videoData: videoData | |
} | |
return { | |
paramsObjects: [paramsObject], | |
}; | |
}; | |
function getDownloadLink(doc, video_id, type) { | |
var myObject = getMyObject(doc); | |
var dwLinks = myObject.paramsObjects[0].videoData.filter(function(video){return video.video_id == video_id;})[0]; | |
return dwLinks[type]; | |
}; | |
function download(type) { | |
var videoId = document.location.href.match(/https?:\/\/www\.facebook\.com\/[^/]+\/videos\/([^/]+)/)[1]; | |
var link = getDownloadLink(document, videoId, type); | |
var a = document.createElement('a'); | |
a.href = link; | |
a.setAttribute('download', 'download'); | |
a.click(); | |
}; | |
return download(type); | |
})(LINK_TYPE_SD); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment