LiveStreams

liveStream kaynağı, YouTube'a ilettiğiniz video akışı hakkında bilgi içerir. Akış, YouTube kullanıcılarına yayınlanacak içeriği sağlar. liveStream kaynağı oluşturulduktan sonra bir veya daha fazla liveBroadcast kaynağına bağlanabilir.

Yöntemler

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

list
API isteği parametreleriyle eşleşen video akışlarının listesini döndürür. Hemen deneyin.
ekle
Video akışı oluşturur. Akış, videonuzu YouTube'a gönderebilmenize olanak sağlar, ardından videoyu kitlenize yayınlayabilir. Hemen deneyin.
güncelle
Video akışını günceller. Değiştirmek istediğiniz özellikler güncellenemiyorsa uygun ayarlarla yeni bir akış oluşturmanız gerekir. Hemen deneyin.
sil
Video akışını siler. Hemen deneyin.

Kaynak temsili

Aşağıdaki JSON yapısı, bir liveStreams kaynağının biçimini göstermektedir:

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

Ö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#liveStream olacak.
etag etag
Bu kaynağın Etag'i.
id string
YouTube'un canlı yayını benzersiz şekilde tanımlamak için atadığı kimlik.
snippet object
snippet nesnesi, kanal, başlık ve açıklama dahil olmak üzere akışla ilgili temel ayrıntıları içerir.
snippet.publishedAt datetime
Canlı yayının oluşturulduğu tarih ve saat. Değer ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) biçiminde belirtilir.
snippet.channelId string
YouTube'un akışı aktaran kanalı benzersiz şekilde tanımlamak için kullandığı kimlik.
snippet.title string
Canlı yayının başlığı. Değer 1-128 karakter uzunluğunda olmalıdır.
snippet.description string
Akış açıklaması. Değer 10.000 karakterden uzun olamaz.
snippet.isDefaultStream boolean
Bu mülk 1 Eylül 2020'de veya bu tarihten sonra kullanımdan kaldırılacaktır. Bu aşamada YouTube, bir kanal canlı yayın için etkinleştirildiğinde varsayılan yayın ve varsayılan yayın oluşturmayı durdurur. Daha fazla ayrıntı için lütfen kullanımdan kaldırma duyurusuna bakın.
Bu özellik, bu akışın kanal için varsayılan akış olup olmadığını gösterir.

Varsayılan akışların işleyiş şekli

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

Kanalın varsayılan akışı süresiz olarak ilişkilendirilir, bununla ilişkilendirilmiş başlangıç veya bitiş zamanı yoktur ve silinemez. Kanal sahibi yalnızca video biti göndermeye başladığında akış otomatik olarak gerçekleşir.

Bir yayın sona erdiğinde YouTube, tamamlanmış yayını bir YouTube videosuna dönüştürür ve videoya 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 kullanılamaz ve gecikmenin süresi, yayının gerçek uzunluğuyla ilgilidir.
cdn object
cdn nesnesi, canlı yayının içerik yayınlama ağı (CDN) ayarlarını tanımlar. Bu ayarlar, içeriğinizi YouTube'da nasıl yayınladığınız hakkında ayrıntılı bilgi sağlar.
cdn.format string
Bu mülk 18 Nisan 2016 itibarıyla kullanımdan kaldırılmıştır ve 17 Ağustos 2020 tarihinden itibaren desteklenmeyecektir. Belirtilen tarihten itibaren bu mülkü kullanmaya devam eden istekler başarısız olur.

Bunun yerine kare hızını ve çözünürlüğü ayrı olarak belirtmek için cdn.frameRate ve cdn.resolution özelliklerini kullanın.
cdn.ingestionType string
Video akışını aktarmak için kullanılan yöntem veya protokol.

Bu mülk için geçerli değerler şunlardır:
  • dash
  • hls
  • rtmp (RTMPS dahil)
cdn.ingestionInfo object
ingestionInfo nesnesi, YouTube'un canlı yayınınızı YouTube'a iletmeniz için sağladığı bilgileri içerir.
cdn.ingestionInfo.streamName string
YouTube'un video akışına atadığı akış adı.
cdn.ingestionInfo.ingestionAddress string
RTMP, DASH veya HLS kullanıyorsanız videoyu YouTube'da canlı yayınlamak için kullanmanız gereken birincil besleme URL'si. Videoyu bu URL'ye yayınlamanız gerekir.

Video akışınızı kodlamak için kullandığınız uygulama veya araca bağlı olarak, akış URL'sini ve akış adını ayrıca girmeniz ya da bunları aşağıdaki biçimde birleştirmeniz gerekebilir:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
RTMP, DASH veya HLS kullanıyorsanız videoyu YouTube'da canlı oynatmak için kullanmanız gereken yedek besleme URL'si. ingestionAddress hizmetine gönderdiğiniz içeriği aynı anda bu URL'ye aktarma seçeneğiniz vardır.
cdn.ingestionInfo.rtmpsIngestionAddress string
RTMPS kullanıyorsanız YouTube'da video akışı gerçekleştirmek için kullanmanız gereken birincil besleme URL'si. Videoyu bu URL'ye aktarmanız gerekir.

Video akışınızı kodlamak için kullandığınız uygulama veya araca bağlı olarak, akış URL'sini ve akış adını ayrı ayrı girmeniz veya bunları aşağıdaki biçimde birleştirmeniz gerekebilir:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
RTMPS kullanıyorsanız videoyu YouTube'da canlı oynatmak için kullanmanız gereken yedek besleme URL'si.
cdn.resolution string
Gelen video verilerinin çözünürlüğü.

Bu mülk için geçerli değerler şunlardır:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: YouTube'un yayınlanan videonuzun çözünürlüğünü otomatik olarak algılaması gerektiğini belirtmek için bu ayarı kullanın. Ayrıca cdn.frameRate öğesini variable olarak ayarlamanız gerekir.
    Önerilen kodlayıcı ayarları için YouTube Yardım Merkezi'ne bakın.
cdn.frameRate string
Gelen video verilerinin kare hızı.

Bu özellik için geçerli değerler şunlardır:
  • 30fps
  • 60fps
  • variable: YouTube'un, canlı yayınınızın kare hızını otomatik olarak algılaması gerektiğini belirtmek için bu ayarı kullanın. Ayrıca cdn.resolution öğesini variable olarak ayarlamanız gerekir.
    Önerilen kodlayıcı ayarları için YouTube Yardım Merkezi'ne bakın.
status object
status nesnesi, canlı yayının durumuyla ilgili bilgiler içerir.
status.streamStatus string
Akış durumu.

Bu mülk için geçerli değerler şunlardır:
  • active – Akış etkin durumdadır. Bu, kullanıcının akış üzerinden veri aldığı anlamına gelir.
  • created – Akış oluşturuldu ancak geçerli CDN ayarlarına sahip değil.
  • error – Akışta bir hata koşulu var.
  • inactive: Akış etkin değil durumundadır. Bu, kullanıcının akış üzerinden veri almadığı anlamına gelir.
  • ready – Akış geçerli CDN ayarlarına sahip.
status.healthStatus object
Bu nesne, canlı yayının sağlık durumu hakkında bilgiler içeriyor. Bu bilgiler, akış sorunlarını tanımlamak, teşhis etmek ve çözmek için kullanılabilir.
status.healthStatus.status string
Bu akışın durum kodu.

Bu mülk için geçerli değerler şunlardır:
  • goodÖnem derecesinin warning veya daha kötü olduğu bir yapılandırma sorunu yok.
  • okÖnem derecesi error olan bir yapılandırma sorunu yok.
  • bad – Akışta ağırlık değerinin error olduğu bazı sorunlar var.
  • noData – YouTube'un canlı yayın arka uç sunucularının yayın durumu hakkında bilgi yoktur.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Canlı yayının sağlık durumu en son güncellendi. Değer, UNIX zaman damgasını saniye cinsinden yansıtır.
