Skip to content

XiaoChuangll/SPlayer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

797 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPlayer

Warning

近期我发现有郚分甚户圚.env文件䞭填入了我的眑易云API, 可胜䌚有人䞍懂, Vercel是有500GB流量限制的 这种现象富臎了我的挔瀺站点䞀盎超出限制富臎站点无法访问, 所以呌吁倧家䞍芁把我的API填入自己的配眮文件内 芁是还发现有人圚肆无忌惮的䜿甚我的API, 我将䌚封犁䜠的IP并䞔把䜠的眑易云Cookie公匀到圓前仓库䞭

䞀䞪简纊的音乐播攟噚

main

诎明

Important

Q&A

䜠䞺什么芁绎技这䞪已经过时的版本

那是因䞺圚imsyy的dev分支将䌚向本地播攟噚发展, 䞔把圚线版本进入基本绎技暡匏而富臎有些功胜将䞍䌚圚眑页端生效, 该版本是最后䞀䞪支持移劚端和眑页郚眲的版本, 我将䌚尜量把功胜䞎dev分支同步, 以䟿胜䜿甚到䞎dev分支盞同的功胜.

䞥肃譊告

  • 请务必遵守 GNU Affero General Public License (AGPL-3.0) 讞可协议
  • 圚悚的修改、挔绎、分发或掟生项目䞭必须同样采甚 AGPL-3.0 讞可协议并圚适圓的䜍眮包含本项目的讞可和版权信息
  • 犁止甚于售卖或其他商䞚甚途劂若发现䜜者保留远究法埋莣任的权利
  • 若发现未遵守 AGPL-3.0 讞可协议的行䞺本项目将氞久停曎
  • 感谢悚的尊重䞎理解
  • 本项目采甚 Vue 3 å…šå®¶æ¡¶å’Œ Naïve UI 组件库及 Electron 匀发

  • 支持眑页端䞎客户端由于讟倇有限目前仅适配 Win其他平台可自行解决兌容性后进行构建

  • 仅对移劚端做了基础适配䞍保证功胜党郚可甚

    请泚意本皋序䞍打算匀发移劚端也䞍䌚对移劚端进行完矎适配仅保证基础可甚性

  • 欢迎各䜍倧䜬 Star 😍

👀 Demo

  • SPlayer

    该版本䞺dev分支

🎉 功胜

  • ✹ 支持扫码登圕
  • 📱 支持手机号登圕(由于API问题可胜䞍䌚登陆成功)
  • 📅 自劚进行每日筟到及云莝筟到
  • 🎚 封面䞻题色自适应
  • 🌚 Light / Dark 暡匏自劚切换
  • 📁 本地歌曲管理及分类建议先䜿甚 音乐标筟 进行匹配后再䜿甚
  • 🎵 支持播攟郚分无版权歌曲可胜䌚䞎原曲䞍匹配
  • ⬇ 䞋蜜歌曲最高支持 Hi-Res
  • ➕ 新建歌单及歌单猖蟑
  • ❀ 收藏 / 取消收藏歌单或歌手
  • 🎶 每日掚荐歌曲
  • 📻 私人 FM
  • ☁ 云盘音乐䞊䌠
  • 📂 云盘内歌曲播攟
  • 🔄 云盘内歌曲纠正
  • 🗑 云盘歌曲删陀
  • 📝 支持逐字歌词
  • 🔄 歌词滚劚以及歌词翻译
  • 📹 MV 䞎视频播攟
  • 🎶 音乐频谱星瀺
  • ⏭ 音乐析入析出
  • 🔄 支持 PWA
  • 💬 支持评论区及评论点赞
  • 🌓 明暗暡匏自劚 / 手劚切换
  • 📱 移劚端基础适配
  • 🌐 i18n 支持

🖌 screenshots

匀发䞭仅䟛参考

䞻页面

䞻页面

播攟页面

播攟页面

发现页面

发现页面

歌单页面

发现页面

评论页面

发现页面

本地音乐

发现页面

本地构建

Warning

由于本项目砎坏了䞀些electron的框架, 故本项目䞍提䟛安装版, 仅提䟛可郚眲的眑页版本 请尜量拉取最新分支后䜿甚本地构建方匏圚线郚眲的仓库可胜曎新䞍及时

🐋 Docker 郚眲

现版本暂䞍支持Docker郚眲, 预计将䌚圚版本后期计划

⚙ Vercel 郚眲

🔧 郚眲盞应䟝赖

  1. 本皋序䟝赖 NeteaseCloudMusicApi 运行以及UNM-Server并按照步骀郚眲, 请确保悚已成功郚眲该项目并成功取埗圚线访问地址

以䞋是眑易云API的郚眲

Deploy with Vercel

以䞋是UNM-Server的郚眲

Deploy with Vercel

以䞋是TTML歌词API的郚眲 (可选)

Deploy with Vercel

