유튜브 동영상 API 썸네일 이미지 자동 출력 > 기술자료 | 해피정닷컴

유튜브 동영상 API 썸네일 이미지 자동 출력 > 기술자료

본문 바로가기

사이트 내 전체검색

유튜브 동영상 API 썸네일 이미지 자동 출력 > 기술자료

그누보드 유튜브 동영상 API 썸네일 이미지 자동 출력

페이지 정보


본문


유튜브 API를 활용해서 주소만 넣으면 동영상 썸네일 이미지를 게시판 목록에 자동으로 출력하는 방법입니다.
유튜브 이미지를 출력하기 위해서는 우선 동영상 ID 값이 필요합니다.



유튜브에서 동영상 퍼가기를 클릭하면 아래와 같이 주소가 보입니다
https://youtu.be/3iM_06QeZi8
여기서 맨 뒷부분 값이 필요합니다.


유튜브 API 에서는 사이즈별로 다양하게 썸네일 이미지를 기본으로 제공하고 있습니다.

( ↓↓↓ 이미지를 클릭하면 큰 화면으로 볼 수 있습니다 ↓↓↓ )


만일 영상 주소가 아래와 같다면
https://www.youtube.com/watch?v=3iM_06QeZi8

기본 스크린샷 주소 : 
https://i.ytimg.com/vi/3iM_06QeZi8/0.jpg                  (screenshot)
https://img.youtube.com/vi/3iM_06QeZi8/0.jpg

영상 처음,중간,끝(120x90) 썸네일(thumbnail) 주소 : 
https://i.ytimg.com/vi/3iM_06QeZi8/1.jpg                  (thumbnail 1)
https://i.ytimg.com/vi/3iM_06QeZi8/2.jpg                  (thumbnail 2)
https://i.ytimg.com/vi/3iM_06QeZi8/3.jpg                  (thumbnail 3)
https://img.youtube.com/vi/3iM_06QeZi8/1.jpg
https://img.youtube.com/vi/3iM_06QeZi8/2.jpg
https://img.youtube.com/vi/3iM_06QeZi8/3.jpg

기본 120X90
https://i.ytimg.com/vi/3iM_06QeZi8/default.jpg
https://img.youtube.com/vi/3iM_06QeZi8/default.jpg

중품질 320x180
https://i.ytimg.com/vi/3iM_06QeZi8/mqdefault.jpg
https://img.youtube.com/vi/3iM_06QeZi8/mqdefault.jpg

고품질 480x360
https://i.ytimg.com/vi/3iM_06QeZi8/hqdefault.jpg
https://img.youtube.com/vi/3iM_06QeZi8/hqdefault.jpg

중간해상도 640X480
https://i.ytimg.com/vi/3iM_06QeZi8/sddefault.jpg
https://img.youtube.com/vi/3iM_06QeZi8/sddefault.jpg

최대해상도 1280x720, 1920x1080
https://i.ytimg.com/vi/3iM_06QeZi8/maxresdefault.jpg
https://img.youtube.com/vi/3iM_06QeZi8/maxresdefault.jpg

스킨 만들 때 적당한 사이즈로 사용합니다.


1. skin / board / gallery / list.skin.php  상단에  아래 함수 추가

if (!function_exists('extract_youtube_ids')) {
    function extract_youtube_ids($url) {
        // 유튜브 여러 형식 대응 정규식
        $pattern = '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([a-zA-Z0-9_-]{11})%';
        if (preg_match($pattern, $url, $matches)) {
            return $matches[1];  // 동영상 ID만 반환
        }
        return false;  // 매치 안되면 false 반환
    }
}



2. skin / board / gallery / list.skin.php 내용중

                            if($thumb['src']) {
                                $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
                            } else {
                                $img_content = '<span class="no_image" style="'.$line_height_style.'">no image</span>';
                            }