status.healthStatus.configurationIssues[] list
Bu nesne, akışı etkileyen yapılandırma sorunlarının listesini içerir.
status.healthStatus.configurationIssues[].type string
Akışı etkileyen hatanın türünü tanımlar.
Yapılandırma sorunları
audioBitrateHigh
Neden:Ses ayarlarını kontrol edin
Açıklama:Ses akışının geçerli bit hızı olan %(actual), önerilen bit hızından yüksek. %(expected)s ses akışı bit hızı kullanmanızı öneririz.
audioBitrateLow
Neden:Ses ayarlarını kontrol edin
Açıklama:Ses akışının mevcut bit hızı (%(actual)s) önerilen bit hızından düşük. %(expected)s ses akışı bit hızı kullanmanızı öneririz.
audioBitrateMismatch
Neden:İkincil akışı kontrol edin
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı ses bit hızlarına sahip. Akışları aynı ses bit hızına sahip olacak şekilde yapılandırmanız gerekir.
audioCodec
Neden:Ses ayarlarını kontrol edin
Açıklama:Ses yayını, desteklenmeyen bir codec ile kodlanmış. Lütfen akışın ses codec'ini desteklenen bir codec'e (AAC, MP3) ayarlayın.
audioCodecMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı ses codec'lerini kullanıyor. Akışları aynı ses codec'ini kullanacak şekilde yapılandırmanız gerekir.
audioSampleRate
Neden:Ses ayarlarını kontrol edin
Açıklama:Mevcut örnek hızı: %(actual). Önerilen örnek hızları 44,1 kHz ve 48 kHz'dir.
audioSampleRateMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı ses örnek hızlarına sahip. Akışları aynı ses örnek hızına sahip olacak şekilde yapılandırmanız gerekir.
audioStereoMismatch
Neden:Kötü ikincil akış
Açıklama:Videonun birincil ve yedek yayınları, geçerli yapılandırmada farklı ses kanallarını kullanıyor. Yayınları aynı ses kanalına sahip olacak şekilde yapılandırmanız gerekir.
audioTooManyChannels
Neden:Ses ayarlarını kontrol edin
Açıklama:Ses ikiden fazla kanala sahip olsa da yalnızca bir (mono) veya iki (stereo) kanal desteklenir. Lütfen ses kanallarının sayısını düzeltin.
badContainer
Neden:Kötü video ayarları
Açıklama:Lütfen videonun kapsayıcı biçimini değiştirin. Mevcut kapsayıcı biçimi bu yapılandırma için doğru değil.
bitrateHigh
Neden:Video ayarlarını kontrol edin
Açıklama:Akışın geçerli bit hızı (%(actual)s), önerilen bit hızından yüksek. %(expected)s akış bit hızı kullanmanızı öneririz.
bitrateLow
Neden:Video çıkışı düşük
Açıklama:Akışın geçerli bit hızı (%(actual)s), önerilen bit hızından düşük. %(expected)s akış bit hızı kullanmanızı öneririz.
framerateMismatch
Neden:İkincil akışı kontrol edin
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı kare hızlarına sahip. Akışları aynı kare hızına sahip olacak şekilde yapılandırmanız gerekir.
frameRateHigh
Neden:Kare hızı yüksek
Açıklama:Mevcut kare hızı çok yüksek. Lütfen kare hızını %(framerate)s fps veya daha az olarak ayarlayın.
gopMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı animasyon karesi frekanslarına sahip. Akışları aynı animasyon karesi frekansına sahip olacak şekilde yapılandırmanız gerekir.
gopSizeLong
Neden:Kötü video ayarları
Açıklama:Lütfen dört saniyelik veya daha kısa bir animasyon karesi frekansı kullanın. Şu anda ana kareler yeterince sık gönderilmiyor. Bu, ara belleğe almaya neden olur. Mevcut animasyon karesi sıklığı %(actual_gop).1f saniyedir. Besleme hatalarının yanlış GOP (resim grubu) boyutlarına neden olabileceğini unutmayın.
gopSizeOver
Neden:Video ayarlarını kontrol edin
Açıklama:Lütfen dört saniyelik veya daha kısa bir animasyon karesi frekansı kullanın. Şu anda animasyon kareleri yeterince sık gönderilmiyor. Bu durum, ara belleğe almaya neden olabilir. Mevcut animasyon karesi sıklığı %(actual_gop).1f saniyedir. Besleme hatalarının yanlış GOP (resim grubu) boyutlarına neden olabileceğini unutmayın.
gopSizeShort
Neden:Video ayarlarını kontrol edin
Açıklama:GOP (resim grubu) boyutu çok küçük. Bu durum, resim kalitesini düşürebilir. Önerilen animasyon karesi frekansı dört saniyedir. Mevcut animasyon karesi sıklığı %(actual_gop).1f saniyedir. Besleme hatalarının yanlış GOP boyutlarına neden olabileceğini unutmayın.
multipleAudioStreams
Neden:Ses ayarlarını kontrol edin
Açıklama:Besleme akışı birden fazla ses akışı içeriyor, ancak yalnızca bir ses akışı içermelidir.
multipleVideoStreams
Neden:Kötü video ayarları
Açıklama:Besleme akışı birden fazla video akışı içeriyor, ancak yalnızca bir video akışı içermelidir.
noAudioStream
Neden:Ses yok
Açıklama:Besleme akışı hiç ses akışı içermiyor, ancak mutlaka bir ses akışı içermelidir.
noVideoStream
Neden:Video yok
Açıklama:Besleme akışı hiç video akışı içermiyor, ancak mutlaka bir video akışı içermelidir.
openGop
Neden:Kötü video ayarları
Açıklama:Lütfen video kodlayıcınızın yapılandırmasını "kapalı resim grubu (GOP)" olarak değiştirin. YouTube'un desteklemediği "açık GOP" olarak ayarlanmış.
resolutionMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı çözünürlüklere sahip. Akışları aynı çözünürlüğe sahip olacak şekilde yapılandırmanız gerekir.
videoBitrateMismatch
Neden:İkincil akışı kontrol edin
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı video bit hızlarına sahip. Akışları aynı video bit hızına sahip olacak şekilde yapılandırmanız gerekir.
videoCodec
Neden:Kötü video ayarları
Açıklama:Video desteklenmeyen bir codec ile kodlanmış. Lütfen akışın video codec'ini desteklenen bir codec'e (H.264) ayarlayın.
videoCodecMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı video codec'lerini kullanıyor. Akışları aynı video codec'lerine sahip olacak şekilde yapılandırmanız gerekir.
videoIngestionStarved
Neden:Video çıkışı düşük
Açıklama:YouTube, sorunsuz bir akış için yeterince video almıyor. Bu nedenle, izleyiciler arabelleğe alma işlemiyle karşılaşacaktır.
videoInterlaceMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı aralıklı taramaya sahip. Akışları aynı aralıklı görüntülemeye sahip olacak şekilde yapılandırmanız gerekir.
videoProfileMismatch
Neden:Kötü ikincil akış
Açıklama:Geçerli yapılandırmada videonun birincil ve yedek akışları farklı profillere sahip. Akışları aynı profile sahip olacak şekilde yapılandırmanız gerekir.
videoResolutionSuboptimal
Neden:Çözünürlüğü kontrol edin
Açıklama:Lütfen video çözünürlüğünü kontrol edin. Geçerli çözünürlük (%(actual_w)dx%(actual_h)d) ve bu optimum çözünürlük değil.
videoResolutionUnsupported
Neden:Desteklenmeyen çözünürlük
Açıklama:Video çözünürlüğünü değiştirmeniz gerekiyor. Mevcut çözünürlük (%(actual_w)dx%(actual_h)d). Bu çözünürlük, bu yapılandırmada desteklenmiyor. Beklenen video çözünürlüğü (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
Sorunun akış için ne kadar ciddi olduğunu gösterir.

Bu mülk için geçerli değerler şunlardır:
  • info – Video, performansı olumsuz etkilemeden izleyicilere yayınlanır.
  • warning – Video, izleyicilere yayınlanır ancak performans optimum seviyede değildir.
  • error – Video, izleyicilere yayınlanamaz.
status.healthStatus.configurationIssues[].reason string
Sorunun kısa bir açıklaması. LiveStream Kaynakları için Yapılandırma Sorunları belgesi, her bir yapılandırma sorunu türüyle ilişkili nedeni tanımlar.
status.healthStatus.configurationIssues[].description string
Sorunun ayrıntılı açıklaması. Mümkün olduğunda açıklamada sorunun nasıl çözüleceğiyle ilgili bilgi verilir. LiveStream Kaynakları için Yapılandırma Sorunları dokümanında, tüm yapılandırma sorunu türleri ve ilişkili açıklamaları listelenir.
contentDetails object
content_details nesnesi, akışla ilgili bilgileri (altyazı besleme URL'si dahil) içerir.
contentDetails.closedCaptionsIngestionUrl string
Bu akışın altyazılarının gönderildiği besleme URL'si.
contentDetails.isReusable boolean
Yeniden kullanılabilir olup olmadığını gösterir. Yani birden fazla yayına bağlanabilir. Yayıncıların farklı zamanlarda gerçekleştirdikleri birçok yayın için aynı akışı tekrar kullanmaları yaygın bir durumdur.

Bu değeri false olarak ayarlarsanız yayın yeniden kullanılamaz. Bu durumda, yalnızca bir yayına bağlanabilir. Tekrar kullanılamayan akışlar, yeniden kullanılabilir akışlardan şu yönleriyle ayrılır:
  • Tekrar kullanılamayan canlı yayınlar yalnızca bir yayına bağlanabilir.
  • Tekrar kullanılabilen bir canlı yayın, yayın sona erdikten sonra otomatik bir işlemle silinebilir.
  • Yöntemi çağırıp mine parametresini true değerine ayarlarsanız liveStreams.list yöntemi, yeniden kullanılamayan akışları listelemez. Tekrar kullanılamayan bir canlı yayın için kaynağı almanın tek yolu, id parametresini kullanarak akışı tanımlamaktır.