Mengintegrasikan API distribusi musik berarti menghubungkan sistem Anda sendiri ke sebuah pipeline yang memasukkan katalog, memvalidasi metadatanya, mengirim rilis ke platform streaming, dan membaca kembali data royalti serta analitik. Anda membuat label, rilis, dan track melalui panggilan HTTP alih-alih formulir web, mengirimkan setiap rilis untuk divalidasi, memicu pengiriman ke DSP, lalu menarik kembali data stream dan laporan untuk direkonsiliasi dengan catatan Anda sendiri. Panggilan itu sendiri adalah bagian yang mudah. Pekerjaan sebenarnya adalah memodelkan metadata musik dengan benar, menangani tahapan asinkron, dan mempersiapkan diri untuk hari ketika sebuah pengiriman kembali dengan status ditolak.
Panduan ini membahas integrasi tersebut dalam urutan yang sebenarnya akan Anda bangun: autentikasi, membuat dan mengirim rilis, menangani validasi dan error, lalu membaca kembali data uang dan angka-angkanya. Sketsa endpoint di bawah ini menggunakan API publik LabelGrid, tetapi bentuknya berlaku untuk sebagian besar platform distribusi. Kolom, parameter, dan kode error yang tepat ada di dokumentasi API publik, jadi ini adalah peta, bukan referensi kolom demi kolom.
Apa Sebenarnya yang Dilakukan API Distribusi Musik?
API distribusi mengekspos siklus hidup rilis sebagai endpoint. Ada empat tahap, dan setiap integrasi melewatinya dalam urutan yang sama. Pertama, pemasukan katalog: Anda membuat label, rilis, dan track yang membentuk katalog Anda, lalu melampirkan metadata dan audionya. Kedua, validasi: Anda memeriksa rilis terhadap aturan platform sebelum dikirim ke mana pun. Ketiga, pengiriman: Anda mendistribusikan rilis yang sudah divalidasi ke layanan dan platform streaming. Keempat, pembacaan kembali: Anda menarik data analitik dan laporan royalti sehingga sistem Anda sendiri mengetahui apa yang terjadi setelah musik tersebut tayang.
Di balik pengiriman ada DDEX, standar industri untuk mendeskripsikan sebuah rilis beserta audionya agar dapat dimasukkan oleh platform. Anda hampir tidak pernah menyentuh DDEX secara langsung. Platform menghasilkannya dari rilis yang Anda bangun melalui API dan mengirimkannya ke setiap DSP atas nama Anda. Itulah inti dari menggunakan API distribusi alih-alih mengintegrasikan setiap platform satu per satu: satu model rilis masuk, pengiriman yang sesuai DDEX ke semua DSP utama keluar. API distribusi LabelGrid mencakup keempat tahap ini, dari pemasukan katalog hingga laporan, dalam satu permukaan yang terautentikasi.
Endpoint yang akan sering Anda gunakan berpadanan langsung dengan tahap-tahap tersebut:
GET /api/public/me # verifikasi token, lihat siapa Anda
GET /api/public/releases # daftar katalog Anda
POST /api/public/releases # buat rilis (ingest)
POST /api/public/releases/{id}/validate # periksa rilis terhadap aturan platform
POST /api/public/releases/{id}/distribute # kirim ke DSP
GET /api/public/analytics # data stream dan pendengar
GET /api/public/statements # laporan royalti
Anggap daftar itu sebagai kerangka dari seluruh integrasi. Semua hal lainnya adalah metadata, retry, dan rekonsiliasi yang menempel pada ketujuh panggilan tersebut.
Bagaimana Cara Melakukan Autentikasi?
Autentikasi menggunakan bearer token pada setiap request. Anda mendaftar, membuat kredensial API, lalu mengirimkannya di header Authorization. Tidak ada panggilan demo yang perlu dijadwalkan dan tidak ada gerbang sales yang harus dilewati lebih dulu. Pendaftaran bersifat self-service, dokumentasinya publik, dan begitu paket API Anda aktif, Anda bisa langsung membuat panggilan terautentikasi di sore hari yang sama. Token dibuat dari pengaturan akun Anda, dan Anda dapat secara opsional membatasi sebuah token hanya untuk IP yang dikenal. Panggilan pertama yang perlu dilakukan adalah GET /api/public/me, yang memberi tahu Anda bahwa token tersebut valid dan akun mana yang memilikinya:
curl https://api.labelgrid.com/api/public/me \
-H "Authorization: Bearer <token>"
Pastikan panggilan ini mengembalikan respons yang bersih sebelum Anda membangun hal lainnya. Panggilan me yang berhasil membuktikan bahwa kredensial, base URL, dan HTTP client Anda semuanya benar, sehingga kegagalan berikutnya pasti terkait rilis, bukan infrastruktur dasar. Simpan token sebagai rahasia, jangan pernah di source control atau di dalam client bundle, dan perlakukan seperti password: rotasi jika bocor, dan gunakan kredensial terpisah untuk sandbox dan production sehingga sebuah test run tidak akan pernah menyentuh katalog live. Jenis token yang tepat, perilaku kedaluwarsa, dan header tambahan apa pun didokumentasikan di referensi API; jangan menebaknya, baca sekali di sana lalu bungkus dalam client kecil.
Bagaimana Cara Membuat dan Mengirim Rilis?
Tiga panggilan membawa sebuah rilis dari nol hingga live. Anda membuatnya, memvalidasinya, lalu mendistribusikannya:
POST /api/public/releases # 1. buat rilis + metadatanya
POST /api/public/releases/{id}/validate # 2. periksa terhadap aturan platform
POST /api/public/releases/{id}/distribute # 3. kirim ke DSP
Tahap pembuatan adalah tempat Anda menghabiskan sebagian besar usaha engineering. Sebuah rilis membawa banyak metadata: judul, artis dan kontributor, tanggal rilis, label, artwork, serta track-track dengan judul, kredit, dan audionya masing-masing. Kolom yang tepat, format, dan mana saja yang wajib diisi semuanya ada di dokumentasi, dan Anda sebaiknya memodelkannya secara persis, bukan sekadar mendekati. Metadata yang buruk adalah alasan paling umum sebuah rilis gagal di kemudian hari, jadi validasi input Anda sendiri sebelum benar-benar mengirimkannya. Periksa dimensi artwork, pastikan setiap track memiliki audio dan ISRC, dan normalisasi nama artis di sisi Anda, karena menangkap masalah di kode Anda jauh lebih murah daripada menangkapnya lewat penolakan platform.
Buatlah proses pembuatan bersifat idempotent. Panggilan jaringan bisa gagal di tengah jalan, dan Anda tidak ingin sebuah retry menghasilkan salinan kedua dari rilis yang sama. Gunakan idempotency key atau periksa keberadaan rilis yang sudah ada berdasarkan referensi Anda sendiri sebelum membuat yang baru, sehingga request yang diulang mengembalikan rilis yang sama, bukan menduplikasinya. Ini paling penting saat impor katalog secara massal, di mana koneksi yang tidak stabil pada ribuan rilis hampir pasti akan memicu sebuah retry.
Pengiriman bersifat asinkron. Saat Anda memanggil distribute, Anda sedang mengantrekan sebuah job, bukan mendapatkan jawaban instan. API menerima request tersebut, lalu platform mengemas DDEX dan mengirimkannya ke setiap platform di latar belakang, yang bisa memakan waktu. Rancang sistem Anda untuk itu sejak awal: kirim panggilan distribute, catat bahwa Anda sudah memintanya, lalu lakukan polling pada rilis tersebut untuk status pengirimannya alih-alih menunggu respons secara blocking. Kode apa pun yang mengasumsikan distribusi selesai secara sinkron akan gagal pada pengiriman nyata pertama yang memakan waktu lebih dari satu detik.
Bagaimana Cara Menangani Validasi dan Error?
Validasi menjadi tahap terpisah dengan alasan yang jelas. Memanggil POST /api/public/releases/{id}/validate memeriksa sebuah rilis terhadap persyaratan platform dan mengembalikan apa yang salah sebelum Anda berkomitmen untuk mengirimkannya. Selalu validasi sebelum mendistribusikan. Rilis yang gagal validasi tetapi tetap dikirim akan membuang satu siklus pengiriman dan, lebih buruk lagi, bisa berujung pada penolakan di platform yang jauh lebih lambat dan rumit untuk diurai dibandingkan error validasi yang sudah Anda perbaiki dari awal. Bangun loop-nya sebagai create, validate, perbaiki, validate lagi, dan baru distribusikan begitu validasi bersih.
Pisahkan penanganan error berdasarkan kelasnya, karena kedua kelas ini membutuhkan respons yang berlawanan. Error 4xx adalah kesalahan Anda: kolom yang salah format, ISRC yang hilang, artwork yang terlalu kecil. Mengulanginya tanpa perubahan hanya akan gagal lagi, jadi tampilkan errornya, perbaiki datanya, lalu kirim ulang. Error 5xx atau timeout jaringan bersifat sementara: coba ulang, tetapi dengan exponential backoff dan batas maksimum, bukan loop ketat yang terus menghantam API. Gabungkan ini dengan idempotency key dari tahap pembuatan sehingga sebuah retry setelah timeout tidak akan tidak sengaja menduplikasi pekerjaan. Baca kode error sebenarnya beserta artinya dari dokumentasi alih-alih menebaknya, lalu petakan masing-masing ke tindakan yang jelas di sistem Anda sendiri: retry, perbaiki-dan-kirim-ulang, atau eskalasi ke manusia.
Catat setiap request dan response dengan sebuah correlation id. Ketika sebuah rilis macet tiga minggu dari sekarang, log tentang apa yang Anda kirim dan apa yang kembali adalah pembeda antara perbaikan lima menit dan satu sore penuh menebak-nebak.
Bagaimana Cara Membaca Kembali Royalti dan Analitik?
Distribusi hanyalah separuh dari loop-nya. Setelah musik tayang, Anda membaca kembali performa dan pendapatannya sehingga sistem Anda mencerminkan kenyataan. Dua endpoint mencakup ini:
GET /api/public/analytics # data stream, pendengar, dan performa
GET /api/public/statements # laporan royalti dan pendapatan
Analytics untuk kebutuhan dasbor dan pengambilan keputusan: data stream, data pendengar, dan bagaimana performa sebuah rilis di berbagai platform. Statements untuk kebutuhan akuntansi: berapa yang sebenarnya diperoleh dalam suatu periode, siap direkonsiliasi dengan pembagian dan pembayaran yang Anda utang ke artis. Tarik keduanya secara terjadwal, simpan di database Anda sendiri yang terkait dengan katalog Anda, dan lakukan rekonsiliasi alih-alih mempercayai satu kali pengambilan data saja. Data pelaporan mengendap seiring waktu karena platform kadang melaporkan terlambat, jadi perlakukan setiap pengambilan sebagai gambaran terbaru, bukan gambaran final, dan biarkan pengambilan berikutnya mengoreksi estimasi sebelumnya.
Perkirakan bahwa respons-respons ini dipaginasi, dan telusuri hingga tuntas alih-alih hanya membaca halaman pertama lalu berhenti. Untuk kesegaran data, tentukan antara polling dan webhook berdasarkan kebutuhan Anda. Job rekonsiliasi tiap malam sudah cukup dengan polling. Jika Anda perlu bereaksi tepat saat sebuah pengiriman tayang atau sebuah statement muncul, dan webhook tersedia, berlangganan event tersebut alih-alih melakukan polling setiap menit. Parameter query, rentang tanggal, dan bentuk respons yang tepat untuk kedua endpoint ada di referensi API sehingga Anda dapat menarik persis jendela waktu yang Anda butuhkan.
Bagaimana Sebaiknya Anda Menguji di Sandbox Sebelum Production?
Jangan pernah membangun integrasi distribusi langsung terhadap production. LabelGrid menyediakan environment sandbox di samping dokumentasi publiknya justru agar Anda dapat menjalankan seluruh siklus create, validate, dan distribute tanpa mengirim apa pun ke platform sungguhan. Hubungkan integration test Anda ke sandbox sejak hari pertama, menggunakan kredensial terpisah, sehingga sebuah test run tidak akan pernah tidak sengaja mengirim rilis setengah jadi ke Spotify.
Uji dengan data adversarial, bukan hanya jalur yang bersih dan mulus. Beri sandbox rilis-rilis dengan ISRC yang hilang, artwork berukuran terlalu kecil, nama artis kosong, dan tanggal yang salah, lalu pastikan logika validasi-dan-retry Anda bertindak benar untuk masing-masing kasus. Rilis yang bersih membuktikan bahwa pipeline-nya terhubung; rilis yang rusak membuktikan bahwa penanganan error Anda benar-benar berfungsi, dan penanganan error itulah tempat katalog sungguhan hidup. Jadikan siklus sandbox bagian dari test suite Anda sehingga setiap perubahan pada client Anda diuji end to end sebelum dirilis.
Apa yang Harus Anda Bangun Lebih Dulu?
Bangun walking skeleton sebelum membangun apa pun yang lebih luas. Tujuan milestone pertama adalah satu rilis yang melewati seluruh loop di sandbox, dari awal hingga akhir, sehingga Anda sudah membuktikan seluruh jalurnya sebelum mengoptimalkan bagian mana pun darinya. Urutannya:
- Lakukan autentikasi dan pastikan
GET /api/public/memengembalikan respons dengan bersih. - Buat satu rilis dengan metadata berbentuk realistis melalui
POST /api/public/releases. - Validasi rilis tersebut, baca kegagalannya, perbaiki datanya, dan validasi terus hingga berhasil.
- Distribusikan di sandbox dan lakukan polling pada rilis hingga statusnya melaporkan pengiriman selesai.
- Baca kembali analitik dan sebuah statement, lalu simpan keduanya terkait dengan katalog Anda.
Setelah skeleton itu hijau, perluas secara sengaja: pemasukan katalog secara massal dengan idempotency, backoff dan pengarahan error yang tepat, sinkronisasi analitik dan statement terjadwal, serta webhook jika Anda membutuhkan latensi yang lebih rendah. Tahan godaan untuk membangun seluruh importer katalog sebelum satu pun rilis pernah tayang di sandbox. Integrasi yang rilis tepat waktu adalah integrasi yang berhasil membawa satu rilis sampai tuntas terlebih dahulu, baru kemudian menskalakan pola yang sudah terbukti berfungsi.
Dua hal menentukan seberapa mulus sisa pembangunannya. Membuat model metadata Anda benar, sehingga rilis lolos validasi sejak percobaan pertama, dan memperlakukan pengiriman serta pelaporan sebagai proses asinkron sejak awal, sehingga tidak ada bagian kode Anda yang mengasumsikan jawaban instan. Selesaikan dua hal itu dengan benar, dan integrasi API distribusi menjadi masalah engineering yang sudah dipahami dengan baik. Jika Anda sedang mengevaluasi platform, ringkasan developer dan dokumentasi white-label and API mencakup apa yang diekspos oleh permukaannya, dan referensi endpoint tersedia secara publik di api.labelgrid.com/docs/api.
Integrasikan distribusi dengan cara yang diharapkan developer
API publik dengan environment sandbox, pendaftaran self-service, dan pengiriman yang sesuai DDEX ke semua DSP utama. Baca dokumentasinya, bangun di sandbox, lalu rilis ketika Anda sudah siap.
Lihat Paket APIPertanyaan yang Sering Diajukan
Apa itu API distribusi musik?
API distribusi musik adalah antarmuka terprogram untuk mengirim rekaman ke layanan streaming dan platform tanpa formulir web. Anda membuat label, rilis, dan track melalui HTTP, mengirimkan setiap rilis untuk divalidasi, memicu pengiriman ke DSP, lalu membaca kembali data stream, data pendengar, dan laporan royalti ke sistem Anda sendiri. Ini adalah pipeline distribusi yang sama dengan yang dijalankan oleh dasbor, tetapi diekspos sebagai endpoint sehingga software Anda dapat menjalankannya.
Apakah Anda perlu memahami DDEX untuk melakukan integrasi?
Tidak, untuk memulai Anda tidak memerlukannya. DDEX adalah standar metadata dan audio yang digunakan distributor untuk mengirim rilis ke platform, dan platform yang baik akan menghasilkan DDEX tersebut untuk Anda dari rilis yang dibuat melalui API. Anda bekerja dengan rilis, track, dan kolom metadata; platform menangani pengemasan DDEX di balik panggilan pengiriman. Memahami DDEX membantu Anda mengerti mengapa metadata tertentu diwajibkan, tetapi Anda tidak perlu menulisnya secara manual.
Berapa lama waktu yang dibutuhkan untuk integrasi API distribusi musik?
Tergantung pada cakupannya. Integrasi minimal yang membuat rilis, memvalidasinya, dan mengirimkannya bisa berjalan di sandbox hanya dalam beberapa hari. Integrasi produksi penuh dengan sinkronisasi katalog, penanganan retry, rekonsiliasi analitik, dan impor laporan royalti membutuhkan waktu lebih lama, karena sebagian besar usaha ada pada pemodelan metadata yang benar serta penanganan alur asinkron dan error, bukan pada masing-masing panggilan itu sendiri.
Apa saja yang bisa Anda lakukan dengan API distribusi?
Memasukkan katalog, memvalidasi rilis, mengirim dan mendistribusikan ke DSP, analitik, serta laporan royalti. Dalam praktiknya, ini berarti membuat dan memperbarui katalog Anda, memeriksa rilis terhadap aturan platform sebelum mengirimkannya, mendistribusikannya, lalu menarik kembali data stream dan pendapatan untuk direkonsiliasi dengan pembukuan Anda sendiri.
Sebaiknya menggunakan polling atau webhook untuk status pengiriman?
Kedua pendekatan sama-sama valid, dan mana yang tepat tergantung pada apa yang diekspos oleh platform Anda serta seberapa cepat Anda perlu bereaksi. Webhook mengirimkan perubahan status kepada Anda begitu terjadi dan menghindari polling terus-menerus; polling lebih sederhana untuk dibangun dan cocok untuk proses latar belakang yang melakukan rekonsiliasi secara berkala. Banyak tim memulai dengan polling untuk pengiriman dan analitik, lalu memindahkan event yang sensitif terhadap latensi ke webhook bila tersedia.
Apakah tersedia sandbox untuk menguji API distribusi?
Ya. LabelGrid menyediakan environment sandbox di samping dokumentasi API publiknya sehingga Anda dapat menjalankan seluruh siklus create, validate, dan distribute sebelum menyentuh production. Uji dengan metadata yang berbentuk realistis namun adversarial, bukan hanya data yang bersih, sehingga penanganan error Anda sudah teruji sebelum rilis sungguhan bergantung padanya.