Có nhiều bạn muốn get link video facebook với nhiều mục đích khác nhau như download video facebook… Hôm nay mình xin hướng dẫn cách get link video facebook bằng cURL
Demo get link video facebook online:
function cURL
Vì sử dụng hàm cURL nên chúng ta không thể thiếu hàm cURL rồi:
functioncurl($url) {$ch= @curl_init();curl_setopt($ch, CURLOPT_URL,$url);$head[] ="Connection: keep-alive";$head[] ="Keep-Alive: 300";$head[] ="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";$head[] ="Accept-Language: en-us,en;q=0.5";curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36');curl_setopt($ch, CURLOPT_HTTPHEADER,$head);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_TIMEOUT, 60);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);curl_setopt($ch, CURLOPT_HTTPHEADER,array('Expect:'));$page= curl_exec($ch);curl_close($ch);return$page;}
function getFacebook
Có funtion curl rồi giờ chúng ta đến function getFacebook
functiongetFacebook($link){if(substr($link, -1) !='/'&&is_numeric(substr($link, -1))){$link=$link.'/';}preg_match('/https:\/\/www.facebook.com\/(.*)\/videos\/(.*)\/(.*)\/(.*)/U',$link,$id);// link dạng https://www.facebook.com/userName/videos/vb.IDuser/IDvideo/?type=2&theaterif(isset($id[4])){$idVideo=$id[3];}else{preg_match('/https:\/\/www.facebook.com\/(.*)\/videos\/(.*)\/(.*)/U',$link,$id);// link dạng https://www.facebook.com/userName/videos/IDvideoif(isset($id[3])){$idVideo=$id[2];}else{preg_match('/https:\/\/www.facebook.com\/video\.php\?v\=(.*)/',$link,$id);// link dạng https://www.facebook.com/video.php?v=IDvideo$idVideo=$id[1];$idVideo=substr($idVideo, 0, -1);}}$embed='https://www.facebook.com/video/embed?video_id='.$idVideo; // đưa link về dạng embed$get= curl($embed);$data=explode('[["params","',$get);// tách chuỗi [["params"," thành mảng$data=explode('"],["',$data[1]);// tách chuỗi "],[" thành mảng$data=str_replace(array('\u00257B','\u002522','\u00253A','\u00252C','\u00255B','\u00255C\u00252F','\u00252F','\u00253F','\u00253D','\u002526'),array('{','"',':',',','[','\/','/','?','=','&'),$data[0]);// thay thế các ký tự mã hóa thành ký tự đặc biệt//Link HD$HD=explode('[{"hd_src":"',$data);$HD=explode('","',$HD[1]);$HD=str_replace('\/','/',$HD[0]);//Link SD$SD=explode('"sd_src":"',$data);$SD=explode('","',$SD[1]);$SD=str_replace('\/','/',$SD[0]);if($HD){$linkDownload['HD'] =$HD;// link download HD}if($SD){$linkDownload['SD'] =$SD;// link download SD}$imageVideo='https://graph.facebook.com/'.$idVideo.'/picture'; // get ảnh thumbnail$linkVideo=array_values($linkDownload);$return['linkVideo'] =$linkVideo[0];// link video có độ phân giải lớn nhất$return['imageVideo'] =$imageVideo;// ảnh thumb của video$return['linkDownload'] =$linkDownload;// link download videoreturn$return;}
Hàm này sẽ trả về 1 mảng chứa image thumbnail của video, 1 link có độ phân giải lớn nhất, và tất cả link(HD,SD) của video. Mình đã giải thích code ở từng dòng rồi, thật đơn giản phải không nào.
cách dùng
Cách dùng thì đơn giản rồi, bạn chỉ cần copy link bỏ vào function là được thôi
$getFacebook= getFacebook($link);if($getFacebook){$get=$getFacebook;echo"Link Video: ".$get['linkVideo'];echo"<br>";echo"Link ảnh: ".$get['imageVideo'];echo"<br>";$linkDownload=$get['linkDownload'];echo"Link download: ";echo"<pre>";print_r($linkDownload);echo"</pre>";}

