Demo get link video facebook online: Demo
function cURL
Vì sử dụng hàm cURL nên chúng ta không thể thiếu hàm cURL rồi:
function curl($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
function getFacebook($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&theater
if(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/IDvideo
if(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 video
return $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>";
}
Nguồn:blogit.vn
Hoặc
<?php
/**
* @name Simple function to get link and download video on Facebook
* @author Juno_okyo & Killer
* @copyright 2013 by J2TeaM
*/
$url = 'https://www.facebook.com/photo.php?v=464181973622841&set=vb.405529542805619&type=3';
_Download($url);
function _Download($url) {
$useragent = 'Mozilla/5.0 (Linux; U; Android 2.3.3; de-de; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$source = curl_exec($ch);
curl_close($ch);
$download = explode('/video_redirect/?src=', $source);
$download = explode('&', $download[1]);
$download = rawurldecode($download[0]);
header('Location: ' . $download);
exit();
}
?>
Các bạn có thể thêm một đoạn GET để có thể download theo dạng ?url=LINK_VIDEO.
0 nhận xét:
Đăng nhận xét