Important
- 请å¡å¿ éµå® GNU Affero General Public License (AGPL-3.0) 讞å¯åè®®
- æšçä¿®æ¹ãæŒç»ãååææŽŸç项ç®ïŒå¿ é¡»åæ ·éçš AGPL-3.0 讞å¯åè®®ïŒå¹¶åšéåœäœçœ®å 嫿¬é¡¹ç®ç讞å¯åçæä¿¡æ¯
- çŠæ¢çšäºå®åæå ¶ä»åäžçšéïŒåŠè¥åç°ïŒäœè ä¿ç远究æ³åŸèޣ任çæå©
- è¥åç°æªéµå® AGPL-3.0 讞å¯åè®®çè¡äžºïŒæ¬é¡¹ç®å°æ°žä¹ åæŽ
- æè°¢æšçå°éäžçè§£
-
æ¬é¡¹ç®åºäº Vue 3 å šå®¶æ¡¶ãNaïve UI ç»ä»¶åºå Electron åŒå
-
æ¯æçœé¡µç«¯äžå®¢æ·ç«¯ïŒç®åä» éé
WinïŒå ¶ä»å¹³å°å¯èªè¡è§£å³å Œå®¹æ§åè¿è¡æå»º -
ç§»åšç«¯ä» ååºç¡éé ïŒäžä¿è¯å šéšåèœå¯çš
请泚æïŒæ¬çšåºäžæç®åŒåç§»åšç«¯ïŒä¹äžäŒå¯¹ç§»åšç«¯è¿è¡å®çŸéé ïŒä» ä¿è¯åºç¡å¯çšæ§
-
欢è¿åäœå€§äœ¬
Starð
- SPlayer
æ¬é¡¹ç® CDN å éåå®å šé²æ€ç± Tencent EdgeOne èµå©
- âš æ¯ææ«ç ç»åœ
- ð± æ¯æææºå·ç»åœïŒéšåå°åºAPIå¯èœäžçš³å®ïŒ
- ð èªå𿝿¥çŸå°åäºèŽçŸå°
- ðš å°é¢äž»é¢è²èªéåº
- ð Light / Dark æš¡åŒèªåšåæ¢
- ðµ æ¯æææŸéšåæ çæææ²ïŒå¯èœäžåæ²äžå®å šå¹é ïŒ
- â¬ïž äžèœœææ²ïŒæé«æ¯æ Hi-ResïŒ
- â æ°å»ºæååæåçŒèŸ
- â€ïž æ¶è / åæ¶æ¶èæåæææ
- ð¶ æ¯æ¥æšèææ²
- ð» ç§äºº FM
- âïž äºçé³ä¹äžäŒ
- ð äºçå ææ²ææŸ
- ð äºçå ææ²çº æ£
- ðïž äºçææ²å é€
- ð æ¯æéåæè¯
- ð æè¯æ»åšåæè¯ç¿»è¯
- ð¹ MV äžè§é¢ææŸ
- ð¶ é³ä¹é¢è°±æŸç€º
- âïž é³ä¹æžå ¥æžåº
- ð æ¯æ PWA
- ð¬ è¯è®ºåºåè¯è®ºç¹èµ
- ð æææš¡åŒèªåš / æåšåæ¢
- ð± ç§»åšç«¯åºç¡éé
ði18næ¯æ
åŒåäžïŒä» äŸåè
æ¬é¡¹ç®æ¬èº«äžæäŸæ¡é¢çæ¬, äœæ¯å¯ä»¥èªå·±æå»ºæ¡é¢çæ¬. æ¡é¢ç«¯ç®åå€äºæµè¯é¶æ®µ, éšåæŒæŽå¯èœæ²¡èœåæ¶ä¿®å€
-
æ¬å°éšçœ²éå®è£ Node.jsã请äžèœœææ°çš³å®çã
-
å®è£ pnpm
npm install pnpm -g
-
å éä»åºå¹¶æåè³æ¬å°ïŒæ€å€äžåèµè¿°
-
䜿çš
pnpm installå®è£ äŸèµïŒåŠéçœç»é误å¯çšåœå éåæºïŒ -
å€å¶
/.env.exampleæä»¶å¹¶éåœå䞺/.envå¹¶ä¿®æ¹é 眮 -
æå 客æ·ç«¯ïŒè¯·æ ¹æ®äœ çç³»ç»ç±»åéæ©ïŒæå æååäŒèŸåºå®è£ å æå¯æ§è¡æä»¶åš
/distç®åœïŒå¯èªè¡å®è£åœä»€ ç³»ç»ç±»å pnpm build:winWindows pnpm build:linuxLinux pnpm build:macMacOS
åœåçæ¬æäžæ¯æ Docker éšçœ²ïŒé¢è®¡åæçæ¬äŒå å
¥çžå
³æ¯æã
- æ¬çšåºäŸèµ NeteaseCloudMusicApiïŒè¯·ææ¥éª€éšçœ²å¹¶ç¡®ä¿å¯åšçº¿è®¿é®ã
Important
ç°åšå·²ç»äœ¿çšçœæäºé³ä¹Api Rebornçæ¬, æ¯æUNM-Serverçææåèœ
åŠæäœ ä»ç¶æ³èŠéšçœ²UNM-Server, 请蜬å°long-time-support-version忝
-
ç¹å»æ¬ä»åºå³äžè§
ForkïŒå€å¶å°äœ ç GitHub èŽŠå· -
å€å¶
/.env.exampleæä»¶å¹¶éåœå䞺/.env -
å°
.envæä»¶äžçRENDERER_VITE_SERVER_URLæ¹äžºç¬¬äžæ¥åŸå°ç API å°å -
å°
.envæä»¶äžçRENDERER_VITE_SITE_URLæ¹äžºäœ çç«ç¹å°åïŒçšäºè§£å³è·šåé®é¢RENDERER_VITE_SERVER_URL = "https://api.example.com"; RENDERER_VITE_SITE_URL = "https://player.example.com";
åŠäžç§APIå¡«å ¥æ¹åŒïŒè¯·åš
vercel.jsonéé 眮ïŒ"rewrites": [ { "source": "/:path", "destination": "/index.html" }, { "source": "/api/:apiurl*", "destination": "https://äœ ççœæäºapiåå/:apiurl*" } ]
éååš
.envéå¡«åïŒ## 䜿çšå级ååAPI RENDERER_VITE_SITE_ROOT = true -
å°
Build and Output SettingsçOutput Directoryæ¹äžºout/renderer -
ç¹å»
DeployïŒå³å¯æåéšçœ²
-
éå€
âïž Vercel éšçœ²äžç 1 - 4 æ¥éª€ -
å éä»åº
å°éŸæ¥äžç example/repository.git æ¿æ¢äžºäœ èŠå éçå®é ä»åºå°å
git clone https://github.com/example/repository.git
-
å®è£ äŸèµ
pnpm install # æ yarn install # æ npm install
-
çŒè¯æå
pnpm build # æ yarn build # æ npm build
-
å°ç«ç¹è¿è¡ç®åœè®Ÿçœ®äžº
out/renderer
ç¹å«æè°¢ä»¥äžé¡¹ç®äžºæ¬é¡¹ç®æäŸæ¯æäžçµæïŒ
- åçSPlayer
- NeteaseCloudMusicApi
- NeteaseCloudMusicApiReborn
- YesPlayMusic
- UnblockNeteaseMusic
- Vue-mmPlayer
- refined-now-playing-netease
- material-color-utilities
æ¬é¡¹ç®éšååèœäœ¿çšäºçœæäºé³ä¹çç¬¬äžæ¹ API æå¡ïŒä» äŸäžªäººåŠä¹ ç 究䜿çšïŒçŠæ¢çšäºåäžåéæ³çšéã
æ¬é¡¹ç®åŒåè æ¿è¯º äž¥æ Œéµå®çžå ³æ³åŸæ³è§åçœæäºé³ä¹ API 䜿çšåè®®ïŒäžäŒå©çšæ¬é¡¹ç®è¿è¡ä»»äœè¿æ³æŽ»åšã åŠå äœ¿çšæ¬é¡¹ç®èåŒèµ·çä»»äœçº 纷æèޣ任ïŒåç±äœ¿çšè èªè¡æ¿æ ãæ¬é¡¹ç®åŒåè äžæ¿æ ä»»äœå äœ¿çšæ¬é¡¹ç®è富èŽçä»»äœçŽæ¥æéŽæ¥èޣ任ïŒå¹¶ä¿ç远究䜿çšè è¿æ³è¡äžºçæå©ã
请䜿çšè åšäœ¿çšæ¬é¡¹ç®æ¶éµå®çžå ³æ³åŸæ³è§ïŒäžèŠå°æ¬é¡¹ç®çšäºä»»äœåäžåéæ³çšéãåŠæè¿åïŒäžååæç±äœ¿çšè èªèŽã åæ¶ïŒäœ¿çšè åºè¯¥èªè¡æ¿æ å äœ¿çšæ¬é¡¹ç®è垊æ¥çé£é©åèŽ£ä»»ãæ¬é¡¹ç®åŒåè äžå¯¹æ¬é¡¹ç®ææäŸçæå¡åå 容ååºä»»äœä¿è¯ã
æè°¢æšççè§£ã
- æ¬é¡¹ç®ä» äŸäžªäººåŠä¹ ç 究䜿çšïŒçŠæ¢çšäºåäžåéæ³çšé
- æ¬é¡¹ç®åºäº GNU Affero General Public License (AGPL-3.0) 讞å¯è¿è¡åŒæº
- ä¿®æ¹åååïŒ ä»»äœå¯¹æ¬é¡¹ç®çä¿®æ¹åååéœå¿ é¡»åºäº AGPL-3.0 è¿è¡ïŒæºä»£ç å¿ é¡»äžå¹¶æäŸ
- 掟çäœåïŒ ä»»äœæŽŸçäœåå¿ é¡»åæ ·éçš AGPL-3.0ïŒå¹¶åšéåœçå°æ¹æ³šæåå§é¡¹ç®ç讞å¯è¯
- 泚æåäœè ïŒ åšä»»äœä¿®æ¹ã掟çäœåæå ¶ä»ååäžïŒå¿ é¡»åšéåœçäœçœ®æç¡®æ³šæåäœè åå ¶èŽ¡ç®
- å 莣声æïŒ æ ¹æ® AGPL-3.0ïŒæ¬é¡¹ç®äžæäŸä»»äœæç€ºææç€ºçæ ä¿ã请诊ç»é 读 GNU Affero General Public License (AGPL-3.0) 以äºè§£å®æŽçå 莣声æå 容
- 瀟åºåäžïŒ 欢è¿ç€Ÿåºçåäžå莡ç®ïŒæä»¬éŒå±åŒåè äžåæ¹è¿åç»Žæ€æ¬é¡¹ç®
- 讞å¯è¯éŸæ¥ïŒ 请é 读 GNU Affero General Public License (AGPL-3.0) äºè§£æŽå€è¯Šæ
æ¥çç®åœç»æè¯Šæ
âââ auto-imports.d.ts # èªåšå¯Œå
¥TypeScript声ææä»¶
âââ commit.example # Gitæäº€ä¿¡æ¯ç€ºäŸ
âââ components.d.ts # ç»ä»¶TypeScript声ææä»¶
âââ docker-compose.yml # Docker Composeé
眮
âââ Dockerfile # Dockeræå»ºæä»¶
âââ electron-builder.yml # Electron Builderé
眮
âââ electron.vite.config.mjs # Electron Viteé
眮
âââ index.html # 䞻页HTML
âââ nginx.conf # Nginxé
眮
âââ vercel.json # Verceléšçœ²é
眮
âââ electron # Electronçžå
³æä»¶
â âââ main # äž»è¿çš
â â âââ index.js # äž»è¿çšå
¥å£
â â âââ mainIpcMain.js # äž»è¿çšéä¿¡
â â âââ startMainServer.js # æå¡åšå¯åš
â â âââ startNcmServer.js # çœæäºé³ä¹æå¡å¯åš
â â âââ utils # å·¥å
·åœæ°
â â âââ checkPort.js # ç«¯å£æ£æ¥
â â âââ checkUpdates.js # æŽæ°æ£æ¥
â â âââ createGlobalShortcut.js # å
šå±å¿«æ·é®
â â âââ createSystemTray.js # ç³»ç»æç
â â âââ getNeteaseMusicUrl.js # é³ä¹URLè·å
â â âââ kwDES.js # DESå å¯
â â âââ readDirAsync.js # åŒæ¥ç®åœè¯»å
â âââ preload # é¢å èœœèæ¬
â âââ index.mjs # é¢å 蜜å
¥å£
âââ public # å
Œ
±èµæº
â âââ favicon.ico # çœç«åŸæ
â âââ favicon.png # PNGæ ŒåŒåŸæ
â âââ latest.log # ææ°æ¥å¿
â âââ ttml.example # TTMLç€ºäŸæä»¶
â âââ font # åäœæä»¶
â â âââ font.css # åäœæ ·åŒ
â â âââ HarmonyOS_Sans_SC_Bold.woff2
â â âââ HarmonyOS_Sans_SC.woff2
â â âââ PingFangSC-Bold.woff2
â â âââ PingFangSC-Regular.woff2
â âââ imgs # åŸçèµæº
â âââ icons # åŸæ
â âââ pic # åŸç
âââ src # æºä»£ç
â âââ App.vue # æ ¹ç»ä»¶
â âââ main.js # äž»å
¥å£
â âââ api # APIæ¥å£
â â âââ album.js # äžèŸçžå
³
â â âââ artist.js # èºæ¯å®¶çžå
³
â â âââ cloud.js # äºæå¡çžå
³
â â âââ comment.js # è¯è®ºçžå
³
â â âââ dj.js # çµå°çžå
³
â â âââ login.js # ç»åœçžå
³
â â âââ other.js # å
¶ä»API
â â âââ playlist.js # æåçžå
³
â â âââ recommend.js # æšèçžå
³
â â âââ search.js # æçŽ¢çžå
³
â â âââ song.js # ææ²çžå
³
â â âââ ttml.js # TTMLçžå
³
â â âââ user.js # çšæ·çžå
³
â â âââ video.js # è§é¢çžå
³
â âââ assets # éæèµæº
â â âââ emoji.json # 衚æ
é
眮
â â âââ icon.json # åŸæ é
眮
â â âââ idMeta.json # IDå
æ°æ®
â â âââ themeColor.json # äž»é¢é¢è²é
眮
â âââ components # ç»ä»¶
â â âââ Cover # å°é¢çžå
³ç»ä»¶
â â â âââ CoverDropdown.vue # å°é¢äžæç»ä»¶
â â â âââ MainCover.vue # äž»å°é¢ç»ä»¶
â â â âââ SpecialCoverCard.vue # ç¹æ®å°é¢å¡çç»ä»¶
â â â âââ SpecialCover.vue # ç¹æ®å°é¢ç»ä»¶
â â âââ Global # å
šå±ç»ä»¶
â â â âââ MainLayout.vue # äž»åžå±ç»ä»¶
â â â âââ Menu.vue # èåç»ä»¶
â â â âââ Pagination.vue # å页ç»ä»¶
â â â âââ Playlist.vue # æåç»ä»¶
â â â âââ Provider.vue # å
šå±åé
眮ç»ä»¶
â â â âââ SvgIcon.vue # SVGåŸæ ç»ä»¶
â â âââ List # å衚ç»ä»¶
â â â âââ CommentList.vue # è¯è®ºå衚ç»ä»¶
â â â âââ SongListDropdown.vue # ææ²äžæç»ä»¶
â â â âââ SongList.vue # ææ²å衚ç»ä»¶
â â âââ Modal # 匹çªçžå
³ç»ä»¶
â â â âââ AddPlaylist.vue # æ·»å æåç»ä»¶
â â â âââ CloudSongMatch.vue # äºçææ²å¹é
ç»ä»¶
â â â âââ CreatePlaylist.vue # å建æåç»ä»¶
â â â âââ DownloadSong.vue # äžèœœææ²ç»ä»¶
â â â âââ LoginPhone.vue # ææºç»åœç»ä»¶
â â â âââ LoginQRCode.vue # äºç»Žç ç»åœç»ä»¶
â â â âââ Login.vue # ç»åœç»ä»¶
â â â âââ PlaylistUpdate.vue # æåçŒèŸç»ä»¶
â â â âââ UpCloudSong.vue # äžäŒ äºçææ²ç»ä»¶
â â âââ Nav # 富èªçžå
³ç»ä»¶
â â â âââ MainNav.vue # 䞻富èªç»ä»¶
â â â âââ UserData.vue # çšæ·æ°æ®ç»ä»¶
â â âââ Player # ææŸåšçžå
³ç»ä»¶
â â â âââ CountDown.vue # å计æ¶ç»ä»¶
â â â âââ FullPlayer.vue # å
šå±ææŸåšç»ä»¶
â â â âââ Lyric.vue # æè¯ç»ä»¶
â â â âââ MainControl.vue # äž»æ§å¶ç»ä»¶
â â â âââ PlayerControl.vue # ææŸåšæ§å¶ç»ä»¶
â â â âââ PlayerCover.vue # ææŸåšå°é¢ç»ä»¶
â â â âââ PrivateFm.vue # ç§äººFMç»ä»¶
â â âââ Search # æçŽ¢çžå
³ç»ä»¶
â â â âââ SearchHot.vue # çéšæçŽ¢ç»ä»¶
â â â âââ SearchInp.vue # æçŽ¢èŸå
¥ç»ä»¶
â â â âââ SearchSuggestions.vue # æçŽ¢å»ºè®®ç»ä»¶
â â âââ WinDom # çªå£DOMçžå
³ç»ä»¶
â â âââ TitleBar.vue # æ 颿 ç»ä»¶
â âââ router # è·¯ç±é
眮
â â âââ index.js # è·¯ç±å
¥å£
â â âââ routes.js # è·¯ç±å®ä¹
â âââ stores # ç¶æç®¡ç
â â âââ index.js # Storeå
¥å£
â â âââ indexedDB.js # IndexedDBçžå
³
â â âââ musicData.js # é³ä¹æ°æ®
â â âââ siteData.js # ç«ç¹æ°æ®
â â âââ siteSettings.js # ç«ç¹è®Ÿçœ®
â â âââ siteStatus.js # ç«ç¹ç¶æ
â âââ style # æ ·åŒæä»¶
â â âââ amll.scss # AMLLæ ·åŒ
â â âââ animate.scss # åšç»æ ·åŒ
â â âââ main.scss # äž»æ ·åŒ
â âââ types # ç±»åå®ä¹
â â âââ amll.d.ts # AMLLç±»å
â â âââ main.d.ts # 䞻类å
â âââ utils # å·¥å
·åœæ°
â â âââ auth.js # 讀è¯çžå
³
â â âââ base64.js # Base64å€ç
â â âââ color-utils.js # é¢è²å·¥å
·
â â âââ cover-color.js # å°é¢é¢è²
â â âââ debounce.js # 鲿
â â âââ formatData.js # æ°æ®æ ŒåŒå
â â âââ formRules.js # 衚åè§å
â â âââ globalEvents.js # å
šå±äºä»¶
â â âââ globalShortcut.js # å
šå±å¿«æ·é®
â â âââ helper.js # èŸ
å©åœæ°
â â âââ lyric.ts # æè¯å€ç
â â âââ parseLyric.js # æè¯è§£æ
â â âââ Player.js # ææŸåš
â â âââ processTTML.ts # TTMLå€ç
â â âââ request.js # 请æ±å€ç
â â âââ throttle.js # èæµ
â â âââ time.ts # æ¶éŽå€ç
â â âââ timeTools.js # æ¶éŽå·¥å
·
â â âââ userSignIn.js # çšæ·ç»åœ
â âââ views # è§åŸç»ä»¶
â âââ Artist # èºæ¯å®¶çžå
³è§åŸ
â â âââ albums.vue # äžèŸè§åŸ
â â âââ hot.vue # çéšè§åŸ
â â âââ index.vue # èºæ¯å®¶äž»é¡µ
â â âââ songs.vue # ææ²è§åŸ
â â âââ videos.vue # è§é¢è§åŸ
â âââ Cloud.vue # äºçè§åŸ
â âââ Comment.vue # è¯è®ºè§åŸ
â âââ DailySongs.vue # æ¯æ¥æšèè§åŸ
â âââ Discover # åç°é³ä¹è§åŸ
â â âââ artists.vue # èºæ¯å®¶è§åŸ
â â âââ index.vue # åç°äž»é¡µ
â â âââ new.vue # æ°æè§åŸ
â â âââ playlists.vue # æåè§åŸ
â â âââ toplists.vue # æè¡æŠè§åŸ
â âââ History.vue # åå²è®°åœè§åŸ
â âââ Home.vue # 䞻页è§åŸ
â âââ Like # æå欢çè§åŸ
â â âââ albums.vue # äžèŸè§åŸ
â â âââ artists.vue # èºæ¯å®¶è§åŸ
â â âââ index.vue # æå欢ç䞻页
â â âââ playlists.vue # æåè§åŸ
â â âââ videos.vue # è§é¢è§åŸ
â âââ List # å衚è§åŸ
â â âââ album.vue # äžèŸè§åŸ
â â âââ playlist.vue # æåè§åŸ
â â âââ dj.vue # çµå°è§åŸ
â âââ Local # æ¬å°é³ä¹è§åŸ
â â âââ albums.vue # äžèŸè§åŸ
â â âââ artists.vue # èºæ¯å®¶è§åŸ
â â âââ index.vue # æ¬å°é³ä¹äž»é¡µ
â â âââ songs.vue # ææ²è§åŸ
â âââ Player.vue # ææŸåšè§åŸ
â âââ Dj # çµå°è§åŸ
â â âââ index.vue # çµå°äž»é¡µ
â â âââ type.vue # çµå°åç±»è§åŸ
â âââ Search # æçŽ¢è§åŸ
â â âââ albums.vue # äžèŸè§åŸ
â â âââ artists.vue # èºæ¯å®¶è§åŸ
â â âââ index.vue # æçŽ¢äž»é¡µ
â â âââ playlists.vue # æåè§åŸ
â â âââ songs.vue # ææ²è§åŸ
â â âââ videos.vue # è§é¢è§åŸ
â â âââ djs.vue # çµå°è§åŸ
â âââ Setting # 讟眮è§åŸ
â â âââ index.vue # 讟眮䞻页
â âââ Song.vue # ææ²è§åŸ
â âââ State # ç¶æè§åŸ
â â âââ 403.vue # 403ç¶æè§åŸ
â â âââ 404.vue # 404ç¶æè§åŸ
â â âââ 500.vue # 500ç¶æè§åŸ
â âââ Test.vue # æµè¯è§åŸ
- 䜿çšçœæäºé³ä¹API Rebron
- è§£ç°æ¯æé ·ææº
- ä¿®å€imsyyçé幎èbug
- æ¯æå€è¯èš