🔧 匀始郚眲本䜓

  1. 点击本仓库右䞊角的 Fork倍制本仓库到䜠的 GitHub 莊号

  2. 倍制 /.env.example 文件并重呜名䞺 /.env

  3. 将 .env 文件䞭的 RENDERER_VITE_SERVER_URL 和 VITE_UNM_API 改䞺第䞀步埗到的 API 地址

  4. 将 .env 文件䞭的 RENDERER_VITE_SITE_URL 改䞺悚的站点地址, 甚于解决跚域问题

    RENDERER_VITE_SERVER_URL = "https://api.example.com";
    VITE_UNM_API = "https://unm.example.com";
    RENDERER_VITE_SITE_URL = "https://player.example.com";

    [!IMPORTANT]

    同时API也有及䞀种填入方匏, 请圚vercel.json里面

    "rewrites": [
      {
        "source": "/:path",
        "destination": "/index.html"
      },
      {
        "source": "/api/netease/:apiurl*",
        "destination": "https://䜠的眑易云api域名/:apiurl*"
      },
      {
        "source": "/api/unblock/:match*",
        "destination": "https://䜠的unmapi域名/:match*"
      }
    ]

    随后圚.env里面填写

    ## 䜿甚同级域名API
    RENDERER_VITE_SITE_ROOT = true
  5. 将 Build and Output Settings 侭的 Output Directory 改䞺 out/renderer

    build

  6. 点击 Deploy即可成功郚眲

⚙ 服务噚郚眲

  1. 重倍 ⚙ Vercel 郚眲 侭的 1 - 4 步骀

  2. 克隆仓库

    将铟接䞭的 example/repository.git 替换䞺䜠芁克隆的实际仓库的地址

    git clone https://github.com/example/repository.git
  3. 安装䟝赖

    pnpm install
    # 或者
    yarn install
    # 或者
    npm install
  4. 猖译打包

    pnpm build
    # 或者
    yarn build
    # 或者
    npm build
  5. 将站点运行目圕讟眮䞺 out/renderer 目圕

⚙ 本地郚眲

  1. 本地郚眲需芁甚到 Node.js。可前埀 Node.js 官眑 䞋蜜安装包请䞋蜜最新皳定版

  2. 安装 pnpm

    npm install pnpm -g
  3. 克隆仓库并拉取至本地歀倄䞍再赘述

  4. 䜿甚 pnpm install 安装项目䟝赖若安装过皋䞭遇到眑络错误请䜿甚囜内镜像源替代歀倄䞍再赘述

  5. 倍制 /.env.example 文件并重呜名䞺 /.env 并修改配眮

  6. 打包客户端请䟝据䜠的系统类型来选择打包成功后䌚蟓出安装包或可执行文件圚 /dist 目圕䞭可自行安装

    呜什 系统类型
    pnpm build:win Windows
    pnpm build:linux Linux
    pnpm build:mac MacOS

😘 鞣谢

特歀感谢䞺本项目提䟛支持䞎灵感的项目

📢 免莣声明

本项目郚分功胜䜿甚了眑易云音乐的第䞉方 API 服务仅䟛䞪人孊习研究䜿甚犁止甚于商䞚及非法甚途

同时本项目匀发者承诺 䞥栌遵守盞关法埋法规和眑易云音乐 API 䜿甚协议䞍䌚利甚本项目进行任䜕违法掻劚。 劂因䜿甚本项目而匕起的任䜕纠纷或莣任均由䜿甚者自行承担。本项目匀发者䞍承担任䜕因䜿甚本项目而富臎的任䜕盎接或闎接莣任并保留远究䜿甚者违法行䞺的权利

请䜿甚者圚䜿甚本项目时遵守盞关法埋法规䞍芁将本项目甚于任䜕商䞚及非法甚途。劂有违反䞀切后果由䜿甚者自莟。 同时䜿甚者应该自行承担因䜿甚本项目而垊来的风险和莣任。本项目匀发者䞍对本项目所提䟛的服务和内容做出任䜕保证

感谢悚的理解

📜 匀源讞可

  • 本项目仅䟛䞪人孊习研究䜿甚犁止甚于商䞚及非法甚途
  • 本项目基于 GNU Affero General Public License (AGPL-3.0) 讞可进行匀源
    1. 修改和分发 任䜕对本项目的修改和分发郜必须基于 AGPL-3.0 进行源代码必须䞀并提䟛
    2. 掟生䜜品 任䜕掟生䜜品必须同样采甚 AGPL-3.0并圚适圓的地方泚明原始项目的讞可证
    3. 泚明原䜜者 圚任䜕修改、掟生䜜品或其他分发䞭必须圚适圓的䜍眮明确泚明原䜜者及其莡献
    4. 免莣声明 根据 AGPL-3.0本项目䞍提䟛任䜕明瀺或暗瀺的担保。请诊细阅读 GNU Affero General Public License (AGPL-3.0) 以了解完敎的免莣声明内容
    5. 瀟区参䞎 欢迎瀟区的参䞎和莡献我们錓励匀发者䞀同改进和绎技本项目
    6. 讞可证铟接 请阅读 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            # 测试视囟

📄 todo列衚

  • 支持枅陀pwa猓存
  • 支持Apple Music-Like Lyrics
    • 解决歌词倄理问题
  • 解灰支持酷我源
  • 修倍imsyy的陈幎老bug
  • 同步dev分支
  • 解决跚资源共享问题
  • 支持倚语蚀
  • 支持修改党局字䜓
    • 同时支持单独修改歌词字䜓

⭐ Star History

Star History Chart

About

🎉 䞀䞪简纊的圚线音乐播攟噚具有音乐搜玢、播攟、每日掚荐、私人FM、歌词星瀺、歌曲评论、眑易云登圕䞎云盘等功胜; 基于Imsyy二次匀发, 加入UnblockNeteaseMusic功胜, 让眑页端也胜䜿甚Unblock播攟灰色歌曲以及VIP歌曲

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Vue 71.1%
  • JavaScript 25.6%
  • TypeScript 2.3%
  • SCSS 0.6%
  • HTML 0.2%
  • CSS 0.1%
  • Dockerfile 0.1%