WEB/Server

유튜브 썸네일의 파일유무로 재생가능한지 확인

Ezcode 2022. 7. 2. 22:17

 

유튜브 API를 사용하여 원하는 유튜브 컨텐츠로 구성한 사이트에서

오래되거나 사용중지 혹은 비공개되어 재생이 되지 않는 컨텐츠를 골라 삭제해야만 했다.

 

 

컨텐츠의 양이 많아서 하나하나 API를 사용해서 체크하기엔 무리가 있다고 판단

썸네일 주소 역시 디비에 보유하고 있기에 이를 이용하기로 결정

 

<?php
$listQuery = "SELECT idx, thumb FROM youtube_contents ORDER BY idx DESC";
$listResult = mysqli_query($conn, $listQuery);
while($listRow = mysqli_fetch_assoc($listResult)) {
	
    $thumb_url = $listRow['thumb'];
    
    if(chk_thumb($thumb_url) == 1) {
    	// 파일이 있으므로 패스
    } else {
    	// 파일이 없으므로 삭제처리
        mysqli_query($conn, "DELETE FROM youtube_contents WHERE idx = '".$listRow['idx']."' ");
    }
}

function chk_thumb($path) {

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$filepath);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if(curl_exec($ch)!==false) {
        return true;
    } else {
        return false;
    }
}
?>

 

js로 setTimeOut으로 데이터를 쪼개서 돌려서 마무리 했지만

상시 돌리기 위해서는 파일이 있는지 확인해서 하는것은 좋지 못하다.