아래에 내용을 추가합니다
삽입하고자 하는 유튜브 이미지 크기에 맞게 아래 붉은색 글자를 변경하세요

                            // 유튜브 이미지 가져오기
                            $youtube_url = $list[$i]['wr_link1'];  // 동영상 링크
                            if (preg_match('/youtu.be/', $youtube_url) == true) { 
                                $youtube_url0 = explode('/',$youtube_url);
                                $youtube_id = $youtube_url0[3];
                            if (preg_match('/youtu.be/', $youtube_url) == true) { 
                                $youtube_url0 = explode('/',$youtube_url);
                                $youtube_id = $youtube_url0[3];
                            }
                            
                            $youtube_id = extract_youtube_ids($list[$i]['wr_link1']);
                                
                            if ($youtube_id) {
                                $img_content = "<img src=\"https://img.youtube.com/vi/{$youtube_id}/mqdefault.jpg\" width=\"{$board['bo_gallery_width']}\" height=\"{$board['bo_gallery_height']}\">";
                            }



3. skin / board / gallery / style.css 에 내용 추가

.video-wrap {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;  /* 16:9 비율 = (9/16)*100 */
    height: 0;
    overflow: hidden;
    margin: 20px 0;
}

.video-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}



4. skin / board / gallery / view.skin.php  본문 적당한 위치에 아래 내용 추가

        <?php
        // 유튜브 링크라면 영상 출력
        if ($view['wr_link1']) {
            // 유튜브 ID 추출 함수
            if (!function_exists('extract_youtube_ids')) {
                function extract_youtube_ids($url) {
                    // 유튜브 여러 형식 대응 정규식
                    $pattern = '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([a-zA-Z0-9_-]{11})%';
                    if (preg_match($pattern, $url, $matches)) {
                        return $matches[1];  // 동영상 ID만 반환
                    }
                    return false;  // 매치 안되면 false 반환
                }
            }

            $youtube_id = extract_youtube_ids($view['wr_link1']);

            if ($youtube_id) {
                echo '<div class="video-wrap" style="margin:20px 0;text-align:center">';
                echo '<iframe width="100%" height="315" src="https://www.youtube.com/embed/'.$youtube_id.'" frameborder="0" allowfullscreen></iframe>';
                echo '</div>';
            }
        }
        ?>



참고자료
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=94
https://blog.yesyo.com/entry/유튜브Youtube-이미지썸네일-주소

댓글목록

등록된 댓글이 없습니다.


Total 2,636건 4 페이지
  • RSS
기술자료 목록
2576
JavaScript   4712  2023-01-27 17:42  
2575
영카트   3160  2023-01-27 11:18 ~ 2023-01-27 14:12  
2574
그누보드   2673  2023-01-20 19:39 ~ 2023-01-20 23:13  
2573
Search   3556  2023-01-18 20:05 ~ 2023-01-18 20:35  
2572
호스팅   3733  2023-01-12 10:58 ~ 2023-01-12 10:58  
2571
APP   2699  2023-01-11 18:09 ~ 2023-01-11 18:51  
2570
Android   3759  2023-01-11 09:57 ~ 2024-01-31 18:23  
2569
그누보드   3420  2023-01-06 10:36  
2568
Android   4187  2023-01-04 20:45 ~ 2023-05-23 09:05  
2567
Android   4615  2023-01-03 18:43 ~ 2023-05-01 10:57  
열람
그누보드   3387  2022-12-31 09:25 ~ 2025-05-02 15:21  
2565
MySQL   4446  2022-12-28 21:09 ~ 2022-12-29 06:32  
2564
SQL   5826  2022-12-26 10:51 ~ 2022-12-26 11:52  
2563
호스팅   4592  2022-12-16 12:22 ~ 2022-12-26 19:57  
2562
Apple   4011  2022-12-13 21:15  
2561
일반   3326  2022-12-09 12:41 ~ 2022-12-09 12:49  
2560
일반   3369  2022-12-09 10:12 ~ 2022-12-26 18:20  
2559
Apple   3016  2022-12-09 06:07 ~ 2022-12-09 06:22  
2558
일반   3422  2022-12-08 17:05 ~ 2023-06-27 18:12  
2557
JavaScript   5822  2022-12-06 10:30 ~ 2022-12-06 13:11  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.