티스토리 뷰

AMINA 스킨을 수정하는 방법으로 수정에 대한 책임은 사용자에게 있습니다.

 

G4S를 이용중 페이스북 동영상을 올릴때 thumbnail 생성 및 뷰페이지 영상처리에 대한 패치 입니다.

이 패치는 비공식 패치이므로 차후 AMINA 스킨을 업데이트시 문제가 발생하실수 있습니다.

강력주의, 초보가 작성한 패치라 소스가 엉망일수 있습니다.

 

한별아빠님이 더 좋은 내용으로 공식패치가 나올걸로 생각합니다.

 

예제 : http://nscore.net/bbs/board.php?bo_table=ns_video

 

이제 수정할 부분에 대한 내용 시작합니다.

 

패치 다운로드 : 

facebook_video_patch.zip


 

수정1 : ./amina/lib/view.lib.php


116번째줄 

  

}

을 하단과 같이 변경

(facebook영상에 대한 출력 처리)

 

}else if($video['type'] == "facebook"){ // Facebook

$show = '<iframe src="https://www.facebook.com/video/embed?video_id='.urlencode($video[vid]).'" width="'.$video['width'].'" height="'.$video['height'].'" frameborder="0"></iframe>';

}

이 urlencode($video[vid]) 부분은 url 인코딩을 안해줘도 상관없으나 혹시 모를 xss 대처로 해 놓았습니다.

 



 

수정2 : ./amina/lib/video.lib.php


42번째줄

 

}

하단과 같이 변경

(함수 amina_video_imgurl 안 if문에 비교문 추가,  facebook 타입에 대한 thumbnail 주소를 가져오는 부분 추가)

 

} else if($type == "facebook"){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.facebook.com/method/fql.query?query=select%20title,%20thumbnail_link%20from%20video%20where%20vid={$vid}");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

$output = curl_exec($ch);

curl_close($ch);

preg_match('/\<thumbnail_link\>(?P<img_url>[^\s\'\"]+)\<\/thumbnail_link\>/i', $output, $video);

 

if($video['img_url'])

$imgurl = str_replace("t.jpg","b.jpg",$video['img_url']);

}

 


 

 

256번째줄

 

}

하단과 같이 변경

(함수 amina_video_info 안 if문에 비교문 추가,  facebook 타입에 대한 비디오 정보를 가져오는 부분 추가)

 

 

} else if($info['host'] == "www.facebook.com") { //Facebook

$video['type'] = 'facebook';

if($query['video_id']){

$video['vid'] = $query['video_id'];

}else {

$video['vid'] = $query['v'];

}

if(!is_numeric($video['vid'])) $video = NULL;

}

 


 

수정한 파일은 첨부파일로 첨부하였습니다.

 

 

facebook video thumbnail을 가져오는 부분은 아래 링크를 참고 하였습니다.

참고 : http://janote.tumblr.com/post/2322766072/facebook-get-facebook-video-info-without-api-key

댓글
안내
궁금한 점을 댓글로 남겨주시면 답변해 드립니다.