본문 바로가기

PHP

PHP + 유튜브(youtube) 동영상 업로드 연동 소스

게시판 글 작성시 [영상첨부]버튼을 클릭하면 팝업으로 업로드창을 띄우고, 업로드가 완료되면 팝업창이 자동으로 닫히면서 게시판 form의 ucc_url 이라는 input=hidden 에 주소값(정확히는 영상 ID값)을 넣어주고자 하는 로직입니다.


먼저 게시판 글 작성 form 소스 (write.php)

아래 소스에서 form2가 따로 있는데 form1은 원 게시물이므로

영상 제목을 form2에 얹어서 팝업으로 submit 시키기 위해 임시방편으로 대충 따로둠.

신경 쓸 form은 아님.

제목 : 영상첨부 :
동영상 첨부
<script language="javascript"> function youtube_open(){ if(document.form1.title.value==''){ alert('제목을 먼저 입력해주세요.\n유튜브 영상에 표시될 제목입니다.'); document.form1.title.focus(); return; } f = document.form2; window.open('','youtPop','width=400,height=300'); f.target = 'youtPop'; f.action = 'youtube_upload.php'; f.title.value=document.form1.title.value; f.submit(); } function check_in(){ if(document.form1.ucc_url.value==''){ alert('영상을 첨부해주세요.'); return; } document.form1.action='ok.php'; document.form1.submit(); } </script>


유투브 영상 등록을 위한 팝업창(youtube_upload.php)

아래 소스에서 php코드 부분은 중간에 딱 한줄 한글 처리에 대해 추가한 라인을 제외하고는

사실상 해외사이트에서 처음 받은 원본 그대로임.

 


            
              
                '.$youtube_video_title.'
                '.$youtube_video_description.'
                '.$youtube_video_category.'
                '.$youtube_video_keywords.'
              
            ';
 
$key = "발급받은 유튜브 개발자 키"; // Get your key here: http://code.google.com/apis/youtube/dashboard/.
 
$headers = array("Authorization: GoogleLogin auth=".$authvalue,
                 "GData-Version: 2",
                 "X-GData-Key: key=".$key,
                 "Content-length: ".strlen($data),
                 "Content-Type: application/atom+xml; charset=UTF-8");
 
$curl = curl_init("http://gdata.youtube.com/action/GetUploadToken");
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_REFERER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
 
$response = simplexml_load_string(curl_exec($curl));
curl_close($curl);
?>





<SCRIPT type=text/javascript>
  function checkForFile() {
    if (document.form_y.file.value!=='') {
		document.form_y.submit();
    }else{
    	alert('영상을 첨부해주세요.');
	}
  }
</SCRIPT>


파일 : 제목 :
※ 업로드창이 자동으로 닫힐 때까지 창을 닫지 마세요. ※ 업로드가 완료되면 이 창은 자동으로 닫힙니다.


업로드 후 리턴값을 받는 페이지(upload_ok.php)


        <SCRIPT language=javascript>
		
		</SCRIPT>

        <SCRIPT language=javascript>
		
		</SCRIPT>




영상 플레이 및 썸네일 사진 소스

<iframe width="640" height="360" src="http://www.youtube.com/embed/" frameborder="0" allowfullscreen></iframe>