Takip et

YouTube Video Arama ve Video Yönetimi (YouTubeV3 API)

Merhaba, bu makalemizde YouTubeV3 API yardımıyla youtube üzerinden video arama sonuçlarını alıp, gelen videoların yönetimini yapmayı öğreneceğiz.

Makaleyi bir öğretici olması sebebiyle demo bir proje olarak planladım. Böylelikle bootstrap kullanarak makale sonucunda örnek bir proje sahibi olmuş olacaksınız. Lütfen başlıkları adım adım takip edin.

Adım: HTML, JS ve CSS eklemelerini yapalım

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" type="text/css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
<script src="//code.jquery.com/jquery-2.1.4.js" type="text/javascript"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js" type="text/javascript"></script>

Yukarıdaki importlarımız genel işleyiş içindi. Şimdi ise örnek bir arama teması için lütfen hazırladığım aşağıdaki örnek HTML dosyasını entegre edin.

<div class="row-fluid">
	 <main id="content" role="main" class="span12">
		<!-- Begin Content -->
		<div id="hyv-page-container" style="clear:both;">
			 <div class="hyv-content-alignment">
				 <div id="hyv-page-content" class="" style="overflow:hidden;">
					 <div class="container-4">
						 <form action="" method="post" name="hyv-yt-search" id="hyv-yt-search">
						 	<input type="search" name="hyv-search" id="hyv-search" placeholder="Search..." class="ui-autocomplete-input" autocomplete="off">
						 	<button class="icon" id="hyv-searchBtn"></button>
						 </form>
					 </div>
					 <div>
						 <input type="hidden" id="pageToken" value="">
						 <div class="btn-group" role="group" aria-label="..."  style="display:none;">
							 <button type="button" id="pageTokenPrev" value="" class="btn btn-default">Prev</button>
							 <button type="button" id="pageTokenNext" value="" class="btn btn-default">Next</button>
						 </div>
					 </div>
					 <div id="hyv-watch-content" class="hyv-watch-main-col hyv-card hyv-card-has-padding">
						 <ul id="hyv-watch-related" class="hyv-video-list">
						 </ul>
					 </div>
					
					 <!-- Ads width 300px holder start -->
					 <div id="hyv-watch-sidebar-ads" style="float:left;">
						 <div id="hyv-watch-channel-brand-div" class="">
							 <div id="hyv-watch-channel-brand-div-text">Advertisement</div>
							 <div class="hyv-watch-sidebar-section">
								 <div style="font-weight:bold;height:10px;">JSON Responce</div>
								 <div class="hyv-watch-sidebar-body"></div>
							 </div>
						 </div>
					 </div>
					 <!-- Ads width 300px holder end -->
				 </div>
			 </div>
		 </div>
	 </main>
 </div>

Adım:Javascript

Bu bölümde YouTube arama işlemi ve otomatik tamamlama önerisi için gerekli JS kodlarımızı yazacağız.

$(document).ready(function() {
	 $("#pageTokenNext").on( "click", function( event ) {
		 $("#pageToken").val($("#pageTokenNext").val());
		 youtubeApiCall();
	 });
	 $("#pageTokenPrev").on( "click", function( event ) {
		 $("#pageToken").val($("#pageTokenPrev").val());
		 youtubeApiCall();
	 });
	 $("#hyv-searchBtn").on( "click", function( event ) {
		 youtubeApiCall();
		 return false;
	 });
	 jQuery( "#hyv-search" ).autocomplete({
		 source: function( request, response ) {
			 //console.log(request.term);
			 var sqValue = [];
			 jQuery.ajax({
				 type: "POST",
				 url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1",
				 dataType: 'jsonp',
				 data: jQuery.extend({
				 q: request.term
				 }, { }),
				 success: function(data){
					 console.log(data[1]);
					 obj = data[1];
					 jQuery.each( obj, function( key, value ) {
						 sqValue.push(value[0]);
					 });
					 response( sqValue);
				 }
			 });
		 },
		 select: function( event, ui ) {
		 setTimeout( function () { 
		 youtubeApiCall();
		 }, 300);
		 }
	 }); 
});

Aşağıdaki JavaScript fonksiyonu YouTube videolarını YouTube Search V3 API üzerinden almaya yarayacak. Aslında bu fonksiyon en can önemli nokta. API_KEY bölümüne Youtube üzerinden aldığınız key bilgisini eklemeniz gerekiyor.

function youtubeApiCall(){
 $.ajax({
	 cache: false,
	 data: $.extend({
		 key: 'API_KEY',
		 q: $('#hyv-search').val(),
		 part: 'snippet'
	 }, {maxResults:20,pageToken:$("#pageToken").val()}),
	 dataType: 'json',
	 type: 'GET',
	 timeout: 5000,
	 url: 'https://www.googleapis.com/youtube/v3/search'
 })
.done(function(data) {
	$('.btn-group').show();
	 if (typeof data.prevPageToken === "undefined") {
	 	$("#pageTokenPrev").hide();}else{$("#pageTokenPrev").show();
	 }
	 if (typeof data.nextPageToken === "undefined") {
	 	$("#pageTokenNext").hide();}else{$("#pageTokenNext").show();
	 }
	 var items = data.items, videoList = "";
	 $("#pageTokenNext").val(data.nextPageToken);
	 $("#pageTokenPrev").val(data.prevPageToken);
	 $.each(items, function(index,e) {
		 videoList = videoList + '<li class="hyv-video-list-item"><div class="hyv-content-wrapper"><a href="" class="hyv-content-link" title="'+e.snippet.title+'"><span class="title">'+e.snippet.title+'</span><span class="stat attribution">by <span>'+e.snippet.channelTitle+'</span></span></a></div><div class="hyv-thumb-wrapper"><a href="" class="hyv-thumb-link"><span class="hyv-simple-thumb-wrap"><img alt="'+e.snippet.title+'" src="'+e.snippet.thumbnails.default.url+'" width="120" height="90"></span></a></div></li>';
	 });
	 $("#hyv-watch-related").html(videoList);
	 // JSON Response to display for user
	 new PrettyJSON.view.Node({
		 el:$(".hyv-watch-sidebar-body"), 
		 data:data
	 });
 });
}

Soru, görüş ve önerilerinizi alt kısımda bulunan yorum bölümünden paylaşabilirsiniz. Kolaylıklar dilerim.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorumları Göster (1)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

  1. Allah senden razı olsun,sayende php’yi ögrendim, hem de burada kolayca anlayacağımız içerikleri paylaşıyorsun.

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version