All Products
Search
Document Center

ApsaraVideo Live:Event callback

Last Updated:Jun 13, 2026

ApsaraVideo Live menyediakan notifikasi event untuk pengambilan aliran siaran langsung, perekaman (termasuk perekaman on-demand), snapshot, moderasi konten, dan pemulihan bencana aliran ganda. Topik ini menjelaskan cara mengonfigurasi callback tersebut, mencantumkan parameter callback, serta memberikan contoh.

Ikhtisar

ApsaraVideo Live mengirimkan notifikasi event melalui callback HTTP. HTTPS juga didukung. Untuk menerima notifikasi ini, Anda perlu men-deploy layanan HTTP dan mengonfigurasi URL callback di Konsol ApsaraVideo Live atau menggunakan API.

  • HTTP GET: Ketika terjadi event pengambilan aliran atau gangguan, ApsaraVideo Live mengirimkan permintaan HTTP GET ke URL callback Anda, dengan detail event dikirimkan sebagai parameter URL.

  • HTTP POST: Ketika terjadi jenis event lainnya, ApsaraVideo Live mengirimkan permintaan HTTP POST ke URL callback Anda, dengan detail event dikirimkan dalam badan JSON.

Catatan

Beberapa sertifikat SSL tidak kompatibel. Jika Anda mengalami masalah sertifikat, coba gunakan callback HTTP.

Catatan penggunaan

  • Konektivitas: URL callback Anda harus dapat diakses secara publik.

  • Timeout & Retries: Layanan mengharapkan respons dalam waktu 5 detik. Jika permintaan timeout, akan dilakukan retry hingga 5 kali dengan interval 1 detik.

  • Ruang lingkup domain:

    • Callback untuk pengambilan aliran dan pemulihan aliran ganda hanya dapat dikonfigurasi untuk domain ingest.

    • Callback untuk perekaman, snapshot, dan moderasi konten hanya dapat dikonfigurasi untuk domain streaming.

Manajemen callback

Callback pengambilan aliran

Callback ini memberi tahu Anda tentang status ingest domain, termasuk ingest berhasil, gangguan aliran, dan pengecualian ingest. Konfigurasikan URL callback di konsol atau menggunakan API.

Konfigurasi konsol

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Ingest Domain yang ingin Anda konfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Stream Ingest Callbacks, lalu konfigurasikan parameter berikut:

    • Callback Type: Atur callback untuk event ingest dan gangguan atau event pengecualian.

    • Callback URL: Titik akhir publik Anda untuk menerima notifikasi. Event ingest dan gangguan menggunakan HTTP GET, sedangkan event pengecualian menggunakan HTTP POST.

    • Callback Authentication: Pilih apakah akan mengaktifkan autentikasi. Jika diaktifkan, masukkan kunci autentikasi. Untuk proses autentikasi, lihat Callback authentication.

  5. Klik OK.

Konfigurasi API

API

Description

SetLiveStreamsNotifyUrlConfig

Menambahkan konfigurasi callback ingest.

DescribeLiveStreamsNotifyUrlConfig

Menanyakan konfigurasi callback ingest.

DeleteLiveStreamsNotifyUrlConfig

Menghapus konfigurasi callback ingest.

Event ingest dan gangguan

Logika callback

Untuk dorong aliran, ApsaraVideo Live mengirimkan callback untuk ingest berhasil jika sumber siaran langsung tetap terhubung setidaknya selama dua detik setelah ApsaraVideo Live menerima pesan OnPublish.

Jika Anda menggunakan penarikan aliran (waktu tetap atau on-demand) untuk domain streaming (Domain B) dan memerlukan notifikasi callback, konfigurasikan callback pengambilan aliran untuk domain ingest terkait (Domain A). Logikanya tetap konsisten: begitu koneksi terbentuk, penarikan aliran dianggap berhasil jika sumber siaran langsung tetap terhubung setidaknya selama dua detik.

Catatan

