/**
* Lấy thông tin hình ảnh thu nhỏ và URL video từ YouTube.
*
* @param string $youtube_id ID video của YouTube.
* @return array Thông tin video bao gồm URL hình ảnh thu nhỏ và URL video.
*/
function get_youtube_details($youtube_id) {
$video = [];
$video_thumbnail_url_string = 'https://img.youtube.com/vi/%s/%s';
// Kiểm tra sự tồn tại của video trên YouTube.
$video_check = wp_remote_get('https://www.youtube.com/oembed?format=json&url=https://www.youtube.com/watch?v=' . $youtube_id);
if (200 === wp_remote_retrieve_response_code($video_check)) {
// Kiểm tra sự tồn tại của hình ảnh thu nhỏ chất lượng cao.
$remote_headers = wp_remote_head(sprintf($video_thumbnail_url_string, $youtube_id, 'maxresdefault.jpg'));
$video['video_thumbnail_url'] = (404 === wp_remote_retrieve_response_code($remote_headers))
? sprintf($video_thumbnail_url_string, $youtube_id, 'hqdefault.jpg')
: sprintf($video_thumbnail_url_string, $youtube_id, 'maxresdefault.jpg');
$video['video_url'] = 'https://www.youtube.com/watch?v=' . $youtube_id;
$video['video_embed_url'] = 'https://www.youtube.com/embed/' . $youtube_id;
}
return $video;
}
/**
* Lấy thông tin hình ảnh thu nhỏ và URL video từ Vimeo.
*
* @param string $vimeo_id ID video của Vimeo.
* @return array Thông tin video bao gồm URL hình ảnh thu nhỏ và URL video.
*/
function get_vimeo_details($vimeo_id) {
$video = [];
// Lấy dữ liệu video từ Vimeo API.
$vimeo_data = wp_remote_get('https://vimeo.com/api/v2/video/' . intval($vimeo_id) . '.json');
if (200 === wp_remote_retrieve_response_code($vimeo_data)) {
$response = json_decode($vimeo_data['body']);
$large = isset($response[0]->thumbnail_large) ? $response[0]->thumbnail_large : '';
if ($large) {
// Kiểm tra sự tồn tại của hình ảnh thu nhỏ lớn.
$larger_test = explode('_', $large);
$test_result = wp_remote_head($larger_test[0]);
if (200 === wp_remote_retrieve_response_code($test_result)) {
$large = $larger_test[0];
}
}
// Chúng tôi buộc phải sử dụng định dạng JPG vì WebP vẫn còn vấn đề.
$video['video_thumbnail_url'] = isset($large) ? $large . '.jpg' : false;
$video['video_url'] = $response[0]->url;
$video['video_embed_url'] = 'https://player.vimeo.com/video/' . $vimeo_id;
}
return $video;
}