{"schema":1,"updatedAt":"2026-05-03T22:14:09Z","sources":[{"id":"kugou","name":"酷狗音乐","version":6,"icon":"waveform","color":"#2196F3","rateLimit":300,"headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36","Referer":"https://www.kugou.com/"},"capabilities":["metadata","cover","lyrics","lyricsWordLevel"],"sslTrustDomains":["kugou.com","mobilecdn.kugou.com","imge.kugou.com","krcs.kugou.com","myqcloud.com"],"search":{"url":"http://mobilecdn.kugou.com/api/v3/search/song","method":"GET","params":{"keyword":"{{query}}","page":"1","pagesize":"{{limit}}","showtype":"1"},"script":"var data = response.data || {}; var info = data.info || []; var results = []; for (var i = 0; i < info.length; i++) { var s = info[i]; var hash = s.hash || ''; var albumId = String(s.album_id || '0'); var tp = s.trans_param || {}; var cover = tp.union_cover || ''; if (cover) cover = cover.replace('{size}', '150'); var eid = [hash, albumId, s.songname||'', s.singername||'', String(s.duration||0), cover].join('|'); results.push({id: eid, title: s.songname||'', artist: s.singername||'', album: s.album_name, durationMs: (s.duration||0)*1000, coverUrl: cover||null}); } return results;"},"detail":{"url":"http://mobilecdn.kugou.com/api/v3/search/song","method":"GET","params":{"keyword":"{{id}}","page":"1","pagesize":"1","showtype":"1"},"script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 6) return null; var cover = parts[5] || ''; if (cover) cover = cover.replace('/150/', '/400/'); return {title: parts[2], artist: parts[3]||null, coverUrl: cover||null};"},"cover":{"url":"http://mobilecdn.kugou.com/api/v3/search/song","method":"GET","params":{"keyword":"{{id}}","page":"1","pagesize":"1","showtype":"1"},"script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 6) return []; var cover = parts[5] || ''; if (!cover) return []; return [{coverUrl: cover.replace('/150/', '/400/'), thumbnailUrl: cover}];"},"lyrics":{"url":"http://krcs.kugou.com/search","method":"GET","params":{"ver":"1","man":"no","client":"mobi","keyword":"{{id[3]}} - {{id[2]}}","duration":"{{id[4]}}000","hash":"{{id[0]}}","appid":"3116","clientver":"11070"},"script":"var candidates = response.candidates || []; if (!candidates.length) return null; var list = []; for (var i = 0; i < candidates.length && list.length < 5; i++) { var c = candidates[i]; if (c.id && c.accesskey) list.push({lyricId: String(c.id), accessKey: String(c.accesskey)}); } if (!list.length) return null; return {_fetchEncryptedLyrics: true, vars: list};"}},{"id":"kuwo","name":"酷我音乐","version":1,"icon":"headphones","color":"#FF6600","rateLimit":300,"headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"},"capabilities":["metadata","cover","lyrics"],"sslTrustDomains":["kuwo.cn"],"search":{"url":"https://search.kuwo.cn/r.s","method":"GET","params":{"all":"{{query}}","ft":"music","itemset":"web_2013","client":"kt","pn":"0","rn":"{{limit}}","rformat":"json","encoding":"utf8"},"script":"var list = response.abslist || response.ABSLIST || []; var items = []; for (var i = 0; i < list.length; i++) { var s = list[i]; var rid = ''; if (s.MUSICRID) { rid = s.MUSICRID.replace('MUSIC_',''); } else if (s.DC_TARGETID) { rid = String(s.DC_TARGETID); } if (!rid) continue; var name = s.NAME || s.SONGNAME || s.name || ''; var artist = s.ARTIST || s.artist || ''; var album = s.ALBUM || s.album || ''; var albumId = s.ALBUMID || s.albumid || ''; var dur = parseInt(s.DURATION || s.duration || '0'); var pic = s.web_albumpic_short || s.albumpic || s.pic || ''; if (pic && pic.indexOf('http') !== 0) pic = 'https://img1.kuwo.cn/' + pic; var eid = [rid, name, artist, album, albumId, String(dur), pic].join('|'); items.push({id: eid, title: name, artist: artist||null, album: album||null, durationMs: dur*1000, coverUrl: pic||null}); } return items;"},"detail":{"url":"https://search.kuwo.cn/r.s","method":"GET","params":{"all":"{{id}}","ft":"music","itemset":"web_2013","client":"kt","pn":"0","rn":"1","rformat":"json","encoding":"utf8"},"script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 7) return null; var pic = parts[6] || ''; if (pic) pic = pic.replace('/120/', '/500/').replace('/300/', '/500/'); return {title: parts[1]||'', artist: parts[2]||null, album: parts[3]||null, coverUrl: pic||null};"},"cover":{"url":"https://example.com","method":"GET","script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 7) return []; var pic = parts[6] || ''; if (!pic) return []; var hd = pic.replace('/120/', '/500/').replace('/300/', '/500/'); return [{coverUrl: hd, thumbnailUrl: pic}];"},"lyrics":{"url":"https://m.kuwo.cn/newh5/singles/songinfoandlrc?musicId={{id}}","method":"GET","script":"var data = response.data || {}; var lrclist = data.lrclist || []; if (!lrclist.length) return null; var lines = []; for (var i = 0; i < lrclist.length; i++) { var l = lrclist[i]; var t = parseFloat(l.time || '0'); var min = Math.floor(t/60); var sec = t % 60; lines.push('[' + String(min).padStart(2,'0') + ':' + sec.toFixed(2).padStart(5,'0') + ']' + (l.lineLyric||'')); } return {lrcContent: lines.join('\\n')};"}},{"id":"migu","name":"咪咕音乐","version":2,"icon":"music.note.list","color":"#FF0654","rateLimit":300,"headers":{"User-Agent":"Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36","Referer":"https://music.migu.cn/"},"capabilities":["metadata","cover"],"search":{"url":"https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/search_all.do","method":"GET","params":{"ua":"Android_migu","version":"5.0.1","text":"{{query}}","pageNo":"1","pageSize":"{{limit}}","searchSwitch":"{\"song\":1}"},"script":"if (response.code !== '000000') return []; var sr = response.songResultData || {}; var list = sr.result || []; var items = []; for (var i = 0; i < list.length; i++) { var s = list[i]; var cid = s.copyrightId || s.id || ''; if (!cid) continue; var singers = s.singers || []; var artistName = singers.map(function(a){return a.name}).join(' / '); var albums = s.albums || []; var albumName = albums.length ? albums[0].name : null; var albumId = albums.length ? (albums[0].id||'') : ''; var imgs = s.imgItems || []; var cover = imgs.length ? imgs[0].img : ''; var eid = [cid, s.name||'', artistName, albumName||'', albumId, cover, '0'].join('|'); items.push({id: eid, title: s.name||'', artist: artistName||null, album: albumName, coverUrl: cover||null}); } return items;"},"detail":{"url":"https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/search_all.do","method":"GET","params":{"ua":"Android_migu","version":"5.0.1","text":"{{id}}","pageNo":"1","pageSize":"1","searchSwitch":"{\"song\":1}"},"script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 7) return null; var cover = parts[5] || ''; if (cover) cover = cover.replace('_120', '_500').replace('/120/', '/500/').replace('_400', '_800').replace('/400/', '/800/'); return {title: parts[1]||'', artist: parts[2]||null, album: parts[3]||null, coverUrl: cover||null};"},"cover":{"url":"https://example.com","method":"GET","script":"var parts = response._externalId ? response._externalId.split('|') : []; if (parts.length < 6) return []; var cover = parts[5] || ''; if (!cover) return []; var hd = cover.replace('_120', '_500').replace('/120/', '/500/').replace('_400', '_800').replace('/400/', '/800/'); return [{coverUrl: hd, thumbnailUrl: cover}];"}},{"id":"netease","name":"网易云音乐","version":5,"icon":"cloud","color":"#E60026","rateLimit":1000,"headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","Referer":"https://music.163.com/","Origin":"https://music.163.com"},"capabilities":["metadata","cover","lyrics","lyricsWordLevel"],"search":{"url":"https://music.163.com/api/search/get","method":"GET","params":{"s":"{{query}}","type":"1","limit":"{{limit}}","offset":"0"},"script":"var result=response.result||{};var songs=result.songs||[];var items=[];for(var i=0;i<songs.length;i++){var s=songs[i];if(!s.id)continue;var artists=s.artists||s.ar||[];var artistName=artists.map(function(a){return a.name}).join(' / ');var album=s.album||s.al||{};var albumName=album.name;var dur=s.duration||s.dt;var fallbackPicId=album.picId_str||(album.picId?String(album.picId):null);var marker='\"id\":'+String(s.id);var idx=responseText.indexOf(marker);var picId=fallbackPicId;if(idx>=0){var chunk=responseText.slice(Math.max(0,idx-800),idx);var matches=chunk.match(/\"picId\":(\\d+)/g);if(matches){for(var j=matches.length-1;j>=0;j--){var mm=matches[j].match(/(\\d+)/);if(mm&&mm[1]&&mm[1]!=='0'){picId=mm[1];break;}}}}var coverUrl=album.picUrl||album.blurPicUrl||nativeCoverUrl(picId);if(coverUrl&&coverUrl.indexOf('?param=')===-1)coverUrl=coverUrl+'?param=150y150';items.push({id:String(s.id),title:s.name||'',artist:artistName||null,album:albumName||null,durationMs:dur||null,coverUrl:coverUrl||null});}return items;"},"detail":{"url":"https://music.163.com/api/song/detail?ids=[{{id}}]&id={{id}}","method":"GET","script":"var songs=response.songs||[];if(!songs.length)return null;var s=songs[0];var artists=s.artists||[];var artistName=artists.map(function(a){return a.name}).join(' / ');var album=s.album||{};var picId=album.picId_str||album.picId||null;var picUrl=album.picUrl||album.blurPicUrl||nativeCoverUrl(picId);if(picUrl&&picUrl.indexOf('?param=')===-1)picUrl=picUrl+'?param=500y500';return {title:s.name||'',artist:artistName||null,album:album.name||null,year:album.publishTime?new Date(album.publishTime).getFullYear():null,coverUrl:picUrl||null,genres:s.genres||null};"},"cover":{"url":"https://music.163.com/api/song/detail?ids=[{{id}}]&id={{id}}","method":"GET","script":"var songs=response.songs||[];if(!songs.length)return [];var album=songs[0].album||{};var picId=album.picId_str||album.picId||null;var picUrl=album.picUrl||album.blurPicUrl||nativeCoverUrl(picId);if(!picUrl)return [];var thumb=picUrl.indexOf('?param=')===-1?picUrl+'?param=150y150':picUrl.replace(/\\?param=\\d+y\\d+$/,'?param=150y150');var full=picUrl.indexOf('?param=')===-1?picUrl+'?param=500y500':picUrl.replace(/\\?param=\\d+y\\d+$/,'?param=500y500');return [{coverUrl:full,thumbnailUrl:thumb}];"},"lyrics":{"url":"https://music.163.com/api/song/lyric?id={{id}}&lv=1&yv=1","method":"GET","script":"function fmt(ms){var s=ms/1000;var min=Math.floor(s/60);var sec=s-min*60;var ss=sec.toFixed(2);if(sec<10)ss='0'+ss;var mm=String(min);if(min<10)mm='0'+mm;return mm+':'+ss;}var lrc=response.lrc||{};var lrcText=lrc.lyric||'';var yrc=response.yrc||{};var yrcText=yrc.lyric||'';var result={};if(lrcText)result.lrcContent=lrcText;if(yrcText){var lines=yrcText.split('\\n');var out=[];var pattern=/\\((\\d+),(\\d+),\\d+\\)([^(]+)/g;for(var i=0;i<lines.length;i++){var line=lines[i].replace(/\\r$/,'');if(!line)continue;if(line.charAt(0)==='{')continue;var head=line.match(/^\\[(\\d+),(\\d+)\\]/);if(!head)continue;var lineStart=parseInt(head[1],10);var rest=line.substring(head[0].length);var pieces=[];var m;pattern.lastIndex=0;while((m=pattern.exec(rest))!==null){pieces.push({start:parseInt(m[1],10),dur:parseInt(m[2],10),text:m[3]});}if(!pieces.length)continue;var s='['+fmt(lineStart)+']';for(var j=0;j<pieces.length;j++){s+='<'+fmt(pieces[j].start)+'>'+pieces[j].text;}var lineEnd=pieces[pieces.length-1].start+pieces[pieces.length-1].dur;s+='<'+fmt(lineEnd)+'>';out.push(s);}if(out.length)result.wordLevelLrc=out.join('\\n');}if(!result.lrcContent&&!result.wordLevelLrc)return null;return result;"}},{"id":"qqmusic","name":"QQ音乐","version":1,"icon":"music.note","color":"#31C27C","rateLimit":500,"headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","Referer":"https://y.qq.com/","Origin":"https://y.qq.com"},"capabilities":["metadata","cover","lyrics"],"search":{"url":"https://u.y.qq.com/cgi-bin/musicu.fcg","method":"POST","headers":{"Content-Type":"application/json"},"bodyTemplate":"{\"comm\":{\"ct\":11,\"cv\":\"1003006\"},\"req_1\":{\"module\":\"music.search.SearchCgiService\",\"method\":\"DoSearchForQQMusicDesktop\",\"param\":{\"query\":\"{{query}}\",\"page_num\":1,\"num_per_page\":{{limit}},\"search_type\":0}}}","script":"var req = response.req_1 || {}; var data = req.data || {}; var body = data.body || {}; var song = body.song || {}; var list = song.list || []; var items = []; for (var i = 0; i < list.length; i++) { var s = list[i]; var mid = s.mid || ''; if (!mid) continue; var singers = s.singer || []; var artistName = singers.map(function(a){return a.name}).join(' / '); var album = s.album || {}; var albumMid = album.mid || ''; var albumName = album.name; var coverUrl = albumMid ? 'https://y.qq.com/music/photo_new/T002R300x300M000' + albumMid + '.jpg' : null; items.push({id: mid, title: s.name||'', artist: artistName||null, album: albumName||null, durationMs: (s.interval||0)*1000, coverUrl: coverUrl}); } return items;"},"detail":{"url":"https://u.y.qq.com/cgi-bin/musicu.fcg","method":"POST","headers":{"Content-Type":"application/json"},"bodyTemplate":"{\"comm\":{\"ct\":11,\"cv\":\"1003006\"},\"req_1\":{\"module\":\"music.pf_song_detail_svr\",\"method\":\"get_song_detail_yqq\",\"param\":{\"song_mid\":\"{{id}}\"}}}","script":"var req = response.req_1 || {}; var data = req.data || {}; var info = data.track_info || {}; var singers = info.singer || []; var artistName = singers.map(function(a){return a.name}).join(' / '); var album = info.album || {}; var albumMid = album.mid || ''; var coverUrl = albumMid ? 'https://y.qq.com/music/photo_new/T002R300x300M000' + albumMid + '.jpg' : null; var year = null; if (info.time_public) { var y = parseInt(info.time_public.substring(0,4)); if (y > 0) year = y; } return {title: info.name||'', artist: artistName||null, album: album.name||null, year: year, coverUrl: coverUrl, trackNumber: info.index_album||null, genres: info.genre ? [info.genre] : null};"},"cover":{"url":"https://u.y.qq.com/cgi-bin/musicu.fcg","method":"POST","headers":{"Content-Type":"application/json"},"bodyTemplate":"{\"comm\":{\"ct\":11,\"cv\":\"1003006\"},\"req_1\":{\"module\":\"music.pf_song_detail_svr\",\"method\":\"get_song_detail_yqq\",\"param\":{\"song_mid\":\"{{id}}\"}}}","script":"var req = response.req_1 || {}; var data = req.data || {}; var info = data.track_info || {}; var album = info.album || {}; var albumMid = album.mid || ''; if (!albumMid) return []; return [{coverUrl: 'https://y.qq.com/music/photo_new/T002R300x300M000' + albumMid + '.jpg', thumbnailUrl: 'https://y.qq.com/music/photo_new/T002R150x150M000' + albumMid + '.jpg'}];"},"lyrics":{"url":"https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?songmid={{id}}&format=json&nobase64=1&g_tk=5381","method":"GET","headers":{"Referer":"https://y.qq.com/portal/player.html"},"script":"if (response.retcode !== 0) return null; var lyric = response.lyric || ''; if (!lyric) return null; return {lrcContent: lyric};"}}]}