Jangan hanya mengandalkan notifikasi callback untuk menentukan apakah aliran telah berhasil diingest. Kami menyarankan Anda memanggil API untuk menanyakan daftar aliran online. Pastikan aliran aktif sebelum mendistribusikan URL pemutaran kepada pengguna.

Jika tidak ada data yang diterima oleh pusat siaran langsung ApsaraVideo Live selama 10 detik, layanan akan secara otomatis menghentikan koneksi ingest.

Parameter

Parameter

Description

action

Jenis event yang memicu callback.

  • publish: Aliran diingest.

  • publish_done: Aliran terganggu.

ip

Alamat IP klien ingest.

id

Nama aliran.

app

Domain ingest. Jika tidak ada domain ingest yang terkait, parameter ini mengembalikan domain streaming.

appname

AppName dari aliran.

time

Stempel waktu UNIX, dalam satuan detik, saat callback dikirim.

usrargs

Parameter ingest yang ditentukan pengguna.

node

Titik kehadiran (POP) atau server yang menerima aliran.

height

Tinggi video dalam piksel, hanya disediakan pada callback pertama.

width

Lebar video dalam piksel, hanya disediakan pada callback pertama.

Contoh event ingest

http://1.1.X.X?action=publish&ip=192.168.0.1&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

Contoh event gangguan

http://1.1.X.X?action=publish_done&ip=192.168.0.0&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

Event pengecualian ingest

Parameter

Parameter

Description

action

publish_exception_notify

domain

Domain ingest.

appname

AppName dari aliran.

stream

Nama aliran.

ip

Alamat IP klien ingest.

time

Stempel waktu UNIX, dalam satuan detik, saat callback dikirim.

type

Jenis event pengecualian.

event_time

Stempel waktu UNIX, dalam satuan detik, saat pengecualian terjadi.

Jenis pengecualian

Code

Event type

1001

URL berisi karakter yang tidak valid.

2001

Kodek video berada dalam daftar blokir.

2002

Kodek video tidak berada dalam daftar izin.

2003

Kodek audio berada dalam daftar blokir.

2004

Kodek audio tidak berada dalam daftar izin.

3001

Gagal mengurai header audio.

3002

Gagal mengurai header video.

3003

Gagal mengurai metadata.

4001

Lebar dan tinggi video tidak konsisten.

4002

Metadata menunjukkan tidak ada data audio, tetapi aliran berisi data audio.

4003

Data audio dan video aktual tidak sesuai dengan header.

4004

Metadata menunjukkan tidak ada data video, tetapi aliran berisi data video.

4005

Kodek audio berubah di tengah aliran.

4006

Kodek video berubah di tengah aliran.

4007

Frame audio diterima sebelum header audio.

4008

Frame video diterima sebelum header video.

5001

Jitter CTS berlebihan.

5002

Stempel Waktu Dekoding (DTS) tidak monotonik.

5003

Selisih stempel waktu antara audio dan video terlalu besar.

5004

Inkremen DTS audio terlalu besar.

5005

Inkremen DTS video terlalu besar.

5006

Interval antara frame audio yang diterima terlalu lama.

5007

Interval antara frame video yang diterima terlalu lama.

5008

Interval keyframe terlalu lama.

Contoh event pengecualian

{
  "action": "publish_exception_notify",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "stream": "liveStream****",
  "ip": "141.01.****",
  "time": "1739760710",
  "type": "5002",
  "event_time": "1739760710"
}

Callback perekaman siaran langsung

Callback perekaman siaran langsung memberi tahu Anda tentang status perekaman, pembuatan file, dan kesalahan perekaman.

