웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Vimeo, Youtube 자동 썸네일 생성법(TED 추가)
2011.08.12 11:16
이곳에 처음 글을 써봅니다.
약간의 php 지식은 있으셔야 합니다.
제가 만들고 있는 사이트는 youtube나 vimeo 의 소스퍼오기 (iframe 으로 시작하는..) 을 이용해서 많은 동영상을 올릴려고 하고 있습니다. (계획중입니다...)
그래서 어떻게 생성할까... 하고 인터넷에서 방법을 찾아서 썸네일 생성하게 만들었습니다.
댓글에는 동영상 썸네일 생성의 필요성을 못느껴서 일단 본문만 적용했습니다.
일단 vimeo 입니다. 아래 함수를 추가해주세요... (저같은 경우 그냥 document.item.php 맨 마지막에 추가했습니다..)
이 함수는 vimeo video id로 이미지를 가지고 오는 함수입니다...(퍼왔습니다...) 참고로 curl을 필요로 합니다.. 없으시면.. 다른 방법으로 대체 해주세요...
다음에 document.item.php 에 getThumnail() 함수에서
를 찾아서 바로 위에 "}" 앞에 아래 코드를 추가합니다
그러면 썸네일 생성을 해줍니다...
마찬가지로 Youtube는 조금 더 쉽습니다..
위에 마지막에 언급했던 곳에
와 같이 추가해주시면 됩니다....
제 파일을 첨부합니다..
사실 네이버도 해보고싶은데 아직 필요성을 못느껴서-_-;;
더 좋게 수정 가능하거나 방법 있으면.. (최적화?) 덧글 달아주세요... 감사합니다.
document.item.php
추가..
최근에 vimeo와 youtube에 이어서 TED동영상들도 지원하게 되었습니다.
하지만.. 생길지 모르는 문제는... object사이에 있는 .jpg를 가진 링크들의 썸네일을 생성한다.. 입니다..--; 제가 아직 정규 표현에 좀 약해서.. --;; 파일 첨부 합니다..document.item.php (vimeo/youtube/ted 모두 포함..)
사용하실때 덧글 남겨주시면 매우 감사하겠습니다..
문제점 발견하시면..(위에 제가 언급 했던 문제라도..) 말씀해주세요...
약간의 php 지식은 있으셔야 합니다.
제가 만들고 있는 사이트는 youtube나 vimeo 의 소스퍼오기 (iframe 으로 시작하는..) 을 이용해서 많은 동영상을 올릴려고 하고 있습니다. (계획중입니다...)
그래서 어떻게 생성할까... 하고 인터넷에서 방법을 찾아서 썸네일 생성하게 만들었습니다.
댓글에는 동영상 썸네일 생성의 필요성을 못느껴서 일단 본문만 적용했습니다.
일단 vimeo 입니다. 아래 함수를 추가해주세요... (저같은 경우 그냥 document.item.php 맨 마지막에 추가했습니다..)
function getVimeoInfo($id, $info = 'thumbnail_medium') {
if (!function_exists('curl_init')) die('CURL is not installed!');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = unserialize(curl_exec($ch));
$output = $output[0][$info];
curl_close($ch);
return $output;
}
이 함수는 vimeo video id로 이미지를 가지고 오는 함수입니다...(퍼왔습니다...) 참고로 curl을 필요로 합니다.. 없으시면.. 다른 방법으로 대체 해주세요...
다음에 document.item.php 에 getThumnail() 함수에서
if($source_file){
$output = FileHandler::createImageFile($source_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type);
}
를 찾아서 바로 위에 "}" 앞에 아래 코드를 추가합니다
preg_match('/http:\/\/player.vimeo.com\/video\/(\d+)/', $content, $matches);
if (count($matches) != 0)
{
$vimeo_id = $matches[1];
//return "http://img.youtube.com/vi/$matches[1]/0.jpg";
$target_src = getVimeoInfo($vimeo_id);
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->document_srl));
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
FileHandler::getRemoteFile($target_src, $tmp_file);
if(file_exists($tmp_file))
{
list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file);
if($_w>=$width && $_h>=$height)
{
$source_file = $tmp_file;
$is_tmp_file = true;
}
}
}
그러면 썸네일 생성을 해줍니다...
마찬가지로 Youtube는 조금 더 쉽습니다..
위에 마지막에 언급했던 곳에
$erg = '!http:\/\/w{0,3}\.youtube[^\' \'\n\r"]+!';
preg_match_all($erg, $content, $mtc, PREG_PATTERN_ORDER);
if ($mtc[0][0])
{
preg_match('!/(embed|v)/([0-9A-Za-z_]+)!', $mtc[0][0], $matches);
$target_src = "http://img.youtube.com/vi/".$matches[2]."/0.jpg";
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->document_srl));
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
FileHandler::getRemoteFile($target_src, $tmp_file);
if(file_exists($tmp_file))
{
list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file);
if($_w>=$width && $_h>=$height)
{
$source_file = $tmp_file;
$is_tmp_file = true;
}
}
}와 같이 추가해주시면 됩니다....
제 파일을 첨부합니다..
사실 네이버도 해보고싶은데 아직 필요성을 못느껴서-_-;;
더 좋게 수정 가능하거나 방법 있으면.. (최적화?) 덧글 달아주세요... 감사합니다.
document.item.php
추가..
최근에 vimeo와 youtube에 이어서 TED동영상들도 지원하게 되었습니다.
하지만.. 생길지 모르는 문제는... object사이에 있는 .jpg를 가진 링크들의 썸네일을 생성한다.. 입니다..--; 제가 아직 정규 표현에 좀 약해서.. --;; 파일 첨부 합니다..document.item.php (vimeo/youtube/ted 모두 포함..)
사용하실때 덧글 남겨주시면 매우 감사하겠습니다..
문제점 발견하시면..(위에 제가 언급 했던 문제라도..) 말씀해주세요...
태그 연관 글
- [2017/05/03] 묻고답하기 youtube 영상목록을 불러와서 게시판에 뿌려주는 모듈이나 스킨이 있을까요? *1
- [2016/10/25] 묻고답하기 썸네일 지정 가능한 에디터... 에러메세지... *1
- [2015/01/31] 묻고답하기 유튜브 동영상에서 카테고리(category) 값을 얻으려 하는데요.... *1
- [2014/09/16] 묻고답하기 vimeo 전체화면 오류 *2
- [2014/09/16] 묻고답하기 우분투 14.04 LTS로 올리고 나서 썸네일이 안 나옵니다 *4
댓글 47
제목 | 글쓴이 | 날짜 |
---|---|---|
VB.NET에서 XE로그인 연동하기.[내용추가] [3] | AppSeedKorea | 2014.03.26 |
관리자 포인트 조작 없이 레벨 아이콘 대신 원하는 아이콘 띄우기
[9]
![]() | ꂎꌰ) | 2007.12.24 |
1.5버전대에서 1.7.4버전으로 업데이트시.. [4] | 똑디 | 2014.02.26 |
Vimeo, Youtube 자동 썸네일 생성법(TED 추가)
[47]
![]() | 마나풀 | 2011.08.12 |
누리고쇼핑몰에서 구주소에 새주소적용하기 [14] | garnecia | 2014.02.08 |
최신 제로보드 XE 동영상 강의 [25] | 하얀마법 | 2013.08.09 |
메인 홈페이지와 서브페이지를 하나의 레이아웃으로 | 투씨 | 2014.03.24 |
XE코어 수정없이 원하는 기능 넣기
[3]
![]() | 마이웹 | 2014.03.22 |
[Jquery] input box border input | pell | 2014.03.21 |
폰갭 이용시 파일 첨부 한번에 올리기 | 웹빌드 | 2014.03.20 |
[초보]자신의 컴퓨터에 서버설치
[2]
![]() | 낮은자 | 2014.03.07 |
[클래스] 클래스 #1
[8]
![]() | )OsE= | 2002.08.07 |
lang.xml 키워드 사용체크 프로그램 (리눅스/파이썬)
![]() | NURIGO | 2014.03.19 |
모바일 화면 사이즈 관련 팁 | 젤리빈 | 2014.03.19 |
XE 앱 개발시 키보드 포커스 관리 | StyleRoot | 2014.03.19 |
호환성보기 명령어 모음 | 다큰왕자 | 2014.03.17 |
아이피, 도메인 차단하는 방법 | ByteCMC | 2014.03.16 |
스케치북 게시판 제목 과 분류 사이의 공간 제거 하기
[6]
![]() | socialskyo | 2014.01.06 |
모바일 웹 팁 | natureweb | 2014.03.13 |
css3를 이용한 button 입니다. | Ansi™ | 2014.03.13 |