Periscope Producer API Nedir ?
Periscope Producer API 21 Mart 2017 tarihinde Twitter’ın resmi blogundaki bir yazı ile duyurulmuştu ve Periscope Producer API’yı şöyle tarif ediyorlardı.
Periscope Producer API harici yazılım, donanım ve kameraların Periscope uygulamasına bağlanmadan canlı video paylaşmalarını sağlayan bir arayüzdür. Bu sayede 3. parti uygulamalar Periscope hesaplarını yetkilendirebilecek, canlı yayın başlatıp, durduracak ve konfigurasyonunu yapabilecektir.
Twitter’ın geliştirici hesabında da bu haber tweetlenmişti.
Introducing the Periscope Producer API – a new way to go LIVE! 🎥 https://t.co/37izQyfAVZ
— TwitterDev (@TwitterDev) 21 March 2017
Yalnız, bu API private beta sürümünde olduğundan, geliştiricilerin API’yi kullanabilmeleri için private beta formunu doldurup Periscope’dan hem dökümantasyon hem de bazı parametreleri almaları gerekiyordu. Biz de formu doldurup gerekli bilgileri Periscope’dan aldık.
Bugünde, ilk defa Periscope Producer API’yi kodlayan kütüphaneyi github’da paylaştık. Bu kadar giriş yaptıktan sonra bu API’nin nasıl kullanılacağı ile ilgili kısımları anlatalım.
Periscope Producer API nasıl kullanılır ?
İlk olarak Periscope Producer API kütüphanesini indirmeli ve projesinizin classpath’ine eklemelisiniz.
Uygulamanızı Yetkilendirin
Bunu yapabilmek için 2 tane method sunuluyor.
- Device Code
- OAuth2 Authorization Code
Device Code methodu daha çok tarayıcısı olmayan cihazlar tarafından, OAuth2 methodu ise tarayıcılı yazlımı ve donanımlarda kullanılmaktadır. Biz ilk olarak Device Code methodu için örnek kodu aşağıda yazıyoruz. OAuth2 methodu için örnek koda bakmak isterserniz github sayfasını ziyaret ediniz.
// AuthorizationEndPoint nesnesi oluşturalım
AuthorizationEndpoints authorizationEndpoint = PeriscopeEndpointFactory.getAuthorizationEndpoint();
//device code isteği yapalım
CreateDeviceCodeResponse createDeviceCodeResponse = authorizationEndpoint.createDeviceCode(CLIENT_ID);
//İlk satırdaki url'e gidip 2. satırdaki kodu oraya yazalım
// ve buraya tekrar geri dönelim
System.out.println("Go to this url: " + createDeviceCodeResponse.associate_url);
System.out.println("Enter this user code: " + createDeviceCodeResponse.user_code);
System.out.println("and come back here");
CheckDeviceCodeResponse checkDeviceCode;
do {
//Yetkilendirme işleminin durumunu her 10 sn da bir soran döngünün içerisi
System.out.println("Waiting for " + createDeviceCodeResponse.interval + " seconds to check device code");
Thread.sleep(createDeviceCodeResponse.interval * 1000);
//Uygulamanın yetkilendirme durumunu sorgulayalım
checkDeviceCode = authorizationEndpoint.checkDeviceCode(createDeviceCodeResponse.device_code, CLIENT_ID);
//Yetkilendirme yapıldı ise döngüden dışarı çıkalım.
} while(!checkDeviceCode.state.equals("associated"));
Canlı Yayın Oluşturun ve Başlatın
Canlı yayın oluşturma ve başlatma ile ilgili örnek kod aşağıda bulunmaktadır. Satır arası yorumlar yazarak anlaşılmasını daha da kolaylaştırdık.
//Periscope Endpoint Factory nesnesini oluşturalım
PeriscopeEndpointFactory periscopeEndpointFactory =
new PeriscopeEndpointFactory(TOKEN_TYPE, ACCESS_TOKEN, REFRESH_TOKEN);
//BroadcastEndpoints nesnesini factory nesnesinden alalım
BroadcastEndpoints endpoint = periscopeEndpointFactory.getBroadcastEndpoints();
//RegionEndpoint nesnesini factory nesnesinden alalım
RegionEndpoints regionEndpoints = periscopeEndpointFactory.getRegionEndpoints();
//Yayın oluşturalım
CreateBroadcastResponse createBroadcastResponse =
endpoint.createBroadcast(regionEndpoints.get(), false);
//createBroadcastResponse nesnesi encoder ve player için gerekli
//tüm parametreleri barındırmaktadır.
//rtmp, hls, configuration etc.
//ve şimdi canlı yayını başlatma zamanı
String title = "test";
PublishBroadcastResponse publishBroadcastResponse =
endpoint.publishBroadcast(createBroadcastResponse.broadcast.id, title, true,
new Locale("tr", "TR").toString());
Yayını Durdurun
BroadcastEndpoints nesnesinin stopBroadcast fonksiyonunu çağırarak yayını durdurabilirsiniz. Parametre olarak bir önceki aşamada dönen yayın id’sini parametre olarak vermeniz gerekmektedir.
endpoint.stopBroadcast(publishBroadcastResponse.broadcast.id);
Yayını Silin
BroadcastEndpoints nesnesinin deleteBroadcast fonksiyonunu çağırarak var olan yayını silebilirsiniz.
endpoint.deleteBroadcast(publishBroadcastResponse.broadcast.id);
Yayın Bilgilerini Alın
BroadcastEndpoints nesnesinin getBroadcast fonksiyonunu çağırarak o yayın durumu hakkında bilgi alabilirsiniz.
Broadcast broadcast = endpoint.getBroadcast(publishBroadcastResponse.broadcast.id);
Temel olarak bir yayın oluşturma, başlatma ve durdurma işlemlerini sağlayan Periscope Producer API’sinin JAVA’da nasıl kullanılacağını anlatmaya çalıştık. Eğer bu konu hakkında sormak istedikleriniz olura yorum yazabilir veya contact@antmedia.io adresine e-posta gönderebilirsiniz.
Ve son olarak umarım yazılan kodlar ve bu döküman bunu okuyan bazı kişilere faydalı olur ve işlerini daha çabuk bitirmelerini sağlar 😉