[{"bookSourceComment":"by狼崽儿 \/\/2026.8.12\n个人很喜欢的小众听歌网站，建议平时不用就关闭搜索，避免给别人的服务器造成负担。\n套的是猪场云音乐的音源，一般来说，某云音乐能听的它都能播放，如果遇到不能播放或者只有30秒的，那应该是播放地址有点问题，过段时间再听就行了。\n支持歌曲和歌单搜索，切换在登录处切换，默认搜歌。\n发现页是歌单，是某云的歌单。\n\n如果没办法获取正文，可以开飞行模式或者开移动数据换一下IP。\n正文规则（简化版）：\n@js:java.redirectUrl","bookSourceGroup":"音乐","bookSourceName":"枫叶音乐盒","bookSourceType":1,"bookSourceUrl":"https:\/\/mu-jie.cc\/musicBox\/#\/","customOrder":0,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"exploreUrl":"@js:\nvar arr = [];\narr.push({title: '🎵 推荐歌单', url: 'https:\/\/fy-musicbox-api.mu-jie.cc\/netease\/playlist\/recommend?limit=30', style: {layout_flexGrow: 1, layout_flexBasisPercent: 1}});\nvar body = java.ajax('https:\/\/fy-musicbox-api.mu-jie.cc\/getPlaylistCategory,{\"headers\":{\"Referer\":\"https:\/\/mu-jie.cc\/\"}}')   \/\/ 请求分类树\nvar d = JSON.parse(body);\nvar cats = (d && d[0] && d[0].category) || [];\nfor (var i = 0; i < cats.length; i++) {\n  var g = cats[i];\n  var subs = g.sub || [];\n  if (subs.length > 0) {\n    arr.push({title: g.name, url: '', style: {layout_flexGrow: 1, layout_flexBasisPercent: 1}});   \/\/ 分组标题独占一行\n    for (var j = 0; j < subs.length; j++) {\n      var s = subs[j];\n      arr.push({title: s.name, url: 'https:\/\/fy-musicbox-api.mu-jie.cc\/netease\/playlist\/category?type=' + encodeURIComponent(s.id) + '&limit=30', style: {layout_flexGrow: 1, layout_flexBasisPercent: 0.25}});\n    }\n  }\n}\nJSON.stringify(arr);","header":" {\n    \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/120.0.0.0 Mobile Safari\/537.36\",\n    \"Referer\": \"https:\/\/mu-jie.cc\/\"\n  }","jsLib":"function ST() {\n    var v = String(source.getVariable()).split(',');\n    return parseInt(v[0]) || 0;\n}\nfunction ST_NAME() {\n    return ST() == 1 ? '歌单' : '歌曲';\n}","lastUpdateTime":"1786555474090","loginUi":"[{\"name\": \"🔀 当前模式\", \"type\": \"button\", \"action\": \"A()\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 1}},\n {\"name\": \"🎵 歌曲搜索\", \"type\": \"button\", \"action\": \"B(0)\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.5}},\n {\"name\": \"📋 歌单搜索\", \"type\": \"button\", \"action\": \"B(1)\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.5}}]","loginUrl":"A = () => {\n    let v = String(this.source.getVariable()).split(',');\n    let x = parseInt(v[0]) || 0;\n    let names = ['歌曲', '歌单'];\n    let icons = ['🎵', '📋'];\n    let nl = String.fromCharCode(10);\n    java.toast('━━━━━━━━━━━' + nl +\n        icons[x] + ' 当前搜索模式' + nl +\n        names[x] + nl +\n        '━━━━━━━━━━━');\n};\nB = (x) => {\n    let v = String(this.source.getVariable()).split(',');\n    v[0] = x;\n    this.source.setVariable(v.join(','));\n    let names = ['歌曲', '歌单'];\n    java.toast('已切换到：' + names[x]);\n};\n","respondTime":180000,"ruleBookInfo":{"author":"@js:var m=baseUrl.match(\/artist=([^&]+)\/);\nm?decodeURIComponent(m[1]):''","coverUrl":"@js:var m=baseUrl.match(\/pic=([^&]+)\/);\nm?decodeURIComponent(m[1]):''","intro":"@js:var n=baseUrl.match(\/name=([^&]+)\/);\nvar a=baseUrl.match(\/artist=([^&]+)\/);\nvar indent='　　'; \nvar r='';\nif(n) r+=indent+'歌曲：'+decodeURIComponent(n[1])+'\\n';\nif(a) r+=indent+'歌手：'+decodeURIComponent(a[1]);\nr","kind":"@js:var m=baseUrl.match(\/\\\/(song|playlist)\\\/\/);\nm?(m[1]=='song'?'单曲':'歌单'):''","name":"@js:var m=baseUrl.match(\/name=([^&]+)\/);\nm?decodeURIComponent(m[1]):''","tocUrl":"@js:var m=baseUrl.match(\/\\\/(song|playlist)\\\/([a-z]+)\\\/(\\d+)\/);\n(!m||m[1]=='song')?baseUrl:'https:\/\/fy-musicbox-api.mu-jie.cc\/meting\/?server='+m[2]+'&type=playlist&id='+m[3];"},"ruleContent":{"content":"<js>\nvar raw = baseUrl;\nvar clean = raw;\nvar idx = raw.indexOf(',{');\nif (idx !== -1) {\n    clean = raw.substring(0, idx);\n}\nvar headers = {\"Referer\": \"https:\/\/mu-jie.cc\/\"};\nvar resp = java.get(clean, headers);\nvar loc = resp.header(\"Location\");\nloc || clean;\n<\/js>"},"ruleExplore":{"author":"@js:var d=JSON.parse(result);(d.trackCount||0)+'首'","bookList":"@js:var d=JSON.parse(result);\nvar arr=[];\nfor(var i=0;\ni<d.length;\ni++){arr.push(JSON.stringify(d[i]));\n}arr;","bookUrl":"@js:var d=JSON.parse(result);\n'https:\/\/fy-musicbox-api.mu-jie.cc\/playlist\/'+(d.server||'netease')+'\/'+d.id+'?name='+encodeURIComponent(d.name)+'&pic='+encodeURIComponent(d.coverImgUrl)","coverUrl":"$.coverImgUrl","intro":"@js:var d=JSON.parse(result);\n'歌单 · '+((d.playCount||0)\/10000).toFixed(1)+'万播放\\\\n'+((d.trackCount||0))+'首'","kind":"$.server","name":"$.name"},"ruleSearch":{"author":"@js:var d=JSON.parse(result);\nd.artist?d.artist:((d.trackCount||0)+'首');","bookList":"@js:var d=JSON.parse(result);var arr=[];\nfor(var i=0;i<d.length;i++){arr.push(JSON.stringify(d[i]));}\narr;","bookUrl":"@js:var d=JSON.parse(result);d.artist?'https:\/\/fy-musicbox-api.mu-jie.cc\/song\/netease\/'+d.id+'?name='+encodeURIComponent(d.name)+'&artist='+encodeURIComponent(d.artist)+'&pic='+encodeURIComponent(d.pic):'https:\/\/fy-musicbox-api.mu-jie.cc\/playlist\/netease\/'+d.id+'?name='+encodeURIComponent(d.name)+'&pic='+encodeURIComponent(d.coverImgUrl);","coverUrl":"@js:var d=JSON.parse(result);\nd.pic?d.pic:d.coverImgUrl;","intro":"@js:var d=JSON.parse(result);\nd.artist?d.name+'\\n'+d.artist:'歌单 · '+((d.playCount||0)\/10000).toFixed(1)+'万播放 · '+((d.trackCount||0))+'首';","kind":"$.id","name":"@Json:$.name"},"ruleToc":{"chapterList":"@js:\nvar m=baseUrl.match(\/\\\/(song|playlist)\\\/([a-z]+)\\\/(\\d+)\\?\/);\nvar arr=[];\nif(m&&m[1]=='song'){\n  var nm=baseUrl.match(\/name=([^&]+)\/);\n  var name=nm?decodeURIComponent(nm[1]):'歌曲';\n  var u='https:\/\/fy-musicbox-api.mu-jie.cc\/meting\/?server='+m[2]+'&type=url&id='+m[3]+',{\"headers\":{\"Referer\":\"https:\/\/mu-jie.cc\/\"}}';\n  arr.push(JSON.stringify({name:name,url:u,itemId:m[3]}));\n}else{\n  var d=(typeof result==='string')?JSON.parse(result):result;\n  var tracks=(d&&d.tracks)||[];\n  for(var i=0;i<tracks.length;i++){\n    var t=tracks[i];t.url=t.url+',{\"headers\":{\"Referer\":\"https:\/\/mu-jie.cc\/\"}}';arr.push(JSON.stringify(t));\n  }\n}\narr;","chapterName":"$.name","chapterUrl":"$.url"},"searchUrl":"@js:\nvar st = parseInt(String(source.getVariable()).split(\",\")[0]) || 0;\nst == 1\n  ? 'https:\/\/fy-musicbox-api.mu-jie.cc\/netease\/search\/playlist\/?keywords=' + encodeURIComponent(key) + '&limit=20'\n  : 'https:\/\/fy-musicbox-api.mu-jie.cc\/netease\/search\/song\/?keywords=' + encodeURIComponent(key) + '&pn=' + page + '&limit=20';","weight":0}]