API lirik bertimestamp
Penerangan endpoint
Lirik bertimestamp mengambil cap masa pada peringkat perkataan bagi sebuah lagu, untuk memaparkan lirik secara segerak.
Endpoint: POST /api/lyrics/timeline
Pengebilan: Percuma (pertanyaan baca sahaja; tiada caj dikenakan dan tiada tugasan penjanaan dicipta).
Format pemulangan: tatasusunan garis masa dipulangkan terus — tiada pembalut data / success; selepas dihurai ia hanyalah tatasusunan.
Parameter permintaan
Headers
| Parameter | Jenis | Wajib | Nota |
|---|---|---|---|
| Authorization | string | ya | Bearer YOUR_API_KEY |
| Content-Type | string | ya | application/json |
Parameter body
| Parameter | Jenis | Wajib | Lalai | Nota |
|---|---|---|---|---|
| model | string | tidak | suno-v6 | Nama model untuk pelanggan: suno-v6, suno-v6-wild atau suno-v6-mini |
| song_id | string | ya | - | ID lagu |
Contoh permintaan
curl -X POST https://www.suno-api.io/api/lyrics/timeline \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"song_id": "clip_id"
}'
Respons
Di bawah ialah respons sebenar daripada produksi bagi lagu berdurasi 189.6 saat dalam suno-v6 (panggilan itu mempunyai 69 segmen; di sini hanya bahagian awal dan akhir disimpan):
[
{
"word": "[Intro]\n\n\n[",
"start_s": 15,
"end_s": 15.04277,
"success": true,
"p_align": 0.99
},
{
"word": "Instrumental: ",
"start_s": 15.04704,
"end_s": 15.10264,
"success": true,
"p_align": 0.99
},
{
"word": "End]\n\n\n",
"start_s": 189.16974,
"end_s": 189.654,
"success": true,
"p_align": 0.99
}
]
Rujukan medan
| Medan | Jenis | Nota |
|---|---|---|
word |
string | Teks segmen ini; ia membawa pemisah baris sendiri: satu baris lirik bagi setiap segmen dengan \n di hujung segmen dan \n\n antara perenggan, jadi wujud entri yang mengandungi ruang sahaja |
start_s |
number | Masa mula segmen dalam saat (dengan perpuluhan) |
end_s |
number | Masa tamat segmen dalam saat. end_s segmen terakhir hampir sama dengan tempoh lagu |
success |
boolean | Sama ada segmen ini berjaya dijajarkan |
p_align |
number | Keyakinan penjajaran; daripada ukuran kekal pada 0.99 |
Perkara yang perlu diberi perhatian
- Jangan cari pembalut. Responsnya ialah tatasusunan itu sendiri, bukan
{"data": ...}, dan tiada medansuccess. - Mungkin tiada segmen di awal. Bagi lagu yang hanya ada pengenalan, ukuran menunjukkan segmen pertama hanya muncul pada saat ke-15, dan
start_stidak dijamin bermula dari0; untuk karaoke, uruskan sendiri ruang kosong di awal. - Penanda instrumental dan struktur juga dipulangkan, dalam bentuk seperti
[Intro],[Verse 1],Instrumental: soft arpeggiating piano, …dan[End], juga dengan masa perkataan demi perkataan. Sebelum membina sari kata lirik, tapis segmen ini berdasarkan[di awal atau perkataanInstrumental; jika tidak, penerangan susunan muzik akan dipaparkan sebagai lirik. - Ia per perkataan, bukan per baris. Baris lirik yang sama sering dipecahkan kepada beberapa segmen dan perlu digabungkan menjadi baris mengikut
\n; masa sesuatu baris ialahstart_ssegmen pertamanya. - Bilangan segmen bergantung pada lagu; jangan andaikan bilangan tetap (ukuran: lagu 189.6 saat mempunyai 69 segmen dan badan respons sekitar 6.5 KB).
Menjana fail .lrc
Endpoint ini hanya memulangkan data garis masa; ia tidak memulangkan fail secara terus. Jika perlu .lrc, bina baris daripada start_s yang dipulangkan dalam format [mm:ss.cc] (medan word membawa pemisah baris sendiri — pecahkan mengikut baris dan langkau baris kosong). Untuk contoh, lihat "Cara mendapatkan lirik bertimestamp (.lrc)" dalam API muat turun dan pratonton media lagu.
Di bawah ialah versi penuh dengan penapisan penanda instrumental/struktur (satu segmen satu baris, sesuai untuk memeriksa bentuk data dahulu):
import re
SKIP = re.compile(r"^\[.*\]$|^Instrumental:")
def to_lrc(segments):
lines = []
for seg in segments:
if not seg.get("success", True):
continue
text = (seg.get("word") or "").strip()
if not text or SKIP.match(text):
continue
cs = int(max(0.0, float(seg["start_s"])) * 100 + 0.5)
lines.append(f"[{cs // 6000:02d}:{(cs % 6000) // 100:02d}.{cs % 100:02d}]{text}")
return "\n".join(lines)
Nota keserasian
Dokumentasi terdahulu menggunakan contoh objek pembalut { success, song_id, lyrics: [...] }. Dokumentasi semasa mengambil tatasusunan garis masa yang dipulangkan terus sebagai rujukan.
Dapatkan kunci API
Cipta kunci API dalam konsol selepas mendaftar. Setiap penjanaan berharga 0.6 ¥ dan mengembalikan 2 lagu, muat turun tanpa had dan nombor telefon tidak diperlukan.
Dapatkan kunci API Kembali ke gambaran