Hướng dẫn get link video facebook bằng cURL

Hướng dẫn get link video facebook bằng cURL

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: 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('&amp', $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.

Bài viết liên quan:

https://severphim.blogspot.com/2016/03/huong-dan-get-link-video-facebook-bang.html

Nhận Xét Facebook

Chờ xíu nhé...

Nhận Xét Blogger

Hiện tại có 1 Comments