Konfigurasi konsol

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Streaming Domain yang ingin Anda konfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Recording Callbacks dan konfigurasikan parameter berikut:

    • Callback URL: Titik akhir publik Anda untuk menerima notifikasi. Callback perekaman menggunakan permintaan HTTP POST.

    • Triggering Event: Pilih File Generation atau File Generation and Recording Status.

    • On-demand Callback URL: Jika Anda telah mengonfigurasi perekaman on-demand, layanan akan mengirimkan callback HTTP ke URL ini ketika siaran langsung dimulai. Server Anda harus merespons permintaan ini untuk menentukan apakah aliran harus direkam. Secara default, parameter ini diatur ke *, yang menonaktifkan fitur perekaman on-demand.

    • Callback Authentication: Pilih apakah akan mengaktifkan autentikasi. Jika diaktifkan, masukkan kunci autentikasi. Untuk proses autentikasi, lihat Callback authentication.

  5. Klik OK.

Konfigurasi API

API

Description

AddLiveRecordNotifyConfig

Menambahkan konfigurasi callback perekaman untuk domain.

DescribeLiveRecordNotifyConfig

Menanyakan konfigurasi callback perekaman.

DeleteLiveRecordNotifyConfig

Menghapus konfigurasi callback perekaman untuk domain.

Callback status perekaman

Dikirim ketika sesi perekaman dimulai atau dijeda.

Parameter

Parameter

Description

domain

Domain streaming untuk perekaman.

app

AppName dari aliran.

stream

Nama aliran.

event

Event.

  • record_started: Perekaman telah dimulai.

  • record_paused: Perekaman telah dijeda.

Contoh

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "event": "record_started"
}

Callback pembuatan file

Dikirim saat file dibuat, memberikan detail seperti path file, durasi, dan stempel waktu.

Parameter

Parameter

Description

domain

Domain streaming untuk perekaman.

app

AppName dari aliran.

stream

Nama aliran.

uri

Path relatif file rekaman di bucket OSS atau bucket ApsaraVideo VOD Anda.

record_id

ID file indeks.

file_url

URL lengkap file rekaman.

duration

Durasi file rekaman, dalam satuan detik.

start_time

Waktu mulai perekaman, sebagai stempel waktu UNIX dalam satuan detik.

stop_time

Waktu akhir perekaman, sebagai stempel waktu UNIX dalam satuan detik.

is_finished

Menunjukkan apakah perekaman telah selesai. Parameter ini hanya dikembalikan ketika siaran langsung direkam ke ApsaraVideo VOD.

oss_endpoint

Endpoint penyimpanan.

oss_bucket

Nama bucket penyimpanan.

push_args

Parameter yang ditentukan pengguna dari URL ingest yang diawali dengan callback_ (seperti callback_arg1 dan callback_myid).

Catatan
  • Parameter kustom tidak didukung untuk aliran yang telah dikodekan ulang.

  • Jika beberapa nilai diberikan untuk parameter yang sama (misalnya, callback_arg1=v1&callback_arg1=v2), hanya nilai pertama yang disertakan dalam callback ("callback_args1": "value1").

Contoh

Jika URL ingest adalah rtmp://demo.aliyundoc.com/liveApp****/liveStream****?callback_args1=value1&callback_myid=1231389741, muatan callback adalah sebagai berikut:

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "uri": "liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "file_url": "http://****.oss-****.aliyuncs.com/liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "duration": 69.403,
  "start_time": 1488985786,
  "stop_time": 1488985840,
  "push_args": {
    "callback_args1": "value1",
    "callback_myid": "1231389741"
  }
}

Callback kesalahan perekaman

Dipicu oleh pengecualian aliran sumber atau kegagalan penulisan penyimpanan (OSS).

Parameter

Parameter

Description

domain

Domain streaming untuk perekaman.

app

AppName dari aliran.

stream

Nama aliran.

event

Jenis event.

  • record_error: Terjadi kesalahan perekaman.

  • transformat_error: Terjadi kesalahan remuxing.

error_info

Informasi kesalahan dalam format JSON. Berisi bidang-bidang berikut:

  • code: Kode kesalahan.

  • message: Pesan kesalahan.

file_info

