Bir Yayının Hayatı

Giriş

Bu belge, YouTube Canlı Akış API'si ve YouTube Content ID API kullanılarak oluşturulup yönetilen ve YouTube'da yer alan canlı yayının yaşam döngüsü boyunca size yol gösterir.

Kaynaklar ve kaynak türleri

Başlangıç kılavuzunda açıklandığı gibi kaynak, benzersiz tanımlayıcısı olan bağımsız bir veri varlığıdır. YouTube'da canlı etkinlikler oluşturmak ve yönetmek için YouTube Data API veya YouTube Content ID API'nin bir parçası olarak tanımlanan bir dizi farklı kaynak türünü kullanırsınız. YouTube Live Streaming API başlığı altında listelenen kaynaklar, diğer API'lerde teknik olarak tanımlanır ancak yalnızca canlı yayınlar için kullanıldığından ayrı olarak listelenir.

YouTube Live Streaming API kaynakları

YouTube Data API kaynakları

YouTube Content ID API kaynakları

Canlı yayın oluşturma ve yönetme

Aşağıdaki adımlarda, YouTube'da canlı etkinlik oluşturma ve yönetme açıklanmaktadır. Adımlar aşağıdaki aşamalara ayrılmıştır:

  1. Yayınınızı ayarlama
  2. İçeriğinizi talep etme
  3. Test
  4. Yayın
  5. Yayınınızı tamamlama
  6. Referans oluşturma

1. Aşama: Yayınınızı ayarlayın

1.1. Adım: Yayınınızı oluşturun

Yayınınızı YouTube'un canlı etkinlik programına eklemek için liveBroadcasts.insert yöntemini çağırın. Eklediğiniz liveBroadcast kaynağı, aşağıda listelenen özelliklerin değerlerini tanımlamalıdır.

Yayınınızı oluştururken lütfen aşağıdaki kuralları göz önünde bulundurun:

  • Yayınınız için bir test aşaması uygulamak istiyorsanız video yayınınızı diğer izleyiciler tarafından da görülmeden görüntüleyebildiğiniz zaman contentDetails.monitorStream.enableMonitorStream özelliğini true, contentDetails.enableAutoStart özelliğini de false değerine ayarlamanız gerekir. Bunlar, her iki mülk için de varsayılan değerlerdir.

  • Kayıtlı yayınınızdan referans oluşturmak isterseniz yayının contentDetails.recordFromStart özelliğini true olarak ayarlamanız gerekir. Kaydedilen videoyu yayın sona erdikten hemen sonra oynatılabilir hale getirmek isterseniz contentDetails.enableDvr özelliğini de true olarak ayarlamanız gerekir. (Bu tesislerin her ikisi de varsayılan olarak true değerine sahiptir.)

  • Yayınınızın durumu hâlâ created veya ready olduğu sürece contentDetails özelliklerinden herhangi birini güncelleyebilirsiniz.

  • Yayının durumu created, ready veya testing olduğu sürece yayının planlanan başlangıç zamanını ve planlanan bitiş zamanını güncelleyebilirsiniz.

  • Yayının başlığı, açıklaması, gizlilik durumu ve video kaynağının parçası olan diğer meta veri alanları herhangi bir zamanda güncellenebilir.

    Not: Videonuzun yalnızca belirli YouTube kullanıcılarına sunulmasını istiyorsanız status.privacyStatus mülk değerini unlisted veya private olarak ayarlayın.

API yanıtını işleme

liveBroadcasts.insert yöntemini çağırdığınızda API yanıtı, oluşturduğunuz liveBroadcast kaynağını içerir. Kodunuz bu kaynaktan id dosyasını çıkarıp depolamalıdır. Gelecekteki API isteklerinde yayını tanımlamak için bu değere ihtiyacınız olacaktır. (Aynı kaynağı kullanarak liveBroadcast kaynağına karşılık gelen video kaynağını da tanımlayabilirsiniz.)

1.2. Adım: Yayınınızı oluşturun

liveStream kaynağı, videonuzu YouTube'a iletmenizi sağlar ve ilettiğiniz içeriği açıklar. Her yayın tam olarak bir akışla ilişkilendirilmelidir.

Etkinliğiniz için video akışı oluşturmak üzere liveStreams.insert yöntemini çağırın. Yayınınızı oluştururken aşağıda listelenen mülkler için değerler belirlemeniz gerekir:

Akış başlığı hariç bu değerler, akış oluşturulduktan sonra güncellenemez. Bunları değiştirmeniz gerekirse, bu adımı tekrarlayarak farklı bir akış oluşturmanız gerekir. Bu süreç, bu belgenin sonraki 3.5. adımında daha ayrıntılı olarak ele alınmaktadır.

Ayrıca, aşağıdaki özellikler için değerleri ayarlama seçeneğiniz de vardır:

  • snippet.description - Akış başlığı gibi akış açıklaması, akış oluşturulduktan sonra güncellenebilir. YouTube kullanıcıları başlığı da ne açıklamayı da göremezler.
  • contentDetails.isReusable - Akışın yeniden kullanılabilir olup olmadığını gösterir. Birden fazla yayına bağlanabilir. Bu özelliğin değeri, kanalın liveBroadcast ve liveStream kaynakları arasında bire-bir veya bire bir ilişkisi olup olmadığını etkili bir şekilde belirler:

    • Mülkün varsayılan true değerini kullanıyorsanız bir kanalın tüm yayınları için aynı liveStream kaynağını kullanabilirsiniz. Diğer bir deyişle, her yayın için bu adımı (1.2) tekrarlamanız gerekmez. Bunun yerine, sonraki yayınlarda yayın kimliğini yeniden kullanabilirsiniz.
    • Mülk değerini false olarak ayarlarsanız her yayın için yeni bir akış oluşturmanız gerekir.

API isteği gönderildikten sonra, API yanıtı oluşturduğunuz liveStream kaynağını içerir. Kodunuz, bu kaynaktan id dosyasını alıp depolamalıdır. Gelecekteki API isteklerinde akışı tanımlamak için bu değere ihtiyacınız vardır.

1.3. Adım: Yayınınızı akışına bağlayın

liveBroadcast ve liveStream kaynaklarınızı oluşturduktan sonra liveBroadcasts.bind yöntemini kullanarak bunları ilişkilendirmeniz gerekir. Bu işlem, YouTube'a ileteceğiniz video bitlerini söz konusu videonun etkinlik anonsuna bağlar.

liveBroadcasts.bind yöntemini çağırırken id parametresini 1.1. adımda alınan yayın kimliğine ve streamId parametresini 1.2. adımında alınan akış kimliğine ayarlayın.

2. Aşama: İçeriğiniz için hak talebinde bulunun

Yayınınız sırasında reklam göstermek istiyorsanız etkinlik başlamadan önce yayın videosu için hak talebinde bulunmanız gerekir. Aşağıdaki adımlar bu süreci açıklamaktadır. Bu aşamada ele alınan tüm API çağrılarının YouTube Content ID API'de tanımlandığını unutmayın.

2.1. Adım: Öğe oluşturun

asset kaynağı, bir fikri mülkiyet parçasını temsil eder. Bu durumda, öğeniz yayınınızdır. Öğenizi oluşturmak için assets.insert yöntemini çağırın.

API yanıtı, oluşturduğunuz asset kaynağını içerir. Öğenizin sonraki API isteklerinde öğeyi tanımlamak için bu değere ihtiyacınız olacağından, kodunuz bu kaynaktan id dosyasını çıkarıp depolamalıdır.

2.2. Adım: Öğenin sahibi olduğunuzu tanımlayın

Öğe sahiplik verileri, bir öğenin sahiplerini ve öğenin sahip olduğu bölgeleri tanımlar. YouTube, bir sahibin hak talebinde bulunulan bir video için politikayı nereden ayarlayabileceğini belirlemek amacıyla bu verileri kullanır.

Örneğin, ABD'de bir etkinliği yayınlama hakkınız varsa ve başka bir yayıncı Kanada için aynı haklara sahipse her biri yayın videosu ve yayın videosuyla eşleşen kullanıcı tarafından yüklenen videolar için farklı politikalar tanımlayabilirsiniz. Eşleşme politikanız ABD'de eşleşen kullanıcılar tarafından yüklenen videolar için, diğer sahibin politikası ise Kanada'daki eşleşen videolar için geçerli olur.

Öğenin sahiplik bölgelerinizi tanımlamak için ownership.update yöntemini çağırın. Bu istekte assetId parametresini, 2.1. adımda depoladığınız id olarak ayarlayın.

2.3. Adım: Öğenin eşleşme politikasını ayarlayın

Öğe eşleşme politikası, kullanıcı öğeyle ilişkili bir referansla eşleşen bir video yüklediğinde YouTube'un ne yapması gerektiğini açıklar. Bu durumda eşleşme politikası, YouTube'un canlı yayınınızla eşleşen yüklenmiş bir videoyu nasıl işlemesi gerektiğini gösterir.

Not: Yayın videonuzdan referans oluşturmayı ve yayınınızla eşleşen kullanıcı tarafından yüklenen videoları tanımlamak için bu referansı kullanmayı planlıyorsanız bir eşleşme politikası ayarlamanız gerekir. Aksi halde bu adımı atlayabilirsiniz.

Eşleşme politikasını ayarlamak için öncelikle uygulamak istediğiniz politikayı tanımlamanız gerekir. Mevcut politikaların listesini almak için policies.list yöntemini çağırabilir veya policies.insert yöntemini çağırarak yeni bir politika tanımlayabilirsiniz. Her iki durumda da uygulamak istediğiniz politikanın id kadarını yakalamanız gerekir.

Politikayı belirledikten sonra assetMatchPolicy.update yöntemini çağırın. Bu istekte assetId parametresini, 2.1. adımda depoladığınız id olarak ayarlayın.

2.4. Adım: Videonuzla ilgili hak talebinde bulunun

Bu adımda, 2.1. adımda oluşturduğunuz öğeye yayınlayacağınız videoyu bağlayan bir hak talebi oluşturursunuz. Hak talebi yalnızca yayın videonuz için geçerli olan bir politika belirler. (Yayın videonuzla eşleşen kullanıcı tarafından yüklenen videolar, önceki adımda ayarlanan eşleşme politikası kapsamındadır.)

Hak talebi oluşturmak için claims.insert yöntemini çağırın. Eklediğiniz claim kaynağında, aşağıdaki özelliklerin değerlerini ayarlamanız gerekir:

  • assetId – Bu değeri 2.1. adımda aldınız.
  • videoId – Bu, 1.1. adımda edindiğiniz yayın kimliğidir.
  • policy – Bu bir policy kaynağıdır. Kaynağın id özelliğini mevcut politikanın kimliğine ayarlayarak mevcut bir politikayı uygulayabilirsiniz. Önceki adımda, mevcut bir politikanın kimliği nasıl alınacağı açıklanmaktadır.
  • contentType – Bu değeri audiovisual olarak ayarlayın.

API yanıtını işleme

Hak talebini eklediğinizde API yanıtı, oluşturduğunuz claim kaynağını içerir. Kodunuz, bu kaynaktan id dosyasını alıp depolamalıdır. İşlenen videonuzdan referans oluşturmak için bu değeri daha sonra kullanırsınız.

2.5. Adım: Yayının reklam ayarlarını güncelleyin

İzleyiciler yayınınızı izlemeye başladığında videodan önce gösterilen reklam yayınlamak veya yayınınız sırasında reklam yayınlamak istiyorsanız videonuz için reklam seçeneklerini ayarlamanız gerekir.

  • Yayınınız için videodan önce gösterilen reklamları etkinleştirirseniz tüm kullanıcılar, yayının ortasında izlemeye başlasalar da yayınınızı izlemeye başladıklarında reklam görürler.
  • Yayınınız için videonun ortasında gösterilen reklamları etkinleştirirseniz yayın sırasında reklam işaret noktaları ekleyebilirsiniz.

Reklamları etkinleştirmek için videoAdvertisingOptions.update yöntemini çağırın. İsteğinizde, videoId parametresini 1.1. adımda aldığınız id yayınına ayarlayın. Etkinleştirmek istediğiniz reklam biçimlerini (preroll, midroll veya postroll) tanımlamak için videoAdvertisingOption kaynağının adFormats[] mülkünü kullanın.

3. Aşama: Test etme

Bu aşamada yayın deneyiminizin izleme akışını gösteren bir oynatıcı yerleştirebilirsiniz. Böylece izleme deneyimini test edebilirsiniz. İzleme akışı, yayın videosunu YouTube izleyicilerine gösterilecek şekilde önizlemenize olanak tanıyan özel bir akıştır.

Video yayınınızı yalnızca yayın akışı etkinse test edebileceğinizi unutmayın. Varsayılan olarak yayınların izleme akışları etkindir. Bir yayını oluştururken veya güncellerken contentDetails.MonitorStream.enableMonitorStream özelliğini false olarak ayarlayarak yayının izleme akışını devre dışı bırakabilirsiniz.

3.1. Adım: Monitör akış oynatıcısı yerleştirme

Yayınınızı liveBroadcasts.list yöntemini kullanarak alın ve contentDetails.streamDetails.monitorStreamEmbedHtml özelliğinin değerini çıkarın. Bu değer, izleme akışınızı gösteren bir YouTube oynatıcısını yerleştirmek için ihtiyacınız olan HTML'yi içerir.

3.2. Adım: Videonuzu başlatın

Video akışınızda video aktarmaya başlayın.

3.3. Adım: Video akışınızın etkin olduğunu doğrulayın

Yayınınızla ilişkili liveStream kaynağını almak için liveStreams.list yöntemini çağırın. status.streamStatus özelliğinin değerinin active olduğunu onaylayın. Bu, YouTube sunucularının kodlayıcınızdan doğru şekilde veri aldığını gösterir.

3.4. Adım: Yayınınızın durumunu teste geçirin

Yayının durumunu güncellemek için liveBroadcasts.transition yöntemini çağırın. id parametre değerini 1.1. adımda elde edilen yayın kimliğine ve broadcastStatus parametre değerini testing olarak ayarlayın.

liveBroadcasts.transition yöntemini çağırdıktan sonra, bu geçişin tamamlanması birkaç saniye, hatta bir dakika kadar sürebilir. Bu süre zarfında yayının durumunu kontrol etmek için API'ye anket yapmanız gerekir. Geçiş tamamlanana kadar yayının durumu testStarting olur. Geçiş tamamlandığında durum testing olacaktır.

3.5. Adım: Testinizi tamamlama

Testiniz sorunsuz ilerlediyse 4. adıma geçebilirsiniz. Ancak bazı durumlarda daha ayrıntılı testler yapmanız gerekebilir. Örneğin, testiniz video akışının doğru şekilde yapılandırılmadığını gösterirse yayınınıza devam etmeden önce bunu düzeltmeniz gerekir.

Video akışı doğru şekilde yapılandırılmamışsa mevcut akışın bağlantısını kaldırmanız (ve silmeniz) ve yeni bir akış oluşturmanız gerekir. Örneğin, bir akış yanlış video biçimini belirtiyorsa doğru şekilde yapılandırılmamış olabilir.

  1. Video akışının bağlantısını kaldırmak için 1.3'ten liveBroadcasts.bind yöntemini çağırın. API isteğinde, id parametresini 1.1. adımda elde edilen id olarak ayarlayın. İstekte streamId parametresini kullanmayın.

  2. Video akışını silmek için liveStreams.delete yöntemini çağırın. İstekte, id parametresini 1.2. adımda elde edilen id olarak ayarlayın.

  3. Yeni ve düzgün yapılandırılmış bir liveStream kaynağı oluşturmak için 1.2. adımı tekrarlayın. Ardından, yeni akışı yayınınıza bağlamak için 1.3. adımı, yeni akışı test etmek için de 3.1 ila 3.3 arasındaki adımları tekrarlayın.

3.6.6: autoStart ve autoStop özelliklerini etkinleştirin

Test aşamanızı başarıyla tamamladıktan sonra, gerçek yayın başlamadan önce yayının contentDetails.enableAutoStart ve contentDetails.enableAutoStop özelliklerini true olarak ayarlayabilirsiniz. Test, yayının başlamasına neden olacağından bu özellikler test aşamasından önce true olarak ayarlanamaz.

4. Aşama: Yayınlayın

Bu aşamada yayın videonuz kitleniz tarafından görüntülenebilir.

4.1 Adım: Videonuzu başlatın

Video akışınızda video aktarmaya başlayın.

4.2. Adım: Video akışınızın etkin olduğunu doğrulayın

Yayınınızla ilişkili liveStream kaynağını almak için liveStreams.list yöntemini çağırın. status.streamStatus özelliğinin değerinin active olduğunu onaylayın. Bu, YouTube sunucularının kodlayıcınızdan doğru şekilde veri aldığını gösterir.

4.3. Adım: Yayınınızın durumunu yayına geçirme

Önemli: Bu adım, videonuzu kitlenizin görmesini sağlar.

Yayının durumunu güncellemek için liveBroadcasts.transition yöntemini çağırın. id parametre değerini 1.1. adımda elde edilen yayın kimliğine ve broadcastStatus parametre değerini live olarak ayarlayın.

liveBroadcast kaynağının contentDetails.enableAutoStart özelliğini true olarak ayarlarsanız liveBroadcasts.transition yöntemini çağırmanız gerekmez.

Bu API çağrısını yaptıktan sonra veya contentDetails.enableAutoStart özelliğini true olarak ayarlarsanız akışa başladıktan sonra genellikle bu geçişin tamamlanması için 5 ila 10 saniye beklemeniz gerekir. Geçiş bir dakika kadar sürebilir. Bu süre zarfında yayının durumunu kontrol etmek için API'ye anket yapmanız gerekir. Geçiş tamamlanana kadar yayının durumu liveStarting olur. Geçiş tamamlandığında durum live olacak ve izleyiciler o andan itibaren yayınınızı monitör akışınızda izleyebilecek.

Bu komutun aşağıdaki etkilerini göz önünde bulundurun:

  • Yayınınız için izleme akışını etkinleştirdiyseniz izleme akışını yerleşik bir oynatıcıda görebilirsiniz.
  • Yayının contentDetails.streamDetails.broadcastStreamDelayMs mülkü için bir değer belirlediyseniz diğer izleyiciler tarafından görülebilen yayın akışı bu süre boyunca gecikir.

4.4: Yayınınıza reklam arası ekleyin

İşaret noktası eklemek için liveBroadcasts.cuepoint yöntemini çağırın. İşaret noktası bir reklam arasını tetikleyebilir. İstek gövdesinde sağlanan cuepoint kaynağında durationSecs özelliğini, göstermek istediğiniz istediğiniz ara süresine (saniye cinsinden) ayarlayın. (Varsayılan değer: 30)

Şu anda YouTube, reklam işaret noktası eklendiğinde yayını izleyen tüm izleyiciler için video oynatıcıda bir reklam oynatmaya çalışmaktadır. Bir reklamın oynatılıp oynatılmayacağı, reklamın kullanılabilirliği ve izleyicinin reklam görüntüleme geçmişi gibi çeşitli faktörlere bağlıdır. Reklam arası verilen izleyiciler, reklam arası sona erdiğinde yayınınıza geri dönerken reklam gösterilmeyen izleyiciler, ara sırasında yayın akışını görüntülemeye devam eder.

Başlangıç kılavuzu, canlı yayının reklam arası sırasında izleme deneyimi hakkında daha fazla bilgi sağlar.

5. Aşama: Yayınınızı tamamlayın

5.1. Adım: Yayını durdurun

Böylece YouTube canlı yayın sistemini test edebilirsiniz.

5.2: Adımı tamamlamak için yayınınızın durumunu değiştirin

Yayını durdurmaya hazır olduğunuzda yayının durumunu güncellemek için API'nin liveBroadcasts.transition yöntemini çağırın. id parametre değerini 1.1. adımda elde edilen yayın kimliğine ve broadcastStatus parametre değerini complete olarak ayarlayın.

Yayının contentDetails.recordFromStart ve contentDetails.enableDvr özelliklerini true olarak ayarladıysanız canlı etkinlik sona erdiğinde kitleniz canlı etkinliği hemen izleyebilir.

6. Aşama: Referans oluşturma

Canlı kayıt tamamlandıktan sonra kaydedilen videodan referans oluşturabilirsiniz. Bu işlem, YouTube'a yayınla yüklenen ve kullanıcı tarafından yüklenen videoları bulma talimatı verir. Bu videolar, 2.3. adımda ayarladığınız eşleşme politikasına göre işlenir.

Önemli: Referansı oluşturmak için yayının contentDetails.recordFromStart özelliğini true olarak ayarlamanız gerekir.

6.1. Adım: Videonun durumu için Data API'yi yoklayın

YouTube'un bu videodan referans oluşturabilmesi için öncelikle bir yayının veya yüklenen videonun işlenmesi tamamlanmalıdır. Videonun işlenip işlenmediğini belirlemek için YouTube Data API'nın videos.list yöntemini anket yaparak part parametresini status ve id parametresini 1.1. adımda depoladığınız yayın kimliğine ayarlayın.

Anket isteğinize verilen API yanıtında video kaynağı bulunur. Söz konusu kaynağın status.uploadStatus özelliğinin değeri processed olduğunda 6.2. adıma geçin.

6.2. Adım: İşlenen videodan referans oluşturun

Referansınızı oluşturmak için Content ID API'sinin references.insert yöntemini çağırın ve claimId parametresini 2.4. adımda depoladığınız hak talebi kimliğine ayarlayın.

Canlı Content ID Yayını

Bazı YouTube iş ortakları, testing durumuna geçişlerinden önce referans oluşturabilir ancak bu özellik tüm iş ortakları tarafından kullanılamaz. Bu akışta YouTube, yayın devam ederken canlı etkinliğinizin yayın akışından bir referans oluşturur ve sürekli olarak günceller. Ayrıca YouTube, yayın devam ederken kullanıcı tarafından yüklenen eşleşen videoları arar. Yayınlamaya başlamadan önce referans oluşturduğunuzda yayın için kaydın otomatik olarak etkinleştirildiğini ve referans oluşturulduktan sonra kaydın kapatılamayacağını unutmayın.

Yayınınızı canlı Content ID yayını için etkinleştirmek istiyorsanız 2.4. adımda videonuz için hak talebinde bulunduktan sonra 6.2. adımda açıklanan işlemleri deneyin. İş ortağı hesabınız bu yayından önce canlı yayın için referans oluşturmak üzere onaylanmadıysa API, fingerprintingNotAllowed hatası döndürür. Bu durumda, referansı oluşturmadan önce yukarıdaki 6.1 ve 6.2. adımlarında açıklandığı gibi yayınınızın tamamlanmasını beklemeniz gerekir.