Chia sẻ - Share Code Get Link Download Video Từ Facebook | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Chia sẻ Share Code Get Link Download Video Từ Facebook

Mtdev


Junior Moderator
Hôm nay mò lại được bộ code từ lâu rồi để get link video trên facebook hôm nay mình share cho bác nào cần. Đây là bộ code giúp bạn lấy được video từ fb với nhiều chất lượng độ net khác nhau!

đầu tiên tạo 1 file index.html với nội dung sau đây

HTML:
<!DOCTYPE html>
<html lang="en" class="h-100">

<head>
    <meta charset="utf-8">
    <title>Facebook Video Downloader</title>
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="asset/app.css">
</head>

<body class="d-flex flex-column h-100">
    <div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom shadow-sm">
        <h5 class="my-0 mr-md-auto font-weight-normal">Facebook Video Downloader</h5>

    </div>
    <main role="main" class="flex-shrink-0">
        <div class="container">
            <div class="title px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center">
                <h1 class="display-4">Facebook Video Downloader</h1>
            </div>
            <div class="input-group">
                <label class="sr-only" for="link">Facebook Video URL</label>
                <input type="text" class="form-control mb-2 mr-sm-2" id="link" placeholder="Facebook Video Link"
                    name="link">
                <span class="input-group-btn">
                    <input type="button" name="download" id="download" value="Download!" class="btn btn-primary"
                        data-disable-with="Search" onclick="getDownloadLink();">
                </span>
            </div>
            <div id="bar" style="display:none;">
                <p class="text-center"><img src="https://cyber.manhtuong.net/fb/asset/ajax.gif"></p>
            </div>
            <div class="mt-3" id="result" style="display: none;">
                <div id="downloadUrl">
                    <div class="row">
                        <div class="col-md-12">
                            <div class="d-flex p-2 bg-primary text-white">Title</div>
                            <div class="d-flex p-2 bg-dark text-white" id="title"></div>
                        </div>
                        <div class="col-md-12 mt-1">
                            <div class="d-flex p-2 bg-primary text-white">Source</div>
                            <div class="d-flex p-2 bg-dark text-white" id="source"></div>
                        </div>
                        <div class="col-md-12 mt-1">
                            <div class="d-flex p-2 bg-primary text-white">Download Link:</div>
                            <div class="p-2 bg-dark text-break" id="links"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </main>
    <footer class="footer mt-auto py-3">
        <div class="container-fuild text-center">
            <span class="text-muted">This website demo
            </span>
        </div>
    </footer>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
        crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
        crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
        crossorigin="anonymous"></script>
    <script type="text/javascript" src="asset/app.js?v=1"></script>
</body>

</html>

Sau đó tạo 1 thư mục app và file main.php với nội dung sau

PHP:
<?php

header('Content-Type: application/json');

$msg = [];

try {
    $url = $_POST['url'];

    if (empty($url)) {
        throw new Exception('Please prvode the URL', 1);
    }

    $context = [
        'http' => [
            'method' => 'GET',
            'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.47 Safari/537.36',
        ],
    ];
    $context = stream_context_create($context);
    $data = file_get_contents($url, false, $context);

    $msg['success'] = true;

    $msg['id'] = generateId($url);
    $msg['title'] = getTitle($data);

    $videoData = getLinks($data);
    if ($videoData) {
        foreach ($videoData[1]  as $key => $value) {
            $msg['links'][$value] = cleanStr($videoData[2][$key]);
        }
    }
} catch (\Exception $e) {
    $msg['success'] = false;
    $msg['message'] = $e->getMessage();
}

echo json_encode($msg);

function generateId($url)
{
    $id = '';
    if (is_int($url)) {
        $id = $url;
    } elseif (preg_match('#(\d+)/?$#', $url, $matches)) {
        $id = $matches[1];
    }

    return $id;
}

function cleanStr($str)
{
    return html_entity_decode(strip_tags($str), ENT_QUOTES, 'UTF-8');
}

function getLinks($curl_content)
{
    $regex = '/FBQualityLabel=\\\\"([^"]+)\\\\">\\\\x3CBaseURL>([^\\\\]+)/';
    if (preg_match_all($regex, $curl_content, $output_array)) {
        return $output_array;
    }
}

function getTitle($curl_content)
{
    $title = null;
    if (preg_match('/h2 class="uiHeaderTitle"?[^>]+>(.+?)<\/h2>/', $curl_content, $matches)) {
        $title = $matches[1];
    } elseif (preg_match('/title id="pageTitle">(.+?)<\/title>/', $curl_content, $matches)) {
        $title = $matches[1];
    }

    return cleanStr($title);
}

function getDescription($curl_content)
{
    if (preg_match('/span class="hasCaption">(.+?)<\/span>/', $curl_content, $matches)) {
        return cleanStr($matches[1]);
    }

    return false;
}

Tạo thư mục asset và tạo 2 file css và js với nội dung sau
app.css
CSS:
html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.container {
    max-width: 960px;
}

2: app.js

JavaScript:
const getDownloadLink = async () => {
  $('#result').hide()

  const vid_url = $('#link').val()

  $('#download').val('Grabbing Link ...')
  $('#download').attr('disabled', 'disabled')

  $('#bar').show()

  const formData = new FormData()
  formData.append('url', vid_url)
  let response = await fetch('app/main.php', {
    method: 'POST',
    body: formData
  })

  const res = await response.json()
  if (res.success) {
    $('#bar').hide()
    $('#result').show()

    $('#title').html(res.title)
    $('#source').html(`<a class='text-white' href='${vid_url}'>${vid_url}</a>`)

    $('#links').html('')

    const links = res.links

    Object.keys(links).forEach(function (key) {
      $('#links').append(`<a class="btn btn-info mr-2" href="${links[key]}" role="button">${key}</a>`)
    })
  } else {
    $('#bar').hide()
    alert(res.message)
  }

  $('#download').val('Download!')
  $('#download').removeAttr('disabled')
}

Vậy là chúng ta đã song các bạn có thể xem demo ở đây

HTML:
https://cyber.manhtuong.net/fb/
 

lien88nd

Rìu Sắt Đôi
Thanks bạn. Cái này cũng hay phết, tự tạo cái host bằng pc của mình rồi cho cái này lên public là dùng ok
 

Mtdev


Junior Moderator
Thanks bạn. Cái này cũng hay phết, tự tạo cái host bằng pc của mình rồi cho cái này lên public là dùng ok
code này nhẹ mà nên bạn kiếm host nào đó đểu đểu hoăc heroku free mà dùng :) nhanh gọn nhẹ
 

Handrf

Kiếm đá
xin hỏi cách sử dụng là ntn vậy bạn? dán link gì vào trang index giờ? có phải theo rule nào k?
mình dán link này vào là nó quay tít lừ

Mã:
https://www.facebook.com/4rvnzoom/videos/2253294628299073/

mình để file với folder ntn phải không nhỉ?

Capture.PNG
 
Sửa lần cuối:

vanhoangquy

Búa Đá
xin hỏi cách sử dụng là ntn vậy bạn? dán link gì vào trang index giờ? có phải theo rule nào k?
mình dán link này vào là nó quay tít lừ

Mã:
https://www.facebook.com/4rvnzoom/videos/2253294628299073/

mình để file với folder ntn phải không nhỉ?

Xem phần đính kèm 9467
có bài hướng dẫn đây bạn này:
Mã:
https://www.vn4me.xyz/2020/04/tao-website-download-video-facebook.html
 


Top