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. 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ğinitrue
,contentDetails.enableAutoStart
özelliğini defalse
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ğinitrue
olarak ayarlamanız gerekir. Kaydedilen videoyu yayın sona erdikten hemen sonra oynatılabilir hale getirmek istersenizcontentDetails.enableDvr
özelliğini detrue
olarak ayarlamanız gerekir. (Bu tesislerin her ikisi de varsayılan olaraktrue
değerine sahiptir.)Yayınınızın durumu hâlâ
created
veyaready
olduğu sürececontentDetails
özelliklerinden herhangi birini güncelleyebilirsiniz.Yayının durumu
created
,ready
veyatesting
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ızstatus.privacyStatus
mülk değeriniunlisted
veyaprivate
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ınliveBroadcast
veliveStream
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.
- Mülkün varsayılan
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 birpolicy
kaynağıdır. Kaynağınid
ö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ğeriaudiovisual
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.
-
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 edilenid
olarak ayarlayın. İstektestreamId
parametresini kullanmayın. -
Video akışını silmek için
liveStreams.delete
yöntemini çağırın. İstekte,id
parametresini 1.2. adımda elde edilenid
olarak ayarlayın. -
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.