发布应用 SPlayer

This commit is contained in:
ms
2025-12-15 10:56:26 +08:00
parent e99f34de45
commit 9111a03b1b
13 changed files with 287 additions and 0 deletions
+1
View File
@@ -178,6 +178,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest-tracker/logo.png" width="22"/> | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/splayer/logo.png" width="22"/> | SPlayer | https://github.com/imsyy/SPlayer/ | 一个简约的音乐播放器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stash/logo.png" width="22"/> | Stash | https://stashapp.cc/ | 组织和刮削你的色情内容 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec Web版 | https://github.com/hua0512/stream-rec/ | 【前端版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
+1
View File
@@ -173,6 +173,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest-tracker/logo.png" width="22"/> | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/splayer/logo.png" width="22"/> | SPlayer | https://github.com/imsyy/SPlayer/ | 一个简约的音乐播放器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stash/logo.png" width="22"/> | Stash | https://stashapp.cc/ | 组织和刮削你的色情内容 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec Web版 | https://github.com/hua0512/stream-rec/ | 【前端版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
+118
View File
@@ -0,0 +1,118 @@
# SPlayer
🎉 一个简约的音乐播放器,支持逐字歌词,下载歌曲,展示评论区,音乐云盘及歌单管理,音乐频谱,移动端基础适配
![SPlayer](https://file.lifebus.top/imgs/splayer_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 特性
✨ 支持扫码登录
📱 支持手机号登录
📅 自动进行每日签到及云贝签到
💻 支持桌面歌词
💻 支持切换为本地播放器,此模式将不会连接网络
🎨 封面主题色自适应,支持全站着色
🌚 Light / Dark / Auto 模式自动切换
📁 本地歌曲管理及分类(建议先使用 音乐标签 进行匹配后再使用)
📁 简易的本地音乐标签编辑及封面修改
🎵 支持播放部分无版权歌曲(可能会与原曲不匹配,客户端独占功能)
⬇️ 下载歌曲 / 批量下载( 最高支持 Hi-Res,需具有相应会员账号 )
新建歌单及歌单编辑
❤️ 收藏 / 取消收藏歌单或歌手
🎶 每日推荐歌曲
📻 私人 FM
☁️ 云盘音乐上传
📂 云盘内歌曲播放
🔄 云盘内歌曲纠正
🗑️ 云盘歌曲删除
📝 支持逐字歌词
🔄 歌词滚动以及歌词翻译
📹 MV 与视频播放
🎶 音乐频谱显示
⏭️ 音乐渐入渐出
🔄 支持 PWA
💬 支持评论区
## 使用说明
### 音源
| 名称 | 代号 | 默认启用 | 注意事项 |
|--------------------------|-------------|------|------------------------------------------------|
| QQ 音乐 | `qq` | | 需要准备自己的 `QQ_COOKIE`(请参阅下方〈环境变量〉处)。必须使用 QQ 登录。 |
| 酷狗音乐 | `kugou` | ✅ | |
| 酷我音乐 | `kuwo` | | |
| 波点音乐 | `bodian` | ✅ | |
| 咪咕音乐 | `migu` | ✅ | 需要准备自己的 `MIGU_COOKIE`(请参阅下方〈环境变量〉处)。 |
| JOOX | `joox` | | 需要准备自己的 `JOOX_COOKIE`(请参阅下方〈环境变量〉处)。似乎有严格地区限制。 |
| YouTube(纯 JS 解析方式) | `youtube` | | 需要 Google 认定的**非中国大陆区域** IP 地址。 |
| YouTube(通过 `youtube-dl`) | `youtubedl` | | 需要自行安装 `youtube-dl`。 |
| YouTube(通过 `yt-dlp`) | `ytdlp` | ✅ | 需要自行安装 `yt-dlp``youtube-dl` 仍在活跃维护的 fork)。 |
| B 站音乐 | `bilibili` | | |
| B 站音乐 | `bilivideo` | | 在大陆地区外的IP地址可能查询不到某些版权视频(如索尼音乐上传的MV等) |
| 第三方网易云 API | `pyncmd` | | |
- 支持 `pyncmd` 的 API 服务由 GD studio <https://music.gdstudio.xyz> 提供。
### 配置项
| 变量名称 | 类型 | 描述 | 示例 |
|-----------------------|------|-----------------------------------------------------------------------|------------------------------------------------------------------|
| ENABLE_FLAC | bool | 激活无损音质获取 | `ENABLE_FLAC=true` |
| ENABLE_LOCAL_VIP | str | 激活本地黑胶 VIP,可选值:`true`(等同于 CVIP)、`cvip``svip` | `ENABLE_LOCAL_VIP=svip` |
| LOCAL_VIP_UID | str | 仅对这些 UID 激活本地黑胶 VIP,默认为对全部用户生效 | `LOCAL_VIP_UID=123456789,1234,123456` |
| ENABLE_HTTPDNS | bool | 激活故障的 Netease HTTPDNS 查询(不建议) | `ENABLE_HTTPDNS=true` |
| BLOCK_ADS | bool | 屏蔽应用内部分广告 | `BLOCK_ADS=true` |
| DISABLE_UPGRADE_CHECK | bool | 禁用更新检测 | `DISABLE_UPGRADE_CHECK=true` |
| DEVELOPMENT | bool | 激活开发模式。需要自己用 `yarn` 安装依赖 (dependencies) | `DEVELOPMENT=true` |
| FOLLOW_SOURCE_ORDER | bool | 严格按照配置音源的顺序进行查询 | `FOLLOW_SOURCE_ORDER=true` |
| JSON_LOG | bool | 输出机器可读的 JSON 记录格式 | `JSON_LOG=true` |
| NO_CACHE | bool | 停用 cache | `NO_CACHE=true` |
| MIN_BR | int | 允许的最低源音质,小于该值将被替换 | `MIN_BR=320000` |
| SELECT_MAX_BR | bool | 选择所有音源中的最高码率替换音频 | `SELECT_MAX_BR=true` |
| LOG_LEVEL | str | 日志输出等级。请见〈日志等级〉部分。 | `LOG_LEVEL=debug` |
| LOG_FILE | str | 从 Pino 端设置日志输出的文件位置。也可以用 `*sh` 的输出重导向功能 (`node app.js >> app.log`) 代替 | `LOG_FILE=app.log` |
| JOOX_COOKIE | str | JOOX 音源的 wmid 和 session_key cookie | `JOOX_COOKIE="wmid=<your_wmid>; session_key=<your_session_key>"` |
| MIGU_COOKIE | str | 咪咕音源的 aversionid cookie | `MIGU_COOKIE="<your_aversionid>"` |
| QQ_COOKIE | str | QQ 音源的 uin 和 qm_keyst cookie | `QQ_COOKIE="uin=<your_uin>; qm_keyst=<your_qm_keyst>"` |
| YOUTUBE_KEY | str | Youtube 音源的 Data API v3 Key | `YOUTUBE_KEY="<your_data_api_key>"` |
| SIGN_CERT | path | 自定义证书文件 | `SIGN_CERT="./server.crt"` |
| SIGN_KEY | path | 自定义密钥文件 | `SIGN_KEY="./server.key"` |
| SEARCH_ALBUM | bool | 在其他音源搜索歌曲时携带专辑名称(默认搜索条件 `歌曲名 - 歌手`,启用后搜索条件 `歌曲名 - 歌手 专辑名` | `SEARCH_ALBUM=true` |
| NETEASE_COOKIE | str | 网易云 Cookie | `MUSIC_U=007554xxx` |
### 网易云服务器IP
通过 `ping music.163.com` 获得网易云服务器的 IP 地址
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+17
View File
@@ -0,0 +1,17 @@
additionalProperties:
key: splayer
name: SPlayer
tags:
- WebSite
- Local
shortDescZh: 一个简约的音乐播放器
shortDescEn: A minimalist music player
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/imsyy/SPlayer/
github: https://github.com/imsyy/SPlayer/
document: https://github.com/imsyy/SPlayer/
architectures:
- amd64
- arm64
+71
View File
@@ -0,0 +1,71 @@
additionalProperties:
formFields:
- default: 25884
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "103.135.240.77"
edit: true
envKey: NETEASE_SERVER_IP
labelZh: 网易云音乐服务器IP
labelEn: Netease Music Server IP
required: false
type: text
- default: "kugou bodian migu ytdlp bilibili qq kuwo joox youtube youtubedl bilivideo pyncmd"
edit: true
envKey: UNBLOCK_SOURCES
labelZh: 启用音源
labelEn: Enable Music Sources
required: true
type: text
- default: "true"
edit: true
envKey: ENABLE_FLAC
labelZh: 启用无损音源
labelEn: Enable FLAC
required: true
type: select
values:
- label: 启用
value: "true"
- label: 禁用
value: "false"
- default: ""
edit: true
envKey: JOOX_COOKIE
labelZh: Joox 音源 Cookie
labelEn: Joox Cookie
required: false
type: text
- default: ""
edit: true
envKey: MIGU_COOKIE
labelZh: 咪咕音源 Cookie
labelEn: Migu Cookie
required: false
type: text
- default: ""
edit: true
envKey: QQ_COOKIE
labelZh: QQ 音源 Cookie
labelEn: QQ Music Cookie
required: false
type: text
- default: ""
edit: true
envKey: YOUTUBE_KEY
labelZh: YouTube 音源 API Key
labelEn: YouTube API Key
required: false
type: text
- default: ""
edit: true
envKey: NETEASE_COOKIE
labelZh: 网易云音乐音源 Cookie
labelEn: Netease Music Cookie
required: false
type: text
+30
View File
@@ -0,0 +1,30 @@
networks:
1panel-network:
external: true
services:
splayer:
image: imsyy/splayer:latest
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:25884
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
environment:
- TZ=Asia/Shanghai
- ENABLE_HTTPDNS=false
- BLOCK_ADS=true
- DISABLE_UPGRADE_CHECK=false
- DEVELOPMENT=false
- FOLLOW_SOURCE_ORDER=true
- JSON_LOG=false
- NO_CACHE=false
- SELECT_MAX_BR=true
- LOG_LEVEL=info
- SEARCH_ALBUM=true
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1663641871751" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11550" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M511.764091 131.708086a446.145957 446.145957 0 1 0 446.145957 446.145957 446.145957 446.145957 0 0 0-446.145957-446.145957z m0 519.76004A71.829499 71.829499 0 1 1 583.59359 580.530919 72.275645 72.275645 0 0 1 511.764091 651.468126z" fill="#F55E55" p-id="11551"></path><path d="M802.205109 0.541175l-168.197026 37.030114a67.814185 67.814185 0 0 0-53.091369 66.029602V223.614153l3.569168 349.778431h114.213365V223.614153h108.859613a26.322611 26.322611 0 0 0 26.768758-26.322611V26.863786a26.768757 26.768757 0 0 0-32.122509-26.322611z" fill="#F9BBB8" p-id="11552"></path><path d="M511.764091 386.457428a186.935156 186.935156 0 1 0 186.935156 186.48901A186.935156 186.935156 0 0 0 511.764091 386.457428z m0 264.564552a71.383353 71.383353 0 1 1 71.383353-71.383353 71.383353 71.383353 0 0 1-71.383353 71.383353z" fill="#F9BBB8" p-id="11553"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB