LiveBroadcasts

API artık canlı yayınlarınızı "çocuklara özel" olarak işaretleme özelliğini destekliyor. liveBroadcast kaynağında artık canlı yayının "çocuklara özel" durumunu tanımlayan bir özellik bulunuyor. YouTube API Hizmetleri Hizmet Şartları ve Geliştirici Politikaları da 10 Ocak 2020'de güncellendi. Daha fazla bilgi için 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 kullanılarak yayınlanacak bir etkinliği temsil eder.

Yöntemler

API, liveBroadcasts kaynakları için aşağıdaki yöntemleri destekler:

list
API istek parametreleriyle eşleşen YouTube yayınlarının listesini döndürür. Hemen deneyin.
insert
Yayın oluşturur. Hemen deneyin.
güncelle
Yayınları günceller. Örneğin, liveBroadcast kaynağının contentDetails nesnesinde tanımlanan yayın ayarlarını değiştirebilirsiniz. Hemen deneyin.
sil
Bir yayını siler. Hemen deneyin.
bind
Bir YouTube yayınını bir akışa bağlar veya yayın ile akış arasında mevcut bir bağlamayı kaldırır. Bir yayın yalnızca bir video akışına bağlanabilir ancak bir video akışı birden fazla yayına bağlanabilir. Hemen deneyin.
transition
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 ilgili yayının monitör yayınına aktarmaya başlar. Bu yöntemi çağırmadan önce, yayınınıza bağlı akış için status.streamStatus mülkünün değerinin active olduğunu onaylamanız gerekir. Hemen deneyin.
cuepoint
Canlı yayına işaret noktası ekler. İşaretçi noktası bir reklam arasını tetikleyebilir.

Kaynak temsili

Aşağıdaki JSON yapısında, liveBroadcasts kaynağının biçimi gösterilmektedir:

{
  "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 olur.
etag etag
Bu kaynağın Etag değeri.
id string
YouTube'un yayını benzersiz şekilde tanımlamak için atadığı kimlik.
snippet object
snippet nesnesi; başlık, açıklama, başlangıç zamanı ve bitiş zamanı da dahil olmak üzere etkinlikle ilgili temel ayrıntıları içerir.
snippet.publishedAt datetime
Yayının YouTube'un canlı yayın planı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ınları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 belirleyebilirsiniz.
snippet.description string
Yayının açıklaması. title ile olduğu gibi, bu alanı yayın kaynağını değiştirerek veya ilgili video kaynağının description alanını ayarlayarak belirleyebilirsiniz.
snippet.thumbnails object
Yayınla ilişkili küçük resimlerin haritası. Bu nesneydeki her iç içe yerleştirilmiş nesne için anahtar, küçük resim 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:
  • default: Varsayılan küçük resim. Bir videonun veya videoya atıfta bulunan bir kaynağın (ör. oynatma listesi öğesi veya arama sonucu) varsayılan küçük resmi 120 piksel genişliğinde ve 90 piksel yüksekliğindedir. Kanalların varsayılan küçük resmi 88 piksel genişliğinde ve 88 piksel yüksekliğindedir.
  • medium: Küçük resmin daha yüksek çözünürlüklü bir sürümü. Videolar (veya videoya atıfta bulunan kaynaklar) için bu resim 320 piksel genişliğinde ve 180 piksel yüksekliğindedir. Kanallar için bu resim 240 piksel genişliğinde ve 240 piksel yüksekliğindedir.
  • high: Küçük resmin yüksek çözünürlüklü sürümü. Videolar (veya videoya atıfta bulunan kaynaklar) için bu resim 480 piksel genişliğinde ve 360 piksel yüksekliğindedir. Kanallar için bu resim 800 piksel genişliğinde ve 800 piksel yüksekliğindedir.
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. Creator Studio, başlangıç saati planlamadan yayın oluşturmayı destekler. Bu durumda yayın, kanal sahibi yayın yapmaya başladığında başlar. Bu yayınlar için datetime değeri, Unix epoch sıfır zamanına karşılık gelir ve bu değer API kullanılarak veya Creator Studio'da 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. Bir liveBroadcast kaynağı bu özellik için bir değer belirtmezse yayının süresiz olarak devam etmesi 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çekte başladığı tarih ve saat. Bu bilgiler 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 gerçekte sona erdiği tarih ve saat. Bu bilgiler 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 özelliğin desteği 1 Eylül 2020'de veya bu tarihten sonra sonlandırılacaktır. Bu tarihten itibaren, bir kanal canlı yayın için etkinleştirildiğinde YouTube varsayılan yayın ve varsayılan yayın oluşturmayı durduracak. Daha fazla bilgi için desteği sonlandırma duyurusuna bakın.
Bu özellik, bu yayının varsayılan yayın olup olmadığını belirtir.

Varsayılan yayınlar nasıl çalışır?

Bir YouTube kanalı canlı yayın için etkinleştirildiğinde YouTube, kanal için varsayılan bir yayın ve varsayılan bir akış oluşturur. Yayın, kanal sahibinin canlı videoyu YouTube'a nasıl gönderdiğini tanımlar. Yayın ise izleyicilerin varsayılan yayını nasıl görebileceğini belirtir. Kanal sahipleri, bu kaynakları tanımlamak için liveStreams.list ve liveBroadcasts.list yöntemlerini kullanabilir.

Bir kanal varsayılan akışına video aktarmaya başladığında video, kanalın varsayılan yayınında görünür. Yayın 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üşüm tamamlandıktan sonra video, kanalın yüklenen videolar listesine eklenir. Video, yayın sona erdikten hemen sonra yayınlanmaz. Yayın süresine bağlı olarak videonun yayınlanması biraz gecikebilir.
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örü ekleyebilir veya kaldırabilir, kullanıcıları canlı sohbetlere katılmaktan men edebilir ya da mevcut engellemeleri 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:
  • complete: Yayın sona erdi.
  • created: Yayın ayarlarının eksik olması nedeniyle live veya testing durumuna geçmeye hazır değildir ancak oluşturulmuştur ve geçerlidir.
  • live: Yayın etkindir.
  • liveStarting: Yayın, live durumuna geçiş sürecindedir.
  • ready: Yayın ayarları tamamlandı ve yayın live veya testing durumuna geçebilir.
  • revoked: Bu yayın, yönetici işlemiyle kaldırıldı.
  • testStarting: Yayın, testing durumuna geçiş sürecindedir.
  • testing: Yayın yalnızca iş ortağı tarafından görülebilir.
status.privacyStatus string
Yayını gizlilik durumu. Yayınların tam olarak bir YouTube videosunu temsil ettiğini ve bu nedenle gizlilik ayarlarının videolar için desteklenen ayarlarla 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 mülkün geçerli değerleri şunlardır:
  • private
  • public
  • unlisted
status.recordingStatus string
Yayının kayıt durumu.

Bu mülk için geçerli değerler şunlardır:
  • notRecording
  • recorded
  • recording
status.madeForKids boolean
Bu değer, yayının çocuklara yönelik olarak tanımlanıp tanımlanmadığını belirtir. Bu mülk değeri salt okunur.
status.selfDeclaredMadeForKids boolean
liveBroadcasts.insert isteğinde bu özellik, kanal sahibinin yayını çocuklara yönelik olarak tanımlamasına olanak tanır. liveBroadcasts.list isteğinde, mülk değeri yalnızca kanal sahibi API isteğine yetki verdiyse döndürülür.
contentDetails object
contentDetails nesnesi, etkinliğin video içeriğiyle ilgili bilgileri içerir. Örneğin, içeriğin yerleşik bir video oynatıcıda gösterilip gösterilemeyeceği veya arşivlenip arşivlenmeyeceği ve dolayısıyla etkinlik sona erdikten sonra görüntülenip görüntülenmeyeceği gibi bilgiler bu nesnede yer alır.
contentDetails.boundStreamId string
Bu değer, yayına bağlı live stream öğesini benzersiz ş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ıncının yayın akışı herkese açık olarak gösterilmeden önce etkinlik içeriğini incelemek için kullanabileceği, izleme akışı hakkında bilgiler içerir.
contentDetails.monitorStream.enableMonitorStream boolean
Bu değer, izleme akışının yayın için etkinleştirilip etkinleştirilmeyeceğini belirler. İzleme yayını etkinleştirilirse YouTube, etkinlik içeriğini yalnızca yayıncının kullanabileceği özel bir yayında yayınlar. Yayıncı, etkinlik içeriğini incelemek ve işaret noktaları eklemek için en uygun zamanları belirlemek için yayını kullanabilir.

Yayınınız için testing bir sahne kullanmak istiyorsanız veya etkinliğiniz için 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çirebilmek için önce testing durumuna geçirmeniz gerekir. (Mülkün değeri false ise yayınınızda testing aşaması olamaz. Bu nedenle yayını doğrudan live durumuna geçirebilirsiniz.)

update a broadcast yaptığınızda, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özellik ayarlanmalıdır. Ancak insert a broadcast özelliği isteğe bağlıdır ve varsayılan değeri true'tür.

Önemli: Yayın testing veya live durumundayken bu özellik güncellenemez.
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
enableMonitorStream özelliğini true olarak ayarlarsanız bu özellik canlı yayın gecikmesinin uzunluğunu belirler.

update a broadcast yaptığınızda, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özellik ayarlanmalıdır. Ancak insert a broadcast özelliği isteğe bağlıdır ve varsayılan değeri 0'tür. Bu değer, yayında gecikme olmadığını gösterir. Not: Yayın testing veya live durumundayken bu özellik güncellenemez.
contentDetails.monitorStream.embedHtml string
İzleme akışını oynatan bir oynatıcıyı yerleştiren HTML kodu.
contentDetails.enableEmbed boolean
Bu ayar, yayın videosunun yerleşik bir oynatıcıda oynatılıp oynatılmayacağını belirtir. Videoyu arşivlemeyi seçerseniz (enableArchive mülkünü kullanarak) bu ayar arşivlenen video için de geçerli olur.

update a broadcast yaptığınızda, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özellik ayarlanmalıdır. Ancak insert a broadcast özelliği isteğe bağlıdır ve varsayılan değeri true'tür.

Not: Yayın testing veya live durumundayken bu özellik güncellenemez.
contentDetails.enableDvr boolean
Bu ayar, izleyicilerin videoyu izlerken DVR denetimlerine erişip erişemeyeceğini belirler. DVR kontrolleri, izleyicinin içeriği duraklatarak, geri sararak veya hızlı ileri sararak video oynatma deneyimini kontrol etmesine olanak tanır. Bu özelliğin varsayılan değeri true.

update a broadcast yaptığınızda, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özellik ayarlanmalıdır. Ancak insert a broadcast özelliği isteğe bağlıdır ve varsayılan değeri true'tür.

Önemli: Oynatma özelliğini yayın sona erdikten hemen sonra kullanılabilir hale getirmek istiyorsanız değeri true olarak ayarlamanız ve enableArchive mülkünün değerini de true olarak ayarlamanız gerekir. Ayrıca, yayın testing veya live durumundayken bu özellik güncellenemez.
contentDetails.recordFromStart boolean
Bu ayar, YouTube'un etkinliğin durumu "canlı" olarak değiştikten sonra yayını otomatik olarak kaydedip kaydetmeyeceğini belirtir.

Bu özelliğin varsayılan değeri true'dır ve yalnızca yayın kanalının canlı yayınlar için kayıtları devre dışı bırakmasına izin verilirse false olarak ayarlanabilir.

Kanalınızın kayıtları devre dışı bırakma izni yoksa ve recordFromStart mülkü false olarak ayarlanmış bir yayın eklemeye çalışırsanız API bir Forbidden hatası döndürür. Ayrıca, kanalınızda bu izin yoksa ve bir yayını recordFromStart mülkünü false olarak ayarlayacak şekilde güncellemeye çalışırsanız API bir modificationNotAllowed hatası döndürür.

update a broadcast yaptığınızda, API isteğiniz part parametre değerinde contentDetails bölümünü içeriyorsa bu özellik ayarlanmalıdır. Ancak insert a broadcast özelliği isteğe bağlıdır ve varsayılan değeri true'tür.

Önemli: Oynatma işleminin yayın sona erdikten hemen sonra kullanılabilmesini istiyorsanız enableDvr mülkünün değerini true olarak da ayarlamanız gerekir. Bu mülkün değerini true olarak ayarlarsanız ancak enableDvr mülkünü de true olarak ayarlamazsanız arşivlenen videonun oynatılabilmesi için yaklaşık bir gün beklemeniz gerekebilir.

Not: Yayın testing veya live durumundayken bu özellik güncellenemez.
contentDetails.enableClosedCaptions boolean
Bu özelliğin desteği 17 Aralık 2015'ten itibaren sonlandırılmıştır. Bunun yerine contentDetails.closedCaptionsType özelliğini kullanın.

Bu ayar, HTTP POST altyazı özelliğinin bu yayın için etkin olup olmadığını belirtir. Bu mülkü zaten kullanan API istemcileri için:
  • Özellik değerini true olarak ayarlamak, contentDetails.closedCaptionsType özelliğini closedCaptionsHttpPost olarak ayarlamaya eşdeğerdir.
  • Özellik değerini false olarak ayarlamak, contentDetails.closedCaptionsType özelliğini closedCaptionsDisabled olarak ayarlamaya eşdeğerdir.
contentDetails.closedCaptionsType string
Not: Bu özellik, contentDetails.enableClosedCaptions mülkünün yerini alır.

Bu özellik, yayınınızda altyazıların etkin olup olmadığını ve etkinse ne tür altyazılar sağladığınızı belirtir:
  • closedCaptionsDisabled: Canlı yayında altyazılar devre dışıdır.
  • closedCaptionsHttpPost: Altyazıları, canlı yayınınızla ilişkili bir besleme URL'sine HTTP POST kullanarak gönderirsiniz.
  • closedCaptionsEmbedded: Altyazılar, EIA-608 ve/veya CEA-708 biçimleri kullanılarak video akışına kodlanır.
contentDetails.projection string
Bu yayının projeksiyon biçimi. Özelliğin varsayılan değeri rectangular'tür.

Bu özellik için geçerli değerler şunlardır:
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
Bu yayının düşük gecikmeli akış için kodlanıp kodlanmayacağını belirtir. Düşük gecikmeli bir yayın, videonun yayını izleyen kullanıcılara gösterilmesi için gereken süreyi kısaltabilir ancak yayını izleyenlerin çözünürlüğünü de etkileyebilir.
contentDetails.latencyPreference string
Bu yayın için hangi gecikme ayarının kullanılacağını belirtir. Bu özellik, ultraLow'u desteklemeyen enableLowLatency yerine kullanılabilir.

Düşük gecikmeli yayın, videonun yayını izleyen kullanıcılara görünmesi için gereken süreyi kısaltabilir ancak oynatmanın akıcılığı da etkilenebilir.

Ultra düşük gecikmeli yayın, videonun izleyicilere görünmesi için gereken süreyi daha da kısaltarak izleyicilerle etkileşimi kolaylaştırır ancak ultra düşük gecikme, altyazı veya 1080p'den yüksek çözünürlükleri desteklemez.

Bu mülkün geçerli değerleri şunlardır:
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
Bağlı live stream cihazda video akışı başlattığınızda bu yayının otomatik olarak başlatılıp başlatılmayacağını belirtir.
contentDetails.enableAutoStop boolean
Bu yayının, kanal sahibi bağlı video akışında video aktarmayı durdurduktan yaklaşık bir dakika sonra 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şkili toplam canlı sohbet mesajı sayısı. Yayın kullanıcı tarafından görülebilir durumdaysa, canlı sohbet özelliği etkinse ve en az bir mesaj varsa mülk ve değeri mevcuttur. Bu özelliğin, yayın sona erdikten sonra bir değer belirtmeyeceğini unutmayın. Bu nedenle, tamamlanmış bir canlı yayının arşivlenmiş videosundaki sohbet mesajlarının sayısını bu mülk tanımlamaz.
monetizationDetails object
monetizationDetails nesnesi, yayının para kazanma ayrıntıları (ör. reklam otomasyonunun etkin olup olmadığı veya yayın içi reklam eklemenin gecikmeli olup olmadığı) hakkında bilgi içerir.

monetizationDetails.cuepointSchedule object
cuepointSchedule nesnesi, yayın için 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, yayına otomatik olarak ara reklam ekler. Reklam yayınlama planı, monetizationDetails.cuepointSchedule nesnesinde 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-MM-DDThh:mm:ss.sZ) biçiminde belirtilir. Reklamların duraklatılması için değer gelecekteki bir tarih ve saate ayarlanmalıdır. Alan değeri, zaman geçtikçe reklamların duraklatılmasını kaldırmak için yakın gelecekteki bir tarih ve saate de ayarlanabilir.
monetizationDetails.cuepointSchedule.scheduleStrategy string
Bu değer, YouTube'un işaret noktalarını planlamak için izlemesi gereken stratejiyi belirtir. Geçerli değerler:
  • CONCURRENT: İşaretçi noktaları tüm izleyiciler için aynı saatte planlanır
  • NON_CONCURRENT: İşaretçi noktaları, farklı izleyiciler için farklı zamanlarda planlanır. Bu yaklaşım, reklamların daha yüksek bir oranda gösterilmesini sağlar. Böylece izleyiciler, uygun olduğunda işaret noktalarını alabilir.
monetizationDetails.cuepointSchedule.repeatIntervalSecs unsigned integer
Bu değer, yayın sırasında otomatik reklam ekleme işleminin gerçekleştiği 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, art arda gelen işaret noktalarının başlangıçları arasındaki zamanı belirttiğini unutmayın. Yani aralık, bir işaret noktasının sonundan diğerinin başına kadar ölçülmez.