由 Serelix Studio 開發的跨平台音樂機器人,結合智慧推薦、情境感知與即時歌詞顯示,打造沉浸式的聆聽體驗。
Yinkan 是一款 智慧化音樂播放與管理機器人,可在 Discord 中提供動態播放、即時歌詞與 AI 推薦功能。
- 🎶 智慧推薦:根據播放歷史與使用情境動態生成播放清單。
- 🎛️ 多平台整合:支援 Discord 與多音源串流(YouTube、Spotify、SoundCloud)。
- 🎤 即時歌詞顯示:自動同步當前播放曲目的時間軸歌詞。
- 🤖 自動化管理:提供 /slash 指令控制播放、清單與隊列管理。
- 🛡️ 稳定可靠:支援 Docker、Railway、Render 等多雲部署架構。
| 項目 | 最低需求 | 建議版本 |
|---|---|---|
| Node.js | 18.x | 20.x |
| NPM / PNPM | 任意 | 建議 PNPM |
| Discord Token | 必填 | - |
| FFmpeg | 必須 | 最新版本 |
| 變數名 | 說明 | 是否必填 |
|---|---|---|
DISCORD_TOKEN |
Discord Bot Token | ✅ |
CLIENT_ID |
Discord Application Client ID | ✅ |
NODE_ENV |
production 或 development |
建議 |
GUILD_ID |
測試伺服器 ID(開發期) | 選填 |
cp .env.example .env
# 編輯 .env 填入上述變數優點:自動部署、免費額度、操作簡單
npm i -g @railway/cli
railway login
railway init
railway upRailway 專案頁 → Variables → 新增:
- DISCORD_TOKEN
- CLIENT_ID
- NODE_ENV=production
優點:免命令行,支援自動更新 缺點:閒置會休眠
步驟:
-
Push 專案至 GitHub
-
Render 建立新 Web Service
-
設定:
- Build:
npm install - Start:
node index.js
- Build:
-
新增環境變數
fly auth login
fly launch
fly deploy
fly secrets set DISCORD_TOKEN=xxxxx CLIENT_ID=xxxxx NODE_ENV=production適合長期運作的 Discord Bot(支援 Auto-Restart 與多區節點)。
heroku login
heroku create your-bot-name
git push heroku main
heroku config:set DISCORD_TOKEN=xxxxx CLIENT_ID=xxxxx NODE_ENV=production- 連接 GitHub
- 指定 Node.js 環境
- 設定 Build 與 Start 指令
- 新增環境變數
- 可使用
.do/app.yaml自動化設定
docker build -t yinkan-music-bot .docker run -d --name yinkan-bot \
-e DISCORD_TOKEN=xxxxx \
-e CLIENT_ID=xxxxx \
-e NODE_ENV=production \
yinkan-music-botversion: "3.8"
services:
bot:
build: .
container_name: yinkan-bot
restart: unless-stopped
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- CLIENT_ID=${CLIENT_ID}
- NODE_ENV=productiondocker compose up -d
docker compose logs -f開發期可用 Guild 註冊 即時同步指令。
node scripts/register-commands.js --guild $GUILD_ID
# 或全域註冊(需等待發佈)
node scripts/register-commands.js --global| 問題 | 可能原因 | 解法 |
|---|---|---|
| Bot 無法上線 | Token 錯誤、權限不足 | 重新檢查 .env 並重新邀請 |
| 無法播放音樂 | 缺少 FFmpeg | 安裝 FFmpeg 或確認 PATH |
| 指令沒出現 | 未註冊 / 未授權 scope | 確保包含 applications.commands scope |
| 無法連接語音頻道 | 權限不足或 Intents 錯誤 | 開啟 Voice 權限與必要 Intents |
查看日誌:
docker compose logs -f yinkan-bot
# 或 Railway / Render 的後台 Logs- 使用 Alpine 映像縮小體積
- 自動清除暫存、鎖定依賴版本
- 將伺服器部署於主要用戶所在區域
- 若使用遠端音源,可配置 CDN 或 Cache
- 啟用 Auto-Restart / Health Check
- 結構化日誌輸出(JSON 或簡易格式)
- 可定期自動重啟或檢查 Token 有效性
| 平台 | 免費額度 | 付費方案起點 |
|---|---|---|
| Railway | $5/月信用額度 | $20/月起 |
| Render | 750 小時/月 | $7/月起 |
| Fly.io | 免費層含 2 CPU 小時 | 按用量計費 |
| DigitalOcean | 無 | $5/月起 |
| Heroku | 無 | 依 Dyno 類型 |
- 不要將 Token 寫入 Git
- 一律使用環境變數或 Secret 管理
- 定期輪替 Token
- 最小化權限配置
- 啟用 2FA
- 📢 官方 Discord 群組 → SerelixStudio_Discord
- :camera_with_flash: 官方 IG → Serelix Studio IG
- :e_mail: 官方 Gmail → serelixstudio@gmail.com
- 🍴 Fork 專案
- 🌿 建立功能分支 →
git checkout -b feature/amazing-feature - ✅ 提交變更 →
git commit -m 'Add amazing feature' - ⬆️ 推送分支 →
git push origin feature/amazing-feature - ➡️ 開啟 Pull Request
Yinkan by Serelix Studio — 智慧音樂機器人平台 🎧 讓節奏流動,讓音樂更智慧。