Informasi file. Parameter ini hanya dikembalikan untuk transformat_error. Berisi bidang-bidang berikut:

  • uri: Alamat penyimpanan file hasil remuxing.

  • start_time: Waktu mulai perekaman file.

  • stop_time: Waktu akhir perekaman file.

Contoh kesalahan perekaman

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "record_error",
  "error_info": {
    "code": "TsSegmenterFail",
    "message": "ts segmenter error"
  }
}

Kode kesalahan

Code

Message

Description

BucketNotFound

Bucket not found

Bucket tidak ada atau telah dihapus.

AccessDenied

Bucket not belong config userId

Bucket tidak dimiliki oleh akun tempat konfigurasi perekaman ditambahkan.

StreamFormatError

video stream format error

Format siaran langsung tidak valid.

UserDisable

Unauthorized access to OSS by user

Pengguna tidak diizinkan mengakses OSS, atau otorisasi telah dicabut.

Contoh kesalahan remuxing

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "transformat_error",
  "error_info": {
    "code": "PermissionDenied.ResourceAccess",
    "message": "MTS not authorized to operate on the OutputBucket"
  },
  "file_info": {
    "uri": "record/live/stream123/2025-11-19-03-17-03_2025-11-19-03-28-39.flv",
    "start_time": 1763493420,
    "stop_time": 1763494119
  }
}

Kode kesalahan

Code

Message

Description

InvalidParameter.ResourceNotFound

The resource operated cannot be found

Bucket tidak ada atau telah dihapus.

InvalidParameter.ResourceContentBad

The resource operated InputFile is bad

Remuxing gagal karena masalah kualitas aliran sumber.

PermissionDenied.ResourceAccess

MTS not authorized to operate on the OutputBucket

Pengguna tidak diizinkan mengakses OSS, atau otorisasi telah dicabut.

Callback perekaman on-demand

Perekaman on-demand memungkinkan Anda memutuskan secara programatis apakah akan merekam siaran langsung berdasarkan metadata aliran.

Ketika siaran langsung cocok dengan templat perekaman on-demand yang telah Anda konfigurasi sebelumnya (di tingkat domain, app, atau aliran), layanan perekaman mengirimkan permintaan HTTP ke On-demand callback URL Anda dengan detail aliran. Server Anda kemudian harus merespons untuk menunjukkan apakah aliran akan direkam dan memberikan pengaturan perekaman spesifik.

Parameter permintaan

Parameter

Type

Description

domain

String

Domain streaming.

app

String

AppName dari aliran.

stream

String

Nama aliran.

codec

String

Kodek. Nilai yang valid:

  • h264

  • h265

vbitrate

String

Bitrate video. Satuan: kbps.

Contoh permintaan

GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: pull.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

Parameter respons

Parameter

Type

Required

Description

ApiVersion

String

No

Versi API. Nilai default adalah 1.0.

NeedRecord

Boolean

Yes

Menunjukkan apakah aliran akan direkam.

Interval

JSONObject

No

Siklus perekaman untuk format tertentu. Rentang: 5 hingga 21600. Satuan: detik.

Format

JSONArray

No

Format perekaman. Format yang didukung: MP4, FLV, dan M3U8.

Contoh respons

{
  "ApiVersion": "1.0",
  "NeedRecord": true,
  "Interval": {
    "Mp4": 300,
    "Flv": 120,
    "M3U8": 180
  },
  "Format": ["mp4","flv"]
}

Penanganan respons

Layanan perekaman memproses respons Anda untuk mengganti konfigurasi yang ada:

  • Interval: Nilai Interval yang Anda berikan akan mengganti siklus perekaman yang dikonfigurasi dalam templat perekaman.

  • Format: Layanan menghitung irisan antara Format yang Anda minta dan format yang telah dikonfigurasi dalam templat perekaman. Jika tidak ada format yang sama, aliran tidak akan direkam.

Kode status HTTP selain 200 menunjukkan panggilan ke endpoint API Anda gagal.

Badan respons tidak boleh melebihi 2.048 byte. Sistem akan memotong konten apa pun yang melebihi batas ini demi keamanan.

Callback snapshot siaran langsung

ApsaraVideo Live mendukung notifikasi event untuk snapshot siaran langsung. Anda dapat mengonfigurasi URL callback di konsol atau melalui API.

Konfigurasi konsol

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Streaming Domain yang ingin Anda konfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Snapshot Callbacks dan konfigurasikan parameter berikut:

    • Callback URL: Titik akhir publik Anda untuk menerima notifikasi. Callback snapshot menggunakan permintaan HTTP POST.

    • Callback Authentication: Pilih apakah akan mengaktifkan autentikasi. Jika diaktifkan, masukkan kunci autentikasi. Untuk proses autentikasi, lihat Callback authentication.

  5. Klik OK.

Konfigurasi API

API

Description

AddLiveSnapshotNotifyConfig

Menambahkan konfigurasi callback snapshot siaran langsung.

UpdateLiveSnapshotNotifyConfig

Memodifikasi konfigurasi callback snapshot siaran langsung.

DescribeLiveSnapshotNotifyConfig

Menanyakan konfigurasi callback snapshot siaran langsung.

DeleteLiveSnapshotNotifyConfig

Menghapus konfigurasi callback snapshot siaran langsung.

Parameter callback snapshot

Parameter

Description

Event

Jenis event. Nilainya adalah Snapshot.

DomainName

Domain streaming.

AppName

AppName dari aliran.

StreamName

Nama aliran.

OssBucket

Nama bucket OSS yang menyimpan snapshot.

OssEndpoint

Endpoint OSS tempat snapshot disimpan.

OssObject

Nama file snapshot di bucket OSS.

CreateTime

Stempel waktu saat snapshot dibuat.

SnapshotUrl

URL lengkap file snapshot di bucket OSS.

Size

Ukuran gambar dalam byte.

Width

Lebar gambar dalam piksel.

Height

Tinggi gambar dalam piksel.

Contoh

{
  "Event": "Snapshot",
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssBucket": "liveBucket****",
  "OssEndpoint": "oss-cn-shan****.aliyuncs.com",
  "OssObject": "1****.jpg",
  "CreateTime": "2015-12-01T17:36:00Z",
  "SnapshotUrl": "http://liveBucket****.oss-cn-shan****.aliyuncs.com/1****.jpg",
  "Size": "36291",
  "Width": "1280",
  "Height": "720"
}

Callback moderasi konten

ApsaraVideo Live mendukung notifikasi event untuk hasil moderasi video dan audio. Anda dapat mengonfigurasi URL callback di konsol atau melalui API.

Callback moderasi video

Dipicu hanya untuk konten video yang ditandai sebagai bermasalah.

Konfigurasi konsol
  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Streaming Domain yang ingin Anda konfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Video Moderation Callbacks dan konfigurasikan URL callback. URL harus mengarah ke endpoint Anda sendiri. Ketika event moderasi video dipicu, ApsaraVideo Live akan mengirimkan permintaan HTTP POST ke URL yang Anda tentukan, dengan detail event dikirimkan dalam badan JSON.

  5. Klik OK.

Konfigurasi API

API

Description

AddLiveDetectNotifyConfig

Menambahkan konfigurasi callback moderasi video.

DescribeLiveDetectNotifyConfig

Menanyakan konfigurasi callback moderasi video.

UpdateLiveDetectNotifyConfig

Memodifikasi konfigurasi callback moderasi video.

DeleteLiveDetectNotifyConfig

Menghapus konfigurasi callback moderasi video.

Parameter callback

Notifikasi menyediakan detail moderasi dan lokasi penyimpanan snapshot yang diambil dari konten yang ditandai.

Parameter

Type

Description

DomainName

String

Domain streaming.

AppName

String

AppName dari aliran.

StreamName

String

Nama aliran.

OssEndpoint

String

Endpoint OSS.

OssBucket

String

Bucket OSS.

OssObject

String

Nama objek.

Result

JSONArray

Hasil moderasi. Untuk informasi lebih lanjut, lihat Result.

Result

Parameter

Type

Description

BizType

String

Jenis bisnis. Parameter ini dapat digunakan untuk memilih model. Secara default, nilainya adalah nama domain.

Scene

String

Skenario Deteksi.

  • porn: Pornografi.

  • terrorism: Terorisme dan konten sensitif politik.

  • ad: Pelanggaran teks dan gambar.

  • live: Adegan yang tidak diinginkan.

Label

String

Kategori hasil. Kategori bervariasi berdasarkan skema deteksi.

Kategori untuk porn:

  • normal: Normal.

  • sexy: Seksi.

  • porn: Porno.

Kategori untuk terrorism:

  • normal: Normal.

  • bloody: Berdarah.

  • explosion: Ledakan atau asap.

  • outfit: Pakaian khusus.

  • weapon: Senjata.

  • politics: Sensitif politik.

  • violence: Perkelahian.

  • crowd: Kerumunan.

  • parade: Parade.

  • carcrash: Kecelakaan mobil.

  • flag: Bendera.

  • location: Landmark.

  • others: Lainnya.

Kategori untuk ad:

  • normal: Normal.

  • ad: Iklan lainnya.

  • npx: Iklan spam.

  • qrcode: Kode QR.

  • programCode: Kode mini-program.

Kategori untuk live:

  • normal: Normal.

  • meaningless: Tidak ada konten dalam gambar (misalnya, layar hitam atau putih).

  • PIP: Picture-in-picture.

  • smoking: Merokok.

  • drivelive: Siaran langsung di dalam mobil.

Kategori untuk logo:

Rate

Float

Skor kepercayaan. Rentang: 0 hingga 100.

Catatan

Nilai ini hanya untuk referensi. Jangan gunakan nilai ini dalam logika bisnis Anda. Gunakan hasil Label untuk menentukan apakah konten tidak sesuai.

Extent

String

Parameter cadangan.

Catatan

Versi ini berlaku secara default untuk pengguna baru. Pengguna yang sudah ada tetap menggunakan versi saat ini. Untuk menggunakan versi ini, ajukan tiket.

Contoh

{
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssEndpoint": "oss-cn-hang****.aliyuncs.com",
  "OssBucket": "liveBucket****",
  "OssObject": "example.jpg",
  "Result": [
    {
      "BizType": "demo.aliyundoc.com",
      "Result": [
        {"Label": "Porn", "Rate": 11, "Suggestion": "review", "Scene": "porn", "Extent": {}},
        {"Label": "Ad", "Rate": 11, "Suggestion": "review", "Scene": "ad", "Extent": {}}
      ]
    }
  ]
}

Callback moderasi audio

Dipicu hanya untuk konten audio yang ditandai sebagai bermasalah.

Konfigurasi konsol
  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Streaming Domain yang ingin Anda konfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Audio Moderation Callbacks dan konfigurasikan URL callback. URL harus mengarah ke endpoint Anda sendiri. Ketika event moderasi audio dipicu, ApsaraVideo Live akan mengirimkan permintaan HTTP POST ke URL yang Anda tentukan, dengan detail event dikirimkan dalam badan JSON.

  5. Klik OK.

Konfigurasi API

API

Description

AddLiveAudioAuditNotifyConfig

Menambahkan konfigurasi callback moderasi audio.

DeleteLiveAudioAuditNotifyConfig

Menghapus konfigurasi callback moderasi audio.

UpdateLiveAudioAuditNotifyConfig

Memodifikasi konfigurasi callback moderasi audio.

DescribeLiveAudioAuditNotifyConfig

Menanyakan konfigurasi callback moderasi audio.

Parameter callback

Notifikasi mencakup teks transkripsi audio bermasalah dan informasi kontekstual dari menit berikutnya.

Parameter

Type

Description

DomainName

String

Domain streaming.

AppName

String

AppName dari aliran.

StreamName

String

Nama aliran.

Timestamp

Int

Stempel waktu, dalam satuan detik.

Result

JSONArray

Hasil moderasi. Untuk informasi lebih lanjut, lihat Result.

Result

Parameter

Type

Description

Scene

String

Skenario Deteksi.

Label

String

Kategori hasil deteksi. Nilai yang valid:

  • normal: Normal

  • spam: Spam

  • ad: Iklan

  • politics: Konten sensitif politik

  • terrorism: Terorisme

  • abuse: Pelecehan

  • porn: Porno

  • flood: Omong kosong

  • contraband: Barang terlarang

  • meaningless: Tidak berarti

Suggestion

String

Tindakan yang disarankan. Nilai yang valid:

  • pass: Hasil normal. Tidak diperlukan tindakan lebih lanjut.

  • review: Hasil tidak pasti. Diperlukan tinjauan manual.

  • block: Konten tidak sesuai. Hapus konten atau batasi visibilitas publiknya.

Rate

Float

Skor kepercayaan. Rentang: 0 hingga 100.

Catatan

Nilai ini hanya untuk referensi. Jangan gunakan nilai ini dalam logika bisnis Anda. Gunakan hasil Label untuk menentukan apakah konten tidak sesuai.

Details

JSONArray

Detail audio yang ditranskripsi. Array berisi satu atau lebih elemen, dan setiap elemen sesuai dengan satu kalimat. Untuk struktur, lihat Detail.

Detail

Parameter

Type

Description

StartTime

Int

Stempel waktu awal kalimat, dalam satuan detik.

EndTime

Int

Stempel waktu akhir kalimat, dalam satuan detik.

Text

String

Teks yang ditranskripsi.

Label

String

Kategori hasil deteksi. Nilai yang valid:

  • normal: Normal

  • spam: Spam

  • ad: Iklan

  • politics: Konten sensitif politik

  • terrorism: Terorisme

  • abuse: Pelecehan

  • porn: Porno

  • flood: Omong kosong

  • contraband: Barang terlarang

  • meaningless: Tidak berarti

Contoh

{
  "DomainName": "example.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "5d9747eba39b44769852d276f9ff****",
  "Timestamp": 1572248095,
  "Result": [
    {
      "Scene": "antispam",
      "Label": "ad",
      "Suggestion": "block",
      "Rate": 99.91,
      "Details": [
        {
          "StartTime": 1572248023,
          "EndTime": 1572248040,
          "Text": "The hotel offers 120 days of free accommodation. It can be shared with friends and family. Visit the reception center at No. 96 Tuanjie Street, Mangshi. Hotline: 2285699.",
          "Label": "ad"
        },
        {
          "StartTime": 1572248040,
          "EndTime": 1572248070,
          "Text": "Discover a rare collection of classic villas nestled in the heart of the Hot Spring Resort Town. Located adjacent to the prestigious Longduo Hot Springs and the historic Lianghe Golden Pagoda, this is where luxury meets nature.",
          "Label": "normal"
        },
        {
          "StartTime": 1572248072,
          "EndTime": 1572248077,
          "Text": "Joyful times and cozy days, made all the more carefree with your beautiful company.",
          "Label": "normal"
        },
        {
          "StartTime": 1572248078,
          "EndTime": 1572248086,
          "Text": "fme043 A little break from the hustle with cozy music and movies.",
          "Label": "normal"
        }
      ]
    }
  ]
}

Callback pemulihan bencana aliran ganda

Callback ini memberi tahu Anda ketika terjadi pergantian aliran untuk failover.

Konfigurasi konsol

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Callbacks.

  3. Pilih Ingest Domain untuk dikonfigurasi.

  4. Di tab Callback Settings, aktifkan sakelar Dual-stream Disaster Recovery Callbacks dan konfigurasikan URL callback.

  5. Klik OK.

Parameter callback

Parameter

Description

action

Jenis event. Nilai tetap: multistream_set_master_result

domain

Domain ingest.

appname

AppName dari aliran.

streamname

Nama aliran.

upstreamsequence

Identifikasi aliran utama setelah pergantian.

upstreamip

Alamat IP klien yang menerbitkan aliran utama setelah pergantian.

upstreamtime

Waktu mulai ingest aliran utama setelah pergantian. Ini adalah stempel waktu UNIX dalam satuan detik.

changereason

Alasan alih bencana.

changetime

Waktu terjadinya pergantian aliran. Ini adalah stempel waktu UNIX dalam satuan detik.

time

Waktu saat notifikasi callback dihasilkan. Ini adalah stempel waktu UNIX dalam satuan detik.

Contoh

{
  "action": "multistream_set_master_result",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "streamname": "liveStream****",
  "upstreamsequence": "main",
  "upstreamip": "203.**.***.10",
  "upstreamtime": 17*****710,
  "changereason": "merge_cut_manually",
  "changetime": 17*****705,
  "time": 17*****706
}

Otentikasi callback

ApsaraVideo Live mendukung otentikasi callback untuk event ingest aliran, perekaman, snapshot, dan pemulihan bencana aliran ganda. Saat diaktifkan, otentikasi bekerja sebagai berikut:

ApsaraVideo Live menyertakan header ALI-LIVE-TIMESTAMP dan ALI-LIVE-SIGNATURE dalam permintaan callback-nya, sehingga server penerima Anda dapat memverifikasi bahwa permintaan callback tersebut autentik dan tidak dimanipulasi.

Perhitungan ALI-LIVE-SIGNATURE
ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)
MD5CONTENT=Domain|ALI-LIVE-TIMESTAMP Value|Auth KEY

di mana:

  • Domain: Sumber domain bervariasi berdasarkan jenis callback:

    • Untuk callback ingest aliran dan pemulihan bencana aliran ganda: Gunakan domain ingest tempat URL callback dikonfigurasi.

    • Untuk callback perekaman dan snapshot: Gunakan domain dari URL callback. Misalnya, jika URL callback adalah https://learn.aliyundoc.com/your/callback, nilai domain adalah learn.aliyundoc.com.

  • ALI-LIVE-TIMESTAMP: Stempel waktu UNIX saat permintaan dikirim. Satuan: detik.

  • Auth KEY: Kunci otentikasi yang dikonfigurasi untuk URL callback yang sesuai.

Otentikasi server penerima

Saat menerima pesan callback, server penerima pesan callback menentukan domain callback berdasarkan jenis callback. Server kemudian menggabungkan domain callback, nilai ALI-LIVE-TIMESTAMP, dan kunci otentikasi, menghitung hash MD5 dari string ini, lalu membandingkan nilai hash yang dihitung dengan nilai header ALI-LIVE-SIGNATURE dalam permintaan. Jika nilai-nilai tersebut tidak cocok, permintaan tidak sah.

Rekaman callback

Konsol ApsaraVideo Live mendukung peninjauan riwayat dan muatan event callback ingest dan perekaman siaran langsung. Jenis callback lainnya tidak didukung.

Batasan

  1. Konfigurasi callback baru atau yang diperbarui memerlukan waktu hingga 5 menit untuk berlaku. Setelah berlaku, rekaman callback akan muncul seperti yang diharapkan.

  2. Hingga 1.000 rekaman callback dari 7 hari terakhir tersedia.

Langkah-langkah

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, klik Feature Management > Callbacks.

  3. Pilih domain ingest atau domain streaming tempat URL callback dikonfigurasi.

  4. Di tab Callback Records, pilih Stream Ingest Callbacks atau Recording Callbacks.

  5. Anda dapat memfilter rekaman callback berdasarkan rentang waktu, AppName, dan StreamName.