YouTube API Hizmetleri: Gerekli Minimum İşlevler

Not: YouTube Geliştirici Politikaları'na uygunluk, API istemcilerinizin YouTube API Hizmetleri Şartları ve Politikaları'nın (API Hizmet Şartları) belirli bölümlerine uymasını sağlamanıza yardımcı olacak rehberlik ve örnekler sunar. Bu kılavuz, YouTube'un API Hizmet Şartları'nın belirli yönlerini nasıl uyguladığına dair bilgiler sunar ancak mevcut belgelerin yerini almaz.

Bu belgede, YouTube API hizmetlerinin belirli özelliklerini uygulayan veya bu özelliklere erişim sağlayan API istemcileri ("API İstemcileri") için minimum işlevsel şartlar tanımlanmaktadır.

Bu şartlar ve yönergeler, API istemcilerinin YouTube kullanıcılarının, içerik sahiplerinin ve reklamverenlerin çıkarlarını koruyan tutarlı bir kullanıcı deneyimi sunmasını sağlar. Bu kurallar, YouTube API Hizmet Şartları'nın ayrılmaz bir parçasıdır ve tüm API İstemcilerinin geliştirilmesi ve uygulanması sırasında bunlara uyulması gerekir.

Mevcut YouTube özellikleriyle daha iyi kullanıcı deneyimleri sunabilmek için bu belgedeki şartların değişebileceğini göz önünde bulundurmanız gerekir. Ayrıca, yeni ve güncellenen YouTube özelliklerine göre de değişirler. Bazen bu tür değişiklikler, yeni koşulları karşılamak için API istemcilerinizi güncellemenizi gerektirebilir. Hizmet Şartları revizyon geçmişinde tüm değişiklikler belgelenir. Bu nedenle, API istemcilerinizi etkileyebilecek değişiklikleri hızlı bir şekilde öğrenebilmek için lütfen bu belgeyi sık sık kontrol edin veya RSS feed'ine abone olun.

Bu belgedeki şartlara ek olarak, YouTube API Hizmetleri Politikaları'nda açıklanan ve YouTube API hizmetleri dokümanlarının başka yerlerinde ele alınan en iyi uygulamaları uygulamanızı önemle tavsiye ederiz. Kesinlikle gerekli olmasa bile bu uygulamalar, API istemcilerinizin hatalardan daha hızlı kurtulmasına ve kota tahsis eden YouTube API hizmetlerini kullanıyorsa kota kullanımını optimize etmesine yardımcı olur. Aynı zamanda bu uygulamalar, YouTube ekosisteminin sağlıklı olmasını ve en önemlisi, API istemcilerinizin ve YouTube uygulamalarının kullanıcılarına mümkün olan en iyi deneyimi sunmayı sağlar.

YouTube yerleştirilmiş oynatıcısı ve video oynatma

Bu bölümdeki koşullar özellikle yerleştirilmiş YouTube oynatıcılarıyla ilgilidir. YouTube API Hizmetleri Politikaları, YouTube görsel-işitsel içeriklerini oynatan API istemcileriyle ilgili çeşitli politikaları da içerir.

API İstemci Kimliği ve Kimlik Bilgileri

YouTube IFrame Player API dahil olmak üzere YouTube yerleştirilmiş oynatıcısını kullanan API istemcileri, HTTP Referer istek başlığı aracılığıyla tanımlama bilgisi sağlamalıdır. Bazı ortamlarda tarayıcı HTTP Referer değerini otomatik olarak ayarlar. API istemcilerinin ise yalnızca Referrer-Policy değerini Referer değerini bastıracak şekilde ayarlamadıklarından emin olmaları gerekir. YouTube, birçok tarayıcıda varsayılan olarak kullanılan strict-origin-when-cross-origin Referrer-Policy'yi kullanmanızı önerir.

Benzer şekilde, YouTube yerleştirilmiş oynatıcısını JavaScript window.open kullanılarak oluşturulan bir pencereye entegre ediyorsanız API istemcileri, Referer değerini bastıran noreferrer özelliğini kullanmamalıdır.

Yönlendireni ayarlama

HTTP Referer'nın varsayılan olarak boş olduğu ve tarayıcı tarafından otomatik olarak ayarlanmadığı ortamlarda, API istemcilerinin kimliklerini alternatif yollarla sağlamak için işlem yapması gerekir. Mobil uygulama veya masaüstü uygulaması gibi WebView entegrasyonlarında HTTP Referer varsayılan olarak boştur ve Referer genellikle şu tekniklerden biri kullanılarak ayarlanır:

  • Yerel HTML dosyası içinde oynatıcı bulunan mobil uygulama

    Bu yapılandırmada oynatıcı, uygulamayla birlikte paketlenmiş bir HTML dosyasına yüklenir. Bu HTML dosyası yüklenirken baseUrl parametresinin ayarlanması Referer parametresini ayarlar.

  • Yerel HTML dosyası olmayan mobil uygulama

    Bu yapılandırmada oynatıcı, herhangi bir kapsayan HTML dosyası olmadan doğrudan https://www.youtube.com/embed/VIDEO_ID adresinden yüklenir. Referer değerini, HTTP üstbilgisi olarak ekleyerek ayarlarsınız:

    • additionalHttpHeaders parametresine eklenen Referer HTTP üst bilgisine sahip Android loadUrl
    • İsteğe Referer HTTP üst bilgisi eklenmiş iOS loadRequest:. Örneğin:

      NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier];
      NSString *referrer = [[NSString stringWithFormat:@"https://%@", bundleId] lowercaseString];
      NSURL *referrerUrl = [NSURL URLWithString:referrer];
      
      NSString *destination = @"https://www.youtube.com/embed/VIDEO_ID";
      NSURL *destinationUrl = [NSURL URLWithString:destination];
      
      NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:destinationUrl];
      [request addValue:referrerUrl forHTTPHeaderField:@"Referer"];
      
      // Create an instance of WKWebView (omitted for simplicity), then load the NSMutableURLRequest.
      [webView loadRequest:request];
      
  • Yerel tarayıcı sekmesinde oynatıcı bulunan mobil uygulama

    • Android CustomTabs

      Yönlendireni ayarlamak için Intent.EXTRA_REFERRER öğesini kullanın. Uri oluştururken https:// yerine android-app:// şemasını kullandığınızdan emin olun. Örneğin:

      String destinationUrl = "https://www.youtube.com/embed/VIDEO_ID";
      CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build()
      customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER, Uri.parse("android-app://" + context.getPackageName()));
      customTabsIntent.launchUrl(this, Uri.parse(destinationUrl));
      
    • iOS SFSafariViewController

      SFSafariViewController, Referer ayarını yapmayı desteklemez. Bu durumda, bunun yerine origin oynatıcı parametresini ayarlayın.

  • Masaüstü uygulaması

    Bu yapılandırmada, Referer öğesini HTTP üstbilgisi olarak ekleyerek ayarlayın:

HTTP Referer değerinin varsayılan olarak boş olduğu diğer platformlarda, oynatıcının yüklendiği WebView'i yapılandırarak Referer değerini ayarlayın. Tam teknik platforma göre değişiklik gösterebilir.

Geliştiricilerin YouTube yerleştirilmiş oynatıcısını entegre etmek için kullandığı bir kitaplığın, çerçeve, eklenti, hizmet veya sarmalayıcının sahibiyseniz uygulama kimliğini ortamdan almanız (platforma bağlı olarak bu mümkün olmayabilir) ya da geliştiricilerin uygulama kimliklerini iletmesine izin vermeniz gerekir. Böylece Referer (ve uygunsa widget_referrer oynatıcı parametresi) yukarıda açıklandığı şekilde ayarlanabilir.

Yönlendiren biçimi

Bir WebView parametresi ayarlayarak veya bir HTTP üst bilgisi ekleyerek yönlendireni açıkça sağladığınızda biçim genellikle tam nitelikli bir URL olur. Protokol olarak HTTPS değerini belirtin. URL'de, alan adı, uygulamanızı son kullanıcılara dağıtan mağazaya kayıtlı uygulama tanımlayıcınız ("uygulama kimliği") olmalıdır. Uygulamanız kullanıcılara alternatif bir dağıtım kanalı üzerinden sağlanıyorsa uygulama yükleme sırasında işletim sistemine kaydedilen uygulama kimliğini kullanın. Çoğu durumda, uygulama kimliğiniz com.google.android.youtube gibi tersine çevrilmiş bir alan adı (ters DNS biçimi olarak da bilinir) olur. Temsilci örnekler:

Bazı platformlarda uygulama kimliği, tersine çevrilmiş bir alan adı değildir. Bu gibi durumlarda, uygulamayı dağıtan mağaza tarafından atanan benzersiz uygulama kimliğini kullanın. Mağaza uygulama kimliği, oluşturulmuş bir alfasayısal dize olduğunda (uygulama geliştirici tarafından seçilmeyip mağaza veya geliştirme araçları tarafından atanır) hem uygulama görünen adını (boşluklar tirelerle değiştirilerek) hem de mağaza uygulama kimliğini nokta ile ayrılmış şekilde ekleyin. Örneğin: <my-app-name>.<AppID>. Bu değer, uygulama sürümü değişikliklerinde sabit kalmalıdır. Uygulama bir mağazada barındırılmıyorsa uygulama yükleme sırasında işletim sistemine kaydedilen uygulama kimliğini kullanın. Bu kimlik genellikle uygulama manifestindeki benzersiz bir tanımlayıcıdır. Uygulama sürümü ve desteklenen mimariyle ilgili ayrıntıları hariç tutun. Temsilci örnekler:

  • Chrome Web Mağazası: mağazada barındırılan

    Mağaza uygulaması kimliği genellikle uygulama URL'sindeki yolun son kısmıdır https://chromewebstore.google.com/detail/<hyphenated-app-name>/<AppID>. Yukarıda açıklanan <my-app-name>.<AppID> dizesini oluşturmak için kısa çizgili uygulama adını ve mağaza uygulama kimliğini kullanın.

  • Windows: mağazada barındırılan

    Mağaza uygulaması kimliği genellikle uygulama URL'sindeki yolun son kısmıdır https://apps.microsoft.com/detail/<AppID>. Yukarıda açıklanan <my-app-name>.<AppID> dizesini oluşturmak için mağaza uygulaması kimliğini kullanın. Tireli uygulama adı da eklenmelidir.

  • Windows: mağaza dışı dağıtım

    Windows uygulamalarının uygulama manifestinde Name_Version_Architecture_ResourceID_PublisherID paket kimliği bulunur. Yalnızca Name özelliğini kullanın.

  • Xbox: mağaza tarafından barındırılan

    Mağaza uygulaması kimliği genellikle uygulama URL'sindeki yolun son kısmıdır https://www.xbox.com/<region>/games/store/<hyphenated-app-name>/<AppID>. Yukarıda açıklanan <my-app-name>.<AppID> dizesini oluşturmak için kısa çizgili uygulama adını ve mağaza uygulama kimliğini kullanın.

YouTube'a çok sayıda istek gönderen API istemcilerinin (bkz. Kullanım ve Kotalar) YouTube yerleşik oynatıcısına erişmek için ek kimlik bilgileri sağlaması gerekebilir.

Bu şartlara uyulmaması, yerleştirilmiş YouTube oynatıcısında işlevlerin azalmasına neden olabilir.

WebView Türü

YouTube yerleştirilmiş oynatıcısını bir WebView'a entegre ederken, varsa işletim sistemi tarafından sağlanan WebView türlerinden birini kullanın. Örneğin:

Yerleştirilmiş YouTube oynatıcısının boyutu

Yerleşik oynatıcıların en az 200 piksele 200 piksel değerinde bir görünüme sahip olması gerekir. Oynatıcı kontrolleri gösterirse görünümün minimum boyutun altına düşürmeksizin kontrolleri tamamen gösterecek kadar geniş olması gerekir. En az 480 piksel genişlik, 270 piksel uzunluğa sahip 16:9 oynatıcıları öneririz.

Otomatik oynatma ve komut dosyalı oynatmalar

Bu bölümde otomatik oynatma özelliği ele alınmaktadır. Bu politika, autoplay oynatıcı parametresini kullanan veya YouTube IFrame Player API hizmetini ya da başka bir YouTube API hizmetini kullanarak otomatik oynatmayı programatik olarak başlatan yerleştirilmiş YouTube oynatıcıları için geçerlidir.

  • Bir videoyu otomatik olarak oynatan yerleştirilmiş oynatıcılar, sayfa yüklendiğinde veya yerleştirilmiş oynatıcı tamamen görünür hale geldiğinde oynatma işlemini hemen başlatmalıdır. Ancak bir API istemcisi, oynatıcı görünür olana ve oynatıcının yarısından fazlası sayfada veya ekranda görünür olana kadar otomatik oynatma başlatmamalıdır.

  • Bir sayfada veya ekranda, içeriği aynı anda otomatik olarak oynatan birden fazla YouTube oynatıcı bulunmamalıdır.

  • Oynatmayı başlatan tüm YouTube küçük resimleri en az 120 piksel genişliğinde ve 70 piksel yüksekliğinde olmalıdır.

YouTube oynatıcı özellikleri

YouTube oynatıcısının özellikleri ve parametreleri (ör. oynatıcıda YouTube markasının görünümü) YouTube API belgelerinde ve spesifikasyonlarında (https://developers.google.com/youtube) belirtilir. YouTube oynatıcıda, API belgelerinde açıkça belirtilmeyen değişiklikler yapmamalısınız.

Yer paylaşımları ve çerçeveler

Oynatıcı kontrolleri de dahil olmak üzere, yerleştirilmiş bir YouTube oynatıcısının herhangi bir bölümünün önünde yer paylaşımları, çerçeveler veya diğer görsel öğeler göstermemelisiniz. Benzer şekilde, yerleştirilmiş bir oynatıcının herhangi bir bölümünü (oynatıcı kontrolleri dahil) kapatmak için yer paylaşımları, çerçeveler veya başka görsel öğeler kullanmamalısınız.

Fare üzerine getirildiğinde etkinleşen öğeler

Kullanıcı adına herhangi bir işlem başlatmak için YouTube oynatıcıda fareyle üzerine gelme veya dokunma etkinliklerini kullanmamalısınız (ör. pencere açma veya kanala abone olma).

Video yükleme

API istemcileri, kullanıcıların birden fazla platforma içerik yüklemesine izin veriyorsa kullanıcılar, videolarını yüklemek istedikleri platformları seçip seçimlerini kaldırabilmelidir.

Veri gereksinimleri

Kullanıcıların YouTube'a video yüklemesine olanak tanıyan API istemcileri, kullanıcıların aşağıdaki listedeki değerleri ayarlamasına izin vermelidir. Listelenmeyen tüm özellikler isteğe bağlıdır.

  Ad Açıklama
Kaynak özellikleri
snippet.title Zorunludur. Videonun başlığı. Değer 100 karakteri aşarsa YouTube hata döndürür. YouTube, < ve > hariç tüm geçerli UTF-8 karakterlerini destekler.

snippet.description Zorunludur. Videonun açıklaması. Değer 5.000 baytı aşarsa YouTube hata döndürür. YouTube, < ve > hariç tüm geçerli UTF-8 karakterlerini destekler.
status.privacyStatus Zorunludur. Videonun gizlilik ayarı. Kullanıcılar, yüklenen videonun herkese açık, gizli veya liste dışı olacağını seçebilmelidir.
İstek parametreleri
onBehalfOfContentOwnerChannel Koşula bağlı olarak gereklidir. İsteğin yetkilendirme kimlik bilgileri bir içerik sahibini tanımlıyorsa ve onBehalfOfContentOwner parametresi ayarlanmışsa API kullanıcısı, videonun yüklendiği YouTube kanalını da belirtebilmelidir.

Yorumları gösterme

  Ad Açıklama
Kaynak özellikleri
snippet.textDisplay Zorunludur. Yorumun metni. API istemcisi (a) bir yorumun veya yorum yanıtının tam metnini göstermeli ya da (b) metni kısaltmalı ve izleyicinin kısaltılmış sürümden tam metne kolayca erişebilmesini sağlamalıdır.

Bu şart, yorumların hangi kaynak türüyle (videolar, kanallar vb.) ilişkilendirildiğine bakılmaksızın tüm yorumlar ve yorum yanıtları için geçerlidir.

commentThread kaynağının snippet.topLevelComment özellik değerinin bir comment kaynağı ve replies.comments[] özelliğinin bir comment kaynakları listesi olduğunu unutmayın. Bu nedenle, bu şart snippet.topLevelComment.snippet.textDisplay ve replies.comments[].snippet.textDisplay özellikleri için de geçerlidir.
snippet.title
(channel)
Zorunlu (öneri). Kanalın başlığı.
  • Yorum bir kanalla ilgiliyse API istemcisi kanalın adını göstermelidir.
  • Yorum bir videoyla ilgiliyse API istemcisi, videoyu yükleyen kanalın adını göstermelidir.
snippet.title
(video)
Koşullu olarak zorunlu (öneri). Videonun başlığı. Yorum bir videoyla ilgiliyse bu değer gösterilmelidir.
snippet.moderationStatus Koşula bağlı olarak gereklidir. API isteğindeki moderationStatus parametre değeri heldForReview veya likelySpam ise gösterimde, özellik değeri, benzer bir dil (ör. "Bu yorum inceleme için bekletiliyor"), bir başlık (ör. "İnceleme için bekletiliyor") ya da başka bir net dil kullanılarak bu durum açıkça belirtilmelidir. commentThreads.list yöntemi, yorumları denetleme durumlarına göre alabilme özelliğini destekler.

Yorum ekleme

  Ad Açıklama
Kaynak özellikleri
snippet.title
(channel)
Zorunludur. Kanalın başlığı.
  • Kullanıcı bir kanal hakkında yorum ekliyorsa API istemcisi kanalın adını göstermelidir.
  • Kullanıcı bir video hakkında yorum ekliyorsa API istemcisi, videoyu yükleyen kanalın adını göstermelidir.
snippet.title
(video)
Zorunludur. Kullanıcı bir video hakkında yorum ekliyorsa API istemcisi videonun başlığını göstermelidir.
Diğer şartlar
Comment author's channel name Zorunludur. API istemcisi, yorumun ilişkilendirileceği YouTube kullanıcı hesabını açıkça tanımlamalıdır. İsteğin yetkilendirme kimlik bilgileri bir içerik sahibini tanımlıyorsa ve onBehalfOfContentOwner parametresi ayarlanmışsa API kullanıcısı, yorumun ilişkilendirileceği YouTube kanalını da belirtebilmelidir.

Yorum yanıtları ekleme

  Ad Açıklama
Kaynak özellikleri
snippet.textDisplay Zorunludur. Yorumun metni. API istemcisi, kullanıcının yanıtladığı yorumun metnini bu belgenin Yorumları gösterme bölümünde tanımlanan kurallara uygun olarak göstermelidir.
snippet.title
(channel)
Zorunludur. Kanalın başlığı.
  • Kullanıcı bir kanalla ilgili yoruma yanıt veriyorsa API istemcisi kanalın adını göstermelidir.
  • Kullanıcı bir videoyla ilgili yoruma yanıt veriyorsa API istemcisi, videoyu yükleyen kanalın adını göstermelidir.
snippet.title
(video)
Zorunludur. Kullanıcı bir videoyla ilgili yoruma yanıt veriyorsa API istemcisi videonun başlığını göstermelidir.
Diğer şartlar
Comment author's channel name Zorunludur. API istemcisi, yorum yanıtının ilişkilendirileceği YouTube kullanıcı hesabını açıkça tanımlamalıdır. İsteğin yetkilendirme kimlik bilgileri bir içerik sahibini tanımlıyorsa ve onBehalfOfContentOwner parametresi ayarlanmışsa API kullanıcısı, yorum yanıtının ilişkilendirileceği YouTube kanalını da belirleyebilmelidir.

Yorum yanıtlarını düzenleme veya silme

  Ad Açıklama
Kaynak özellikleri
snippet.textDisplay Zorunludur. Yorumun metni. API istemcisi, kullanıcının düzenlediği veya sildiği yorumun metnini bu belgenin Yorumları görüntüleme bölümünde tanımlanan kurallara uygun olarak göstermelidir.
snippet.title
(channel)
Zorunludur. Kanalın başlığı.
  • Kullanıcı bir kanalla ilgili yorumu düzenliyor veya siliyorsa API istemcisi kanalın adını göstermelidir.
  • Kullanıcı bir videoyla ilgili yorumu düzenliyor veya siliyorsa API istemcisi, videoyu yükleyen kanalın adını göstermelidir.
snippet.title
(video)
Zorunludur. Kullanıcı bir videoyla ilgili yorumu düzenliyor veya siliyorsa API istemcisi videonun başlığını göstermelidir.
Diğer şartlar
Comment author's channel name Zorunludur. API istemcisi, yorumun ilişkilendirildiği YouTube kullanıcı hesabını açıkça tanımlamalıdır.

Kullanıcıları canlı sohbette yasaklama (veya yasağı kaldırma)

  Ad Açıklama
Kaynak özellikleri
snippet.title
(channel)
Zorunludur. Yasaklanan veya yasağı kaldırılan YouTube kanalının adı. Ayrıca, adın kanala bağlanması veya kanal URL'sinin de gösterilmesi gerekir.
Diğer şartlar
Yorum yazarının kanal adı Zorunludur. API istemcisi, yasağı eklemek veya kaldırmak için kullanılan YouTube kullanıcı hesabını net bir şekilde tanımlamalıdır.