Đoạn code bên dưới sẽ giúp bạn lấy những đường dẫn video trực tiếp từ Facebook. Nếu bạn đang muốn viết code để chạy video Facebook trên JW Player hoặc bất kỳ mã nguồn nào khác thì bạn cần phải dùng link trực tiếp, bài viết này chỉ áp dụng cho code chạy trên WordPress, nếu bạn muốn dùng cho các dự án PHP khác thì có thể chỉnh sửa lại nhé.
function hocwp_theme_custom_get_facebook_url( $url ) { $tr_name = 'hocwp_facebook_video_direct_url_' . md5( $url ); if ( false === ( $result = get_transient( $tr_name ) ) ) { $res = wp_remote_post( $url ); $body = wp_remote_retrieve_body( $res ); $dom = new DomDocument(); $save = false; $internalErrors = libxml_use_internal_errors( true ); $dom->loadHTML( $body ); libxml_use_internal_errors( $internalErrors ); $scripts = $dom->getElementsByTagName( 'script' ); foreach ( $scripts as $script ) { $html = $dom->saveHTML( $script ); if ( false !== strpos( $html, '.mp4' ) ) { $html = strstr( $html, 'videoData:[{' ); $html = strstr( $html, '}],', true ); $html = str_replace( 'videoData:[', '', $html ); $html .= '}'; preg_match_all( '#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $html, $matches ); $result = $matches[0]; if ( is_array( $result ) && 0 < count( $result ) ) { set_transient( $tr_name, $result, DAY_IN_SECONDS ); break; } } } } return $result; }
Hàm này sẽ trả về giá trị mảng các đường dẫn video của Facebook, mỗi đường dẫn đến video có chất lượng khác nhau. Mình sẽ lưu cache lại trong vòng 1 ngày, nếu như link không hoạt động thì bạn có thể rút ngắn thời gian cache xuống còn 6 tiếng hoặc ít hơn.
Cũng hay, có khi làm trang chia sẻ video xong nhúm luôn fb vào rồi get link cho vào jwplay 😀
Đúng rồi bạn, cái này cốt là để lấy link trực tiếp từ Facebook, cái điểm yếu ở đây là code sẽ không hoạt động nếu Facebook thay đổi giao diện @@
Hiện tại Facebook cũng không dễ để quản lý nội dung nên mình gom nó lại các chuyên mục trên website / blog cũng tiện hơn khi xem lại cũng như tìm kiếm, điều hướng nội dung bác nhỉ 😀
vậy code này thích hợp vào jwplayer bằng cách nào vậy các bạn
Bạn xem hướng dẫn của JW Player nhé: https://developer.jwplayer.com/jw-player/docs/developer-guide/customization/configuration-reference/
Khi load trang hoặc người dùng nhấn nút play thì bạn thực thi AJAX để lấy URL, sau đó chèn vào player theo cú pháp:
[javascript]
jwplayer("myElement").setup({
"file": "https://example.com/myVideo.mp4",
"height": 360,
"width": 640,
"autostart": "viewable",
"advertising": {
"client": "vast",
"tag": "http://adserver.com/vastTag.xml"
}
});
[/javascript]
Cảm ơn nhiều vì lời hướng dẫn của bạn chúc bạn đều tốt đẹp
Cảm ơn bạn. Chúc thành công nghé.