Ana içeriğe geç

Yayınlar

Go Live yayını, bir üyenin mevcut ses bağlantısı üzerindeki bir ekran paylaşımıdır. Bir yayın anahtarı tek bir yayını adlandırır. Buradaki işlemler bir bölge tercihini kaydeder ve yayının JPEG önizleme görselini yönetir.

Bu sayfadaki her yol yalnızca kullanıcılara açıktır. Bot token'ı 403 ACCESS_DENIED ile reddedilir.

Yayın yaşam döngüsü

Yayını başlatmak ve durdurmak bir Gateway işlemidir. Canlıya geçmek, üyenin zaten sahip olduğu LiveKit katılımcısı üzerinde bir ekran paylaşımı izi yayımlar; yayıncı da bunu Voice State Update ile o bağlantıda self_stream ayarlayarak duyurur. TEBHOS ikinci bir bağlantı açmaz ve yeni izin vermez. Modelin tamamı Ses sayfasında anlatılır.

Yayın anahtarı

Yayın anahtarı, iki nokta üst üste ile ayrılmış tam olarak üç parçadan oluşan tek bir yol bölümüdür. Biçim, sunucu ses yayını için {guild_id}:{channel_id}:{connection_id}, özel arama yayını için dm:{channel_id}:{connection_id} şeklindedir.

Parça Tür Açıklama
scope string Özel arama için düz metin dm ya da sunucu ses kanalı için ondalık sunucu kimliği
channel_id string Yayının çalıştığı ses kanalının veya özel kanalın ondalık kimliği
connection_id string Yayıncının ses bağlantısının connection_id değeri; ses durumundaki ve medya katılımcı kimliğindeki değerdir

Farklı parça sayısına, boş bir kanal veya bağlantı parçasına, sayısal olmayan bir kanal parçasına ya da ne dm ne de sayı olan bir kapsama sahip anahtar 400 BAD_REQUEST döndürür.

Her yol kanalı anahtarın kanal parçasından çözümler. Yayın önizlemesi yükle ve Yayın önizlemesi yükleme URL'si oluştur ayrıca gövdelerinde bir channel_id alır; bu değer anahtarın kanal parçasına eşit olmalıdır, aksi hâlde istek 400 BAD_REQUEST döndürür.

TEBHOS kapsamı çözümlenen kanala karşı denetler. Sunucu kapsamlı bir anahtar kanalın kendi sunucusunu adlandırmalıdır; dm anahtarı ise hiçbir sunucuya ait olmayan bir kanalı adlandırmalıdır. Uyuşmazlık 403 FORBIDDEN döndürür.

Erişim kuralları

Yayın önizlemesini al okuma erişimi gerektirir. Bu sayfadaki diğer tüm yollar değiştirme erişimi gerektirir.

Okuma erişimi, çözümlenen kanala erişimdir: kanal var olmalı, çağıran kanalın sunucusunun üyesi (ya da özel kanalın alıcısı) olmalı ve orada VIEW_CHANNEL ile CONNECT izinlerine sahip olmalıdır. Çağıranın yayının sahibi olması gerekmez; bu yüzden kanala katılabilen her üye önizlemesini okuyabilir.

Koşul Yanıt
Kanal yok, çağıran sunucu üyesi değil ya da çağıran özel kanalın alıcısı değil 404 NOT_FOUND
Çağıranda VIEW_CHANNEL veya CONNECT yok 403 FORBIDDEN

Değiştirme erişimi, okuma erişiminin gerektirdiği her şeyi gerektirir. Sunucu kanalında ayrıca STREAM izni gerekir (yoksa 403 FORBIDDEN). Gateway'in ses durumlarına göre çağıranın, çözümlenen kanalda connection_id değeri anahtarın bağlantı parçası olan bir ses bağlantısına sahip olması gerekir. Böyle bir bağlantısı olmayan çağıran, kanalın sahibi olsa bile 403 FORBIDDEN ile reddedilir.

Canlı yayın olmadan da önizleme bulunabilir

Çağıran, yayın yapıp yapmadığından bağımsız olarak sahip olduğu herhangi bir ses bağlantısı için bölge kaydedebilir ve önizleme yükleyebilir.

Yayın önizlemesi yükleme nesnesi

Tek bir yayının önizleme görselini kabul eden kısa ömürlü bir URL. Yayın önizlemesi yükleme URL'si oluştur bunu döndürür; istemci görseli upload_url adresine tek bir PUT ile yükler.

Yapı

Alan Tür Açıklama
upload_url string Önizleme baytlarını tek bir PUT isteğiyle kabul eden, önceden imzalanmış nesne depolama URL'si
method string Her zaman PUT
content_type string PUT ile gönderilecek medya türü. İstekteki content_type olduğu gibi döndürülür; alan yoksa image/jpeg olur
expires_at ISO8601 zaman damgası URL'nin süresinin dolduğu zaman
expires_in integer Saniye cinsinden URL ömrü, her zaman 86400
max_bytes integer Kabul edilen en büyük bayt sayısı, her zaman 1000000

İstemci URL'yi tam olarak döndürüldüğü gibi göndermek ve döndürülen content_type değerini göndermek ZORUNDADIR. URL süresi dolana kadar tekrarlanan PUT isteklerini kabul eder ve her biri önceki önizlemenin yerini alır.

Örnek

{
  "upload_url": "https://cdn.example.com/stream_previews/1189375284394692608-1189375284394692610-abc123-3f9a1c2d4e5b6a70.jpg?X-Amz-Signature=...",
  "method": "PUT",
  "content_type": "image/jpeg",
  "expires_at": "2026-09-24T12:00:00.000Z",
  "expires_in": 86400,
  "max_bytes": 1000000
}

Yayın bölgesini değiştir

PATCH /streams/{stream_key}/stream

Bir yayın için tercih edilen medya bölgesini kaydeder ve boş gövdeyle 204 döndürür. Çağıranın değiştirme erişimi sınırını karşılaması gerekir.

Yol parametreleri

Alan Tür Açıklama
stream_key string Bölgesi ayarlanan yayın anahtarı

JSON gövdesi

Alan Tür Açıklama
region? ?string 1 ile 64 karakter arası RTC bölge kimliği. Verilmezse bölge saklanmaz

Bölge tanımlayıcısı, RTC bölgelerini listele tarafından döndürülen bir RTC region nesnesinin id değeridir. Uzunluk sınırının dışındaki bir değer 400 BAD_REQUEST döndürür.

Yanıt

Durum Gövde Koşul
204 boş Tercih kaydedildi
400 hata yanıtı Yayın anahtarı hatalı biçimli ya da region sınırların dışında
403 hata yanıtı Anahtarın kapsamı kanalla uyuşmuyor, çağıranda gerekli bir izin yok ya da eşleşen ses bağlantısı yok
404 hata yanıtı Kanal yok veya çağıran tarafından erişilemiyor

Yan etkiler

Tercih bir gün boyunca tutulur. Çağrı yayını taşımaz, TEBHOS bölgeyi çağıranın erişebildiği bölgelere karşı doğrulamaz ve hiçbir Gateway Dispatch'i gönderilmez.

Hız sınırı

channel:stream:update kovasında, her kullanıcı ve yayın anahtarı için 10 saniyede 20 istek.

Yayın önizlemesini al

GET /streams/{stream_key}/preview

Bir yayın için saklanan önizleme baytlarını döndürür. Çağıranın okuma erişimi sınırını karşılaması gerekir.

Yol parametreleri

Alan Tür Açıklama
stream_key string Önizlemesi döndürülen yayın anahtarı

Yanıt

Durum Gövde Koşul
200 önizleme baytları Saklanan bir önizleme var
400 hata yanıtı Yayın anahtarı hatalı biçimli
403 hata yanıtı Anahtarın kapsamı kanalla uyuşmuyor ya da çağıranda VIEW_CHANNEL veya CONNECT yok
404 hata yanıtı Kanal yok veya erişilemiyor ya da bu anahtar için saklanan önizleme yok

200 yanıtı Cache-Control: no-store, private ve Pragma: no-cache taşır. Content-Type değeri önizleme yazılırken kaydedilen medya türüdür; kaydedilmemişse image/jpeg olur.

Saklanan önizlemenin süresi yazıldıktan bir gün sonra dolar. Bu noktadan sonraki bir okuma, eksik veya okunamayan bir saklanan nesne ve 1,000,000 bayttan büyük bir nesne; hepsi 404 ile yanıtlanır. İstemcinin, kanalı başka açılardan erişilebilir olan bir 404'ü "henüz önizleme yok" olarak değerlendirmesi GEREKİR.

Yüklenen baytlar her yolda incelenmez; bu yüzden istemci Content-Type değerini yük biçiminin kanıtı olarak değerlendirMEMELİ ve kod çözmeyi savunmacı biçimde yapmak ZORUNDADIR.

Hız sınırı

channel:stream:preview:get kovasında, her kullanıcı ve yayın anahtarı için 10 saniyede 60 istek.

Yayın önizlemesi yükle

POST /streams/{stream_key}/preview

Yayının önizlemesini base64 olarak satır içinde gönderilen bir JPEG ile değiştirir ve boş gövdeyle 204 döndürür. Çağıranın değiştirme erişimi sınırını karşılaması gerekir.

Görsel baytlarını ayrı bir PUT isteğiyle yüklemek için Yayın önizlemesi yükleme URL'si oluştur yolunu kullanın.

Yol parametreleri

Alan Tür Açıklama
stream_key string Önizlemeyi alan yayın anahtarı

JSON gövdesi

Alan Tür Açıklama
channel_id snowflake Yayının etkin olduğu kanalın kimliği; anahtarın kanal parçasına eşittir. Dize veya sayı
thumbnail base64 string 1 ile 2,000,000 karakter arası, base64 ile kodlanmış JPEG
content_type? string Bildirilen medya türü

Büyük/küçük harf fark etmeksizin jpeg veya jpg içeren bir content_type, baytlar incelenmeden kabul edilir. Diğer her değer ve alanın yokluğu, yalnızca çözülen baytlar FF D8 ile başlayıp FF D9 ile bitiyorsa kabul edilir. Çözülen görsel en fazla 1,000,000 bayttır. TEBHOS kabul edilen content_type değerini olduğu gibi, alan yoksa image/jpeg olarak saklar. Görsel ayrıca içerik politikası ihlalleri için taranabilir.

Yanıt

Durum Gövde Koşul
204 boş Önizleme kabul edildi
400 hata yanıtı Yayın anahtarı hatalı biçimli, gövdedeki kanal anahtarla uyuşmuyor, thumbnail boş, çok uzun, geçerli base64 değil veya boşa çözülüyor, görsel JPEG değil, 1,000,000 baytı aşıyor ya da içerik politikasını ihlal ediyor
403 hata yanıtı Anahtarın kapsamı kanalla uyuşmuyor, çağıranda gerekli bir izin yok ya da eşleşen ses bağlantısı yok
404 hata yanıtı Kanal yok veya çağıran tarafından erişilemiyor

Yan etkiler

Çözülen baytlar, yayın anahtarının önceden sahip olduğu önizlemenin yerini alır ve önizlemenin süresi yazmadan bir gün sonra dolar. Hiçbir Gateway Dispatch'i gönderilmez; izleyiciler yeni görseli bir sonraki Yayın önizlemesini al okumasında görür.

Hız sınırı

stream:preview:post kovasında, her yayın anahtarı için 10 saniyede 20 istek.

Yayın önizlemesi yükleme URL'si oluştur

POST /streams/{stream_key}/preview/upload-url

JPEG önizlemenin sınırlı bir PUT yüklemesine izin veren bir yayın önizlemesi yükleme nesnesi döndürür. Çağıranın değiştirme erişimi sınırını karşılaması gerekir.

Yol parametreleri

Alan Tür Açıklama
stream_key string Önizlemeyi alan yayın anahtarı

JSON gövdesi

Alan Tür Açıklama
channel_id snowflake Yayının etkin olduğu kanalın kimliği; anahtarın kanal parçasına eşittir. Dize veya sayı
content_type? string Bildirilen medya türü. Yalnızca büyük/küçük harf fark etmeksizin jpeg veya jpg içeren bir değer kabul edilir; alanın yokluğu image/jpeg anlamına gelir

Yanıt

Durum Gövde Koşul
200 yayın önizlemesi yükleme nesnesi Yükleme URL'si verildi
400 hata yanıtı Yayın anahtarı hatalı biçimli, gövdedeki kanal anahtarla uyuşmuyor ya da bildirilen medya türü JPEG değil
403 hata yanıtı Anahtarın kapsamı kanalla uyuşmuyor, çağıranda gerekli bir izin yok ya da eşleşen ses bağlantısı yok
404 hata yanıtı Kanal yok veya çağıran tarafından erişilemiyor

Yan etkiler

Ayrı bir tamamlama çağrısı yoktur. PUT başarılı olduktan sonra Yayın önizlemesini al yüklenen görseli döndürür; o zamana kadar 404 ya da önceki görseli döndürür. Bu çağrının yazdığı önizleme kaydının süresi bir gün sonra dolar; bu yüzden bundan sonra kullanılan bir URL, hiçbir okumanın bulamayacağı bir nesne yazar. Hiçbir Gateway Dispatch'i gönderilmez.

Yükleme incelenmez

Önceden imzalanmış URL, imzalı medya türünü ve boyutu yalnızca nesne depolamanın uyguladığı ölçüde zorunlu kılar. max_bytes değerini aşıp yine de saklanan bir nesne hiçbir zaman sunulmaz: Yayın önizlemesini al bunun için 404 ile yanıt verir.

Hız sınırı

stream:preview:upload_url kovasında, her yayın anahtarı için 10 saniyede 20 istek.

Yayın önizlemesini sil

DELETE /streams/{stream_key}/preview

Bir yayın için saklanan önizlemeyi siler ve boş gövdeyle 204 döndürür. Olmayan bir önizlemeyi silmek de 204 döndürür. Çağıranın değiştirme erişimi sınırını karşılaması gerekir.

Yol parametreleri

Alan Tür Açıklama
stream_key string Önizlemesi silinen yayın anahtarı

Yanıt

Durum Gövde Koşul
204 boş Önizleme silindi ya da hiç saklanmamıştı
400 hata yanıtı Yayın anahtarı hatalı biçimli
403 hata yanıtı Anahtarın kapsamı kanalla uyuşmuyor, çağıranda gerekli bir izin yok ya da eşleşen ses bağlantısı yok
404 hata yanıtı Kanal yok veya çağıran tarafından erişilemiyor

Yan etkiler

Önizleme artık okunamaz ve saklanan nesnesi kaldırılır. Hiçbir Gateway Dispatch'i gönderilmez.

Hız sınırı

stream:preview:delete kovasında, her yayın anahtarı için 10 saniyede 20 istek.