const axios = require("axios") async function soundcloud(q) { try { const baseUrl = "https://api-mobi.soundcloud.com/search" const params = { q: q, client_id: "KKzJxmw11tYpCs6T24P4uUYhqmjalG6M", stage: "", } const headers = { Accept: "application/json, text/javascript, */*; q=0.1", "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36", Referer: `https://m.soundcloud.com/search?q=${encodeURIComponent(q)}`, } const response = await axios({ method: "get", url: baseUrl, params: params, headers: headers, timeout: 30000, }) const data = response.data.collection || [] if (!data.length) throw new Error("No result found") const result = data.map((item) => ({ title: item.title, genre: item.genre, created_at: item.created_at, duration: item.duration, permalink: cleanFilename(item.permalink), comment_count: item.comment_count, artwork_url: item.artwork_url, permalink_url: item.permalink_url, playback_count: item.playback_count, user: item.user ? item.user.username : null, })) return result } catch (error) { console.error("SoundCloud API Error:", error.message) throw new Error("Failed to fetch SoundCloud results") } } function cleanFilename(filename) { return filename .replace(/[<>:"/\\|?*]/g, "_") .replace(/-/g, " ") .replace(/\s+/g, " ") .trim() } module.exports = soundcloud