Lấy video trực tiếp từ Facebook

Cập nhật lần cuối vào

Đ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.

Theo dõi
Thông báo của
guest

7 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Phan Hùng
6 năm trước

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 😀

Tịnh Nguyễn Blog
6 năm trước

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ỉ 😀

boo
boo
5 năm trước

vậy code này thích hợp vào jwplayer bằng cách nào vậy các bạn

boo
boo
5 năm trước

Cảm ơn nhiều vì lời hướng dẫn của bạn chúc bạn đều tốt đẹp