Rotas principais
GET /health
GET /search?q=nome&limit=10
GET /info?url=URL_DO_YOUTUBE
GET /stream?url=URL_DO_YOUTUBE
Resultados
Pesquise para comecar.
Documentacao
Base URL: https://music.doiska.com.br
GET /health
GET /search?q=nome&limit=10
GET /info?url=URL_DO_YOUTUBE
GET /stream?url=URL_DO_YOUTUBE
local API = "https://music.doiska.com.br"
function urlEncode(text)
text = tostring(text or "")
text = text:gsub("\n", "\r\n")
text = text:gsub("([^%w _%%%-%.~])", function(c)
return string.format("%%%02X", string.byte(c))
end)
return text:gsub(" ", "+")
end
function buscarMusicas(player, query)
local url = API .. "/search?q=" .. urlEncode(query) .. "&limit=5"
fetchRemote(url, function(body, errorCode)
if errorCode ~= 0 then
outputChatBox("Erro ao buscar musicas.", player, 255, 80, 80)
return
end
local data = fromJSON(body)
if not data or not data.results or not data.results[1] then
outputChatBox("Nenhuma musica encontrada.", player, 255, 180, 80)
return
end
local musica = data.results[1]
outputChatBox("Encontrado: " .. musica.title, player, 80, 255, 160)
end)
end
local API = "https://music.doiska.com.br"
function tocarMusica(videoUrl)
local stream = API .. "/stream?url=" .. urlEncode(videoUrl)
local sound = playSound(stream, false)
if sound then
setSoundVolume(sound, 0.7)
end
end
addCommandHandler("musica", function(_, ...)
local query = table.concat({...}, " ")
if query == "" then
outputChatBox("Use: /musica nome da musica", 255, 180, 80)
return
end
local url = API .. "/search?q=" .. urlEncode(query) .. "&limit=1"
fetchRemote(url, function(body, errorCode)
if errorCode ~= 0 then return end
local data = fromJSON(body)
local musica = data and data.results and data.results[1]
if not musica then return end
tocarMusica(musica.url)
end)
end)