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.- Android
loadDataWithBaseURL
- iOS
loadHTMLString:baseURL:
- Android
-
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 eklenenReferer
HTTP üst bilgisine sahip AndroidloadUrl
-
İsteğe
Referer
HTTP üst bilgisi eklenmiş iOSloadRequest:
. Ö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ştururkenhttps://
yerineandroid-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 yerineorigin
oynatıcı parametresini ayarlayın.
-
-
Masaüstü uygulaması
Bu yapılandırmada,
Referer
öğesini HTTP üstbilgisi olarak ekleyerek ayarlayın:- Microsoft .NET -
HttpRequestHeaders.Referrer
veyaCoreWebView2HttpRequestHeaders.SetHeader
kullanın - macOS: iOS mobil uygulamaları için yukarıda açıklanan talimatları uygulayın.
- Microsoft .NET -
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:
- ChromeOS'teki Android OS ve Android uygulamaları: Uygulama kimliği
- iOS, iPadOS ve macOS dahil olmak üzere Apple platformları: Paket kimliği
- Samsung Tizen: Uygulama Kimliği
- Linux dağıtımları:
- Fedora: Uygulama kimliği
- Gnome: Uygulama kimliği
- Ubuntu: Uygulama kimliği
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ızcaName
ö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:
- Android OS:
WebView
veyaCustomTabs
- iOS, iPadOS, macOS gibi Apple platformları:
WKWebView
veyaSFSafariViewController
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ığı.
|
|
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ığı.
|
|
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ığı.
|
|
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ığı.
|
|
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. |