API artık canlı yayınlarınızı "çocuklara özel" olarak işaretleme özelliğini destekliyor.
liveBroadcast
kaynağı da artık bu canlı yayının "çocuklara özel" durumunu tanımlayan bir özellik içeriyor. YouTube API Hizmetleri Hizmet Şartları ve Geliştirici Politikaları da 10 Ocak 2020'de güncellendi. Daha fazla bilgi için lütfen YouTube Live Streaming API Hizmeti ve YouTube API Hizmetleri Hizmet Şartları'nın düzeltme geçmişlerine bakın.
liveBroadcast
kaynağı, YouTube'da canlı video aracılığıyla yayınlanacak bir etkinliği temsil eder.
Yöntemler
API, liveBroadcasts
kaynakları için aşağıdaki yöntemleri destekler:
- list
- API isteği parametreleriyle eşleşen YouTube yayınlarının listesini döndürür. Hemen deneyin.
- ekle
- Yayın oluşturur. Hemen deneyin.
- güncelle
- Bir yayını günceller. Örneğin,
liveBroadcast
kaynağınıncontentDetails
nesnesinde tanımlanan yayın ayarlarını değiştirebilirsiniz. Hemen deneyin. - sil
- Bir yayını siler. Hemen deneyin.
- bağla
- YouTube yayınını akışa bağlar veya yayın ile yayın arasındaki mevcut bir bağlantıyı kaldırır. Bir yayın yalnızca bir video akışına bağlanabilir, ancak bir video akışı birden fazla yayına bağlı olabilir. Hemen deneyin.
- geçiş
- YouTube canlı yayınının durumunu değiştirir ve yeni durumla ilişkili tüm işlemleri başlatır. Örneğin, bir yayının durumunu
testing
olarak değiştirdiğinizde YouTube videoyu söz konusu yayının monitör akışına aktarmaya başlar. Bu yöntemi çağırmadan önce, yayınınıza bağlı akış içinstatus.streamStatus
özelliğinin değerininactive
olduğunu onaylamanız gerekir. Hemen deneyin. - işaret noktası
- Canlı yayına bir işaret noktası ekler. İşaret noktası bir reklam arasını tetikleyebilir.
Kaynak temsili
Aşağıdaki JSON yapısı, bir liveBroadcasts
kaynağının biçimini gösterir:
{ "kind": "youtube#liveBroadcast", "etag": etag, "id": string, "snippet": { "publishedAt": datetime, "channelId": string, "title": string, "description": string, "thumbnails": { (key): { "url": string, "width": unsigned integer, "height": unsigned integer } }, "scheduledStartTime": datetime, "scheduledEndTime": datetime, "actualStartTime": datetime, "actualEndTime": datetime, "isDefaultBroadcast": boolean, "liveChatId": string }, "status": { "lifeCycleStatus": string, "privacyStatus": string, "recordingStatus": string, "madeForKids": string, "selfDeclaredMadeForKids": string, }, "contentDetails": { "boundStreamId": string, "boundStreamLastUpdateTimeMs": datetime, "monitorStream": { "enableMonitorStream": boolean, "broadcastStreamDelayMs": unsigned integer, "embedHtml": string }, "enableEmbed": boolean, "enableDvr": boolean, "recordFromStart": boolean, "enableClosedCaptions": boolean, "closedCaptionsType": string, "projection": string, "enableLowLatency": boolean, "latencyPreference": boolean, "enableAutoStart": boolean, "enableAutoStop": boolean }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } }
Özellikler
Aşağıdaki tabloda bu kaynakta görünen özellikler tanımlanmaktadır:
Özellikler | |
---|---|
kind |
string API kaynağının türünü tanımlar. Değer youtube#liveBroadcast olacak. |
etag |
etag Bu kaynağın Etag'i. |
id |
string YouTube'un yayını benzersiz şekilde tanımlamak için atadığı kimlik. |
snippet |
object snippet nesnesi; etkinliğin başlığı, açıklaması, başlangıç zamanı ve bitiş zamanı dahil olmak üzere etkinlikle ilgili temel ayrıntıları içerir. |
snippet.publishedAt |
datetime Yayının, YouTube'un canlı yayın programına eklendiği tarih ve saat. Değer ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) biçiminde belirtilir. |
snippet.channelId |
string YouTube'un yayını yayınlayan kanalı benzersiz şekilde tanımlamak için kullandığı kimlik. |
snippet.title |
string Yayının başlığı. Yayının tam olarak bir YouTube videosunu temsil ettiğini unutmayın. Bu alanı, yayın kaynağını değiştirerek veya ilgili video kaynağının title alanını ayarlayarak ayarlayabilirsiniz. |
snippet.description |
string Yayının açıklaması. title öğesinde olduğu gibi, yayın kaynağını değiştirerek veya ilgili video kaynağının description alanını ayarlayarak bu alanı ayarlayabilirsiniz. |
snippet.thumbnails |
object Yayınla ilişkili küçük resimlerin haritası. Bu nesnedeki iç içe yerleştirilmiş her nesne için anahtar, küçük resmin adıdır ve değer, küçük resimle ilgili diğer bilgileri içeren bir nesnedir. |
snippet.thumbnails.(key) |
object Geçerli anahtar değerleri şunlardır:
|
snippet.thumbnails.(key).url |
string Resmin URL'si. |
snippet.thumbnails.(key).width |
unsigned integer Resmin genişliği. |
snippet.thumbnails.(key).height |
unsigned integer Resmin yüksekliği. |
snippet.scheduledStartTime |
datetime Yayının başlamasının planlandığı tarih ve saat. Değer ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) biçiminde belirtilir. İçerik Stüdyosu, başlangıç zamanı planlamadan yayın oluşturma özelliğini destekler. Bu durumda yayın, kanal sahibi yayın yapmaya başladığında başlar. Bu yayınlar için datetime değeri, UNIX'in sıfır zamanına karşılık gelir ve bu değer API üzerinden veya İçerik Stüdyosu'nda değiştirilemez. |
snippet.scheduledEndTime |
datetime Yayının sona ermesinin planlandığı tarih ve saat. Değer ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) biçiminde belirtilir. liveBroadcast kaynağı bu özellik için bir değer belirtmiyorsa yayın süresiz olarak devam edecek şekilde planlanır. Benzer şekilde, bu özellik için bir değer belirtmezseniz YouTube yayını süresiz olarak devam edecekmiş gibi değerlendirir. |
snippet.actualStartTime |
datetime Yayının gerçekten başladığı tarih ve saat. Bu bilgi yalnızca yayının durumu live olduğunda kullanılabilir. Değer ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ) biçiminde belirtilir. |
snippet.actualEndTime |
datetime Yayının sona erdiği tarih ve saat. Bu bilgi yalnızca yayının durumu complete olduğunda kullanılabilir. Değer ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ) biçiminde belirtilir. |
snippet.isDefaultBroadcast |
boolean
Bu mülk 1 Eylül 2020'de veya sonrasında kullanımdan kaldırılacaktır. Bu tarihte, bir kanalda canlı yayın etkinleştirildiğinde YouTube varsayılan yayın ve varsayılan yayın oluşturmayı durdurur. Daha ayrıntılı bilgi için lütfen kullanımdan kaldırma duyurusunu inceleyin.
Bu özellik, yayının varsayılan yayın olup olmadığını belirtir.Varsayılan yayınlar nasıl çalışır? Bir YouTube kanalında canlı yayın özelliği etkinleştirildiğinde YouTube, kanal için varsayılan bir yayın ve varsayılan bir yayın oluşturur. Akış, kanal sahibinin canlı videoyu YouTube'a nasıl gönderdiğini tanımlar. Yayın, izleyicilerin varsayılan akışı nasıl görebileceğidir. Kanal sahibi, bu kaynakları tanımlamak için liveStreams.list ve liveBroadcasts.list yöntemlerini kullanabilir.Bir kanal, varsayılan akışında video oynatmaya başladığında video, kanalın varsayılan yayınında görünür. Akış sona erdiğinde YouTube, tamamlanan yayını bir YouTube videosuna dönüştürür ve videoya bir YouTube video kimliği atar. Dönüştürme işlemi tamamlandıktan sonra video, kanalın yüklenen videolar listesine eklenir. Video, yayın bittikten hemen sonra kullanılamaz hale gelir ve gecikme süresi yayının gerçek uzunluğuyla ilişkilidir. |
snippet.liveChatId |
string Yayının YouTube canlı sohbetinin kimliği. Bu kimlikle, sohbet mesajlarını almak, eklemek veya silmek için liveChatMessage kaynağının yöntemlerini kullanabilirsiniz. Ayrıca sohbet moderatörleri ekleyip kaldırabilir, kullanıcıların canlı sohbete katılmasını engelleyebilir veya mevcut yasakları kaldırabilirsiniz. |
status |
object status nesnesi, etkinliğin durumuyla ilgili bilgileri içerir. |
status.lifeCycleStatus |
string Yayının durumu. Durum, API'nin liveBroadcasts.transition yöntemi kullanılarak güncellenebilir.Bu özellik için geçerli değerler şunlardır:
|
status.privacyStatus |
string Yayının gizlilik durumu. Yayının tam olarak bir YouTube videosunu temsil ettiğini, bu nedenle gizlilik ayarlarının videolar için desteklenenlerle aynı olduğunu unutmayın. Ayrıca, yayın kaynağını değiştirerek veya ilgili video kaynağının privacyStatus alanını ayarlayarak bu alanı ayarlayabilirsiniz.Bu özellik için geçerli değerler şunlardır:
|
status.recordingStatus |
string Yayının kayıt durumu. Bu mülk için geçerli değerler şunlardır:
|
status.madeForKids |
boolean Bu değer, yayının çocuklara yönelik olarak atanıp atanmadığını gösterir. Bu özellik değeri salt okunurdur. |
status.selfDeclaredMadeForKids |
boolean Bu özellik, bir liveBroadcasts.insert isteğinde kanal sahibinin yayını çocuklara yönelik olarak tanımlamasına olanak tanır. Bir liveBroadcasts.list isteğinde, özellik değeri yalnızca kanal sahibi API isteğini yetkilendirdiyse döndürülür. |
contentDetails |
object contentDetails nesnesi, etkinliğin video içeriği hakkında bilgiler içerir. Örneğin, içeriğin yerleştirilmiş video oynatıcıda gösterilip gösterilemeyeceği veya arşivlenip arşivlenip etkinlik tamamlandıktan sonra görüntülenebilir olup olmadığı gibi bilgiler bu kapsama girer. |
contentDetails.boundStreamId |
string Bu değer, yayına bağlı live stream öğesini benzersiz bir şekilde tanımlar. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime boundStreamId tarafından referans verilen canlı yayının en son güncellendiği tarih ve saat. |
contentDetails.monitorStream |
object monitorStream nesnesi, yayın akışı herkese açık olarak gösterilmeden önce yayıncının etkinlik içeriğini incelemek için kullanabileceği izleme akışıyla ilgili bilgiler içerir. |
contentDetails.monitorStream.enableMonitorStream |
boolean Bu değer, izleme akışının yayın için etkinleştirilip etkinleştirilmediğini belirler. Monitör akışı etkinse YouTube, etkinlik içeriğini yalnızca yayıncının tüketimine yönelik özel bir akışta yayınlar. Yayıncı, etkinlik içeriğini incelemek ve işaret noktalarının eklenmesi için en uygun zamanları belirlemek üzere akışı kullanabilir. Yayınınız için bir testing aşaması oluşturmayı planlıyorsanız veya etkinliğinizde yayın gecikmesi olmasını istiyorsanız bu değeri true olarak ayarlamanız gerekir. Ayrıca, bu özelliğin değeri true ise yayınınızı live durumuna geçirmeden önce testing durumuna geçirmeniz gerekir. (Özelliğin değeri false ise yayınınız testing aşaması içeremez. Dolayısıyla yayını doğrudan live durumuna geçirebilirsiniz.)update a broadcast yaparken, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özelliğin ayarlanması gerekir. Ancak, insert a broadcast özelliğini etkinleştirdiğinizde özellik isteğe bağlıdır ve true varsayılan değerine sahiptir.Önemli: Yayın testing veya live durumuna geldikten sonra bu özellik güncellenemez. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer enableMonitorStream özelliğini true olarak ayarladıysanız canlı yayın gecikmesinin uzunluğunu bu özellik belirler.update a broadcast yaparken, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özelliğin ayarlanması gerekir. Ancak, insert a broadcast özelliğini etkinleştirdiğinizde özellik isteğe bağlıdır ve 0 varsayılan değerine sahiptir. Bu değer, yayında herhangi bir yayın gecikmesi olmadığını gösterir. Not: Bu özellik, yayın testing veya live durumuna getirildikten sonra güncellenemez. |
contentDetails.monitorStream.embedHtml |
string İzleme akışını oynatan oynatıcı yerleştiren HTML kodu. |
contentDetails.enableEmbed |
boolean Bu ayar, yayın videosunun yerleşik oynatıcıda oynatılıp oynatılamayacağını ifade eder. enableArchive mülkünü kullanarak videoyu arşivlemeyi seçerseniz bu ayar arşivlenen video için de geçerli olur.update a broadcast yaparken, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özelliğin ayarlanması gerekir. Ancak, insert a broadcast özelliğini etkinleştirdiğinizde özellik isteğe bağlıdır ve true varsayılan değerine sahiptir.Not: Bu özellik, yayın testing veya live durumuna getirildikten sonra güncellenemez. |
contentDetails.enableDvr |
boolean Bu ayar, izleyicilerin videoyu izlerken DVR kontrollerine erişip erişemeyeceğini belirler. DVR kontrolleri, izleyicinin içeriği duraklatarak, geri sararak veya hızlı ileri sararak video oynatma deneyimini kontrol etmesini sağlar. Bu özellik için varsayılan değer: true . update a broadcast yaparken, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özelliğin ayarlanması gerekir. Ancak, insert a broadcast özelliğini etkinleştirdiğinizde özellik isteğe bağlıdır ve true varsayılan değerine sahiptir.Önemli: Yayın sona erdikten hemen sonra oynatmayı kullanılabilir hale getirmek istiyorsanız değeri true olarak ve enableArchive özelliğinin değerini de true olarak ayarlamanız gerekir. Ayrıca bu özellik, yayın testing veya live durumuna geçtikten sonra güncellenemez. |
contentDetails.recordFromStart |
boolean Bu ayar, etkinliğin durumu "canlı" olarak değiştiğinde YouTube'un yayını otomatik olarak kaydetmeye başlayıp başlamayacağını belirtir. Bu özelliğin varsayılan değeri true şeklindedir ve yalnızca yayın yapan kanalın canlı yayınlarda kayıtları devre dışı bırakmasına izin veriliyorsa false olarak ayarlanabilir.Kanalınızın kayıtları devre dışı bırakma izni yoksa ve recordFromStart özelliği false olarak ayarlanmış bir yayın eklemeye çalışırsanız API Forbidden hatası döndürür. Ayrıca kanalınız bu izne sahip değilse ve recordFromStart özelliğini false olarak ayarlamak için bir yayını güncellemeye çalışırsanız API modificationNotAllowed hatası döndürür.update a broadcast yaparken, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özelliğin ayarlanması gerekir. Ancak, insert a broadcast özelliğini etkinleştirdiğinizde özellik isteğe bağlıdır ve true varsayılan değerine sahiptir.Önemli: Oynatmanın, yayın bittikten hemen sonra kullanılabilir olmasını istiyorsanız enableDvr özelliğinin değerini de true olarak ayarlamanız gerekir. Bu özelliğin değerini true olarak ayarlar ancak enableDvr özelliğini de true olarak ayarlamazsanız arşivlenmiş videonun oynatılabilmesi için yaklaşık bir gün gecikme olabilir.Not: Bu özellik, yayın testing veya live durumuna getirildikten sonra güncellenemez. |
contentDetails.enableClosedCaptions |
boolean Bu mülk, 17 Aralık 2015 itibarıyla kullanımdan kaldırılmıştır. Bunun yerine contentDetails.closedCaptionsType özelliğini kullanın.Bu ayar, bu yayında HTTP POST altyazı özelliğinin etkin olup olmadığını belirtir. Bu özelliği halihazırda kullanan API istemcileri için:
|
contentDetails.closedCaptionsType |
string Not: Bu özellik, contentDetails.enableClosedCaptions özelliğinin yerini alır.Bu özellik, yayınınız için altyazıların etkin olup olmadığını ve etkin durumdaysa ne tür altyazı sağladığınızı belirtir:
|
contentDetails.projection |
string Bu yayının projeksiyon biçimi. Tesisin varsayılan değeri: rectangular .Bu özellik için geçerli değerler şunlardır:
|
contentDetails.enableLowLatency |
boolean Bu yayının düşük gecikmeli yayın için kodlanıp kodlanmayacağını belirtir. Düşük gecikmeli akış, videonun yayını izleyen kullanıcılara görünür hale gelmesi için gereken süreyi azaltabilir. Bununla birlikte, yayını izleyenler için çözünürlüğü de etkileyebilir. |
contentDetails.latencyPreference |
string Bu yayın için hangi gecikme ayarının kullanılacağını gösterir. ultraLow 'i desteklemeyen enableLowLatency yerine bu özellik kullanılabilir.Düşük gecikmeli akış, videonun yayını izleyen kullanıcılara görünür hale gelmesi için gereken süreyi azaltabilir. Bununla birlikte, oynatmanın sorunsuzluğunu da etkileyebilir. Ultra düşük gecikmeli akış, videonun izleyicilere gösterilmesi için gereken süreyi daha da kısaltarak izleyicilerle etkileşimi daha kolay hale getirir. Ancak çok düşük gecikmeli akış,
ancak çok düşük çözünürlük değerleri geçerlidir: |
contentDetails.enableAutoStart |
boolean live stream numaralı sınırda video akışına başladığınızda bu yayının otomatik olarak başlatılıp başlatılmayacağını belirtir. |
contentDetails.enableAutoStop |
boolean Kanal sahibi, bağlı video akışında video akışını durdurduktan yaklaşık bir dakika sonra bu yayının otomatik olarak durup durmayacağını belirtir. |
statistics |
object statistics nesnesi canlı yayınla ilgili istatistikleri içerir. Bu istatistiklerin değerleri yayın sırasında değişebilir ve yalnızca yayın devam ederken alınabilir. |
statistics.totalChatCount |
unsigned long Yayınla ilişkilendirilmiş canlı sohbet mesajlarının toplam sayısıdır. Mülk ve değeri; yayın kullanıcı tarafından görülebiliyorsa, canlı sohbet özelliği etkinleştirilmişse ve en az bir mesaj içeriyorsa mevcuttur. Bu özelliğin yayın sona erdikten sonra değer belirtmeyeceğini unutmayın. Dolayısıyla bu mülk, tamamlanmış bir canlı yayının arşivlenmiş videosu için sohbet mesajı sayısını tanımlamaz. |
monetizationDetails |
object monetizationDetails nesnesi, akışın para kazanma ayrıntılarıyla ilgili bilgileri (ör. reklam otomatikleştiricinin açık olup olmadığı veya videonun ortasında gösterilen reklam eklemenin gecikmeli olup olmadığı) içerir. |
monetizationDetails.cuepointSchedule |
object cuepointSchedule nesnesi, yayınla ilgili reklam otomasyonu ayarlarını belirtir. |
monetizationDetails.cuepointSchedule.enabled |
boolean Bu değer, reklamların yayına otomatik olarak eklenip eklenmeyeceğini belirler. Değer true ise YouTube videonun ortasında gösterilen reklamları yayına otomatik olarak ekler. Reklam yayınlama planı, monetizationDetails.cuepointSchedule nesnesindeki diğer alanların değerine göre belirlenir.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Bu değer, YouTube'un belirtilen tarih ve saate kadar yayına videonun ortasında gösterilen reklamlar eklememesi gerektiğini belirtir. Değer, ISO 8601 (YYYY-AA-GGTss:dd:ss.sZ) biçiminde belirtilir. Reklamların duraklatılması için değer gelecekteki bir tarih/saat olarak ayarlanmalıdır. Alan değeri de zaman geçtiğinde reklamların duraklatmasını kaldırmak için yakın gelecek bir tarih/saat olarak da ayarlanabilir. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Bu değer, YouTube'un işaret noktalarını planlamak için uygulaması gereken stratejiyi belirtir. Geçerli değerler aşağıda belirtilmiştir:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Bu değer, bir yayın sırasında otomatik reklam ekleme arasındaki aralığı saniye cinsinden belirtir. Örneğin, değer 300 ise YouTube videonun ortasında gösterilen reklam işaret noktalarını beş dakikalık aralıklarla ekleyebilir.Değerin, ardışık işaret noktalarının başlangıcı arasındaki süreyi belirttiğini unutmayın. Yani aralık, bir işaret noktasının bitişinden sonrakinin başlangıcına kadar ölçülmez. |