Herkese merhaba. Hackli bir durum olmayacağından bir çoğunuzun geçiştireceği ama birçoğuna da güzel ve ilgi çekici bir konu olacağını düşündüğüm başlıkta da gördüğünüz konu ile beraberim
. Bu konuda size Twitch API'ı kullanarak yayın yapan bir yayıncının yayını hakkında bilgilerini almayı size elimden geldiğince göstericem.
(Şöyle bir notta bırakmak istiyorum; az önce kurduğum "yayıncının yayını hakkında bilgi alma" cümlesi size illegal bir iş yapabileceğiniz anlamını katmasın.)
• Öncelikle Twitch'e kayıt olmuş olmanız ve kayıt olduğunuz hesabınızı 2FA yani iki faktörlü kimlik doğrulamayı da etkinleştirmiş olmanız gerekiyor.
Bunu ben söylemiyorum sevgili Twitch söylüyor.:
Başta dediğim hatırlatmayı yaptıktan sonra. Şu resimdeki adımları teker teker uyguluyoruz.
• Developer console'a gidiyoruz.
• Uygulamaları seçip uygulamayı kaydet diyoruz.

• Açılan ekranda ilgili boşlukları doldurup "OLUŞTUR" diyoruz.
• Daha sonra geri gelip Tekrardan oluşturduğumuz uygulamamıza tıklayıp bu pencereye ulaşıyoruz:
• Client Secret ID'mizi de aldığımıza göre kaydettikten sonra burayı kapatıyoruz. (Client Secret ID'mizi bir yerde muhafaza edelim örneğin txt dosyası oluşturup içerisine yapıştırabilirsiniz.)
• Bu adımları izleyip doğru bir şekilde tamamladıktan sonra ikinci kısma geçiyoruz.
• İkinci kısımda bizi Authentication sayfası karşılıyor. Sağ taraftaki menüden "OAuth client credentials flow" sayfasını bulup tıklayalım.
• Aşağı doğru inelim ve bize örnek olarak verilen kodu Python ile yazıp "Authorization" şifremizi alalım:
• Şöyle bir çıktı verildi:
• Artık Authorization şifremize sahip olduğumuza göre Get Stream Bağlantısına tıklayarak ilgili cURL formatında yazılan örneği Python'a çevirerek bir test yapalım.
• Hemen Google'a curl to py yazıp ilk çıkan (üşengeçliğimizi düşünüp bunu siteye çeviren elemana buradan kalp) sayfaya girelim. Kodu yapıştırıp Python diline çevirmesini isteyelim.
• Sözlük tipinde olan Headers değişkenine baktığınızda Authorization anahtarının değeri bize temsili olarak rastgele harf ve sayılardan oluşan bir şifre verilmiş. Aynı durum Client-ID anahtarı içinde geçerli.
• Bizler bu kodu şöyle düzenleyip Run edelim:
• Bize default olarak belirlenmiş yayıncıların veya o an aktif olan yayıncılarından bazılarının bilgilerini vermiş olucak.
Peki biz istediğimiz yayıncının yayında olduğunu nasıl anlarız ?
Hemen şöyle, Get Streams dökümantasyonunda aşağı doğru inersek göreceğiz ki, belirlediğimiz bir key ile ilgili yayıncının adını girerek sorgu yapmış oluyoruz.
Bu key ise sistemde şöyle geçiyor: "user_login" buna değer olarak maksimum 100 adet yayıncı ismi olmak üzere (ben şimdilik bir adet kullanıcam) bir isim giriyoruz(tabiiki var olan bir yayıncı için). Kod bölümünde de şöyle bir değişiklik yapıyoruz:
Herşey çok güzel. Peki bize verilen bilgiler neler ?
Bilgiler şu şekilde (Dokümantasyondan alınan konsol çıktısıdır. Yayıncı ismi girilip kendiniz test edebilirsiniz )
Anlık izleyici sayısından Yayında o sıra rastgele olan bir Thumbnail'ına(en-boy bizim belirtmemiz koşulu ile) kadar neredeyse çoğu güzel kullanışlı bilgiyi bize sunuyor.
Ve kendimize sormamız gereken son bir soru: Yayıncı yayın açtığını nasıl anlarız ve bize bildirim nasıl gelir ?
Bildirim gelme işini Araştırma ve geliştirme olarak iki parçaya ayırıp yapabilirsiniz
Biz gelelim Yayıncının yayın açtığını anlamaya.....
Şöyle anlaşılıyor: Test amaçlı offline bir yayıncı ismi value olarak girildiğinde bize "data" anahtarı boş bir liste döndürüyor. Bu boş listeyi yakalayıp koşul cümlesi ile ifade etmeliyiz.
Pseudo Kod olarak şöyle ifade edeyim:
Bir dahaki bilmem ney üzerine olacak konuda görüşmek üzere....
(Şöyle bir notta bırakmak istiyorum; az önce kurduğum "yayıncının yayını hakkında bilgi alma" cümlesi size illegal bir iş yapabileceğiniz anlamını katmasın.)
• Öncelikle Twitch'e kayıt olmuş olmanız ve kayıt olduğunuz hesabınızı 2FA yani iki faktörlü kimlik doğrulamayı da etkinleştirmiş olmanız gerekiyor.
Bunu ben söylemiyorum sevgili Twitch söylüyor.:
Başta dediğim hatırlatmayı yaptıktan sonra. Şu resimdeki adımları teker teker uyguluyoruz.
• Developer console'a gidiyoruz.
• Uygulamaları seçip uygulamayı kaydet diyoruz.

• Açılan ekranda ilgili boşlukları doldurup "OLUŞTUR" diyoruz.
• Daha sonra geri gelip Tekrardan oluşturduğumuz uygulamamıza tıklayıp bu pencereye ulaşıyoruz:
• Client Secret ID'mizi de aldığımıza göre kaydettikten sonra burayı kapatıyoruz. (Client Secret ID'mizi bir yerde muhafaza edelim örneğin txt dosyası oluşturup içerisine yapıştırabilirsiniz.)
=======================================================================================================
• Bu adımları izleyip doğru bir şekilde tamamladıktan sonra ikinci kısma geçiyoruz.
• İkinci kısımda bizi Authentication sayfası karşılıyor. Sağ taraftaki menüden "OAuth client credentials flow" sayfasını bulup tıklayalım.
• Aşağı doğru inelim ve bize örnek olarak verilen kodu Python ile yazıp "Authorization" şifremizi alalım:
Python:
import requests
response = requests.post('https://id.twitch.tv/oauth2/token?client_id={Client_ID}&client_secret={Client_Secret_ID}&grant_type=client_credentials')
print(response.json())
{'access_token': '<Authorization_Sifresi>', 'expires_in': <Integer_tipinde_deger>, 'token_type': 'bearer'}• Artık Authorization şifremize sahip olduğumuza göre Get Stream Bağlantısına tıklayarak ilgili cURL formatında yazılan örneği Python'a çevirerek bir test yapalım.
• Hemen Google'a curl to py yazıp ilk çıkan (üşengeçliğimizi düşünüp bunu siteye çeviren elemana buradan kalp) sayfaya girelim. Kodu yapıştırıp Python diline çevirmesini isteyelim.
• Sözlük tipinde olan Headers değişkenine baktığınızda Authorization anahtarının değeri bize temsili olarak rastgele harf ve sayılardan oluşan bir şifre verilmiş. Aynı durum Client-ID anahtarı içinde geçerli.
• Bizler bu kodu şöyle düzenleyip Run edelim:
Python:
import requests
from pprint import pprint
headers = {
'Authorization': 'Bearer <access_token>',
'Client-Id': '<Client-Id>',
}
response = requests.get('https://api.twitch.tv/helix/streams', headers=headers)
pprint(response.json())
• Bize default olarak belirlenmiş yayıncıların veya o an aktif olan yayıncılarından bazılarının bilgilerini vermiş olucak.
Peki biz istediğimiz yayıncının yayında olduğunu nasıl anlarız ?
Hemen şöyle, Get Streams dökümantasyonunda aşağı doğru inersek göreceğiz ki, belirlediğimiz bir key ile ilgili yayıncının adını girerek sorgu yapmış oluyoruz.
Bu key ise sistemde şöyle geçiyor: "user_login" buna değer olarak maksimum 100 adet yayıncı ismi olmak üzere (ben şimdilik bir adet kullanıcam) bir isim giriyoruz(tabiiki var olan bir yayıncı için). Kod bölümünde de şöyle bir değişiklik yapıyoruz:
Python:
import requests
from pprint import pprint
headers = {
'Authorization': 'Bearer <access_token>',
'Client-Id': '<Client-Id>',
}
params = {
'user_login':'<Yayıncı_ismi>'
}
response = requests.get('https://api.twitch.tv/helix/streams', headers=headers,params=params)
pprint(response.json())
Herşey çok güzel. Peki bize verilen bilgiler neler ?
Bilgiler şu şekilde (Dokümantasyondan alınan konsol çıktısıdır. Yayıncı ismi girilip kendiniz test edebilirsiniz )
Kod:
{
"data": [
{
"id": "40944942733",
"user_id": "67931625",
"user_login": "amar",
"user_name": "Amar",
"game_id": "33214",
"game_name": "Fortnite",
"type": "live",
"title": "27h Stream Pringles Deathrun Map + 12k MK Turnier | !sub !JustLegends !Pc !yfood",
"viewer_count": 14944,
"started_at": "2021-03-09T16:59:39Z",
"language": "de",
"thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_amar-{width}x{height}.jpg",
"tag_ids": [
"9166ad14-41f1-4b04-a3b8-c8eb838c6be6"
],
"is_mature": false
},
],
"pagination": {
"cursor": "eyJiIjp7IkN1cnNvciI6ImV5SnpJam94TkRrME5DNDFOekV5TXpBMU1UWTVNRElzSW1RaU9tWmhiSE5sTENKMElqcDBjblZsZlE9PSJ9LCJhIjp7IkN1cnNvciI6ImV5SnpJam81TlRFMkxqVTNOREF6TmpNNU9UTXpNaXdpWkNJNlptRnNjMlVzSW5RaU9uUnlkV1Y5In19"
}
}
Anlık izleyici sayısından Yayında o sıra rastgele olan bir Thumbnail'ına(en-boy bizim belirtmemiz koşulu ile) kadar neredeyse çoğu güzel kullanışlı bilgiyi bize sunuyor.
Ve kendimize sormamız gereken son bir soru: Yayıncı yayın açtığını nasıl anlarız ve bize bildirim nasıl gelir ?
Bildirim gelme işini Araştırma ve geliştirme olarak iki parçaya ayırıp yapabilirsiniz
Biz gelelim Yayıncının yayın açtığını anlamaya.....
Şöyle anlaşılıyor: Test amaçlı offline bir yayıncı ismi value olarak girildiğinde bize "data" anahtarı boş bir liste döndürüyor. Bu boş listeyi yakalayıp koşul cümlesi ile ifade etmeliyiz.
Pseudo Kod olarak şöyle ifade edeyim:
Python:
eğer response.json()["data"] == []:
Yayıncı Çevrimdışı
Şayet:
Yayıncı Şuan Yayında !!!!
Bir dahaki bilmem ney üzerine olacak konuda görüşmek üzere....
Son düzenleme:








