自托管流媒体备用服务的搭建方法–基于Navidrome+ytm的实现
后端开发
services:
# --- 下载层:Yubal (负责从 YouTube Music 抓取) ---
yubal:
image: ghcr.io/guillevc/yubal:latest
container_name: yubal
user: "1000:1000" # ⚠️ 请替换为你本机用户的 UID:GID(可通过 `id $USER` 查看)
ports:
- "8000:8000"
environment:
- YUBAL_SCHEDULER_CRON=0 0 * * 0 # 每周日凌晨同步一次(降低风控概率)
- YUBAL_DOWNLOAD_UGC=false # 是否下载用户上传的内容(如自制录音)
- YUBAL_TZ=Asia/Shanghai
# 若需代理,请在此处填写干净的住宅代理或家庭宽带出口
# - http_proxy=http://your-proxy-ip:port
# - https_proxy=http://your-proxy-ip:port
# - no_proxy=localhost,127.0.0.1
volumes:
- "./yubal_data:/app/data" # 存放下载的音频文件
- "./yubal_config:/app/config" # 存放配置与数据库
restart: unless-stopped
# --- 供应层:Navidrome (负责流媒体分发) ---
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: "1000:1000" # 同上,建议与 yubal 一致
ports:
- "4533:4533"
environment:
ND_MUSICFOLDER: "/music"
ND_DATAFOLDER: "/data"
ND_SCANTIME: "1m" # 每分钟扫描一次新音乐(配合 yubal 自动同步)
ND_ENABLETRANSCODINGCONFIG: "true" # 开启转码,适合弱网环境(如 FRP 中转)
ND_DEFAULTLANGUAGE: "zh-Hans"
ND_FFMPEGPATH: "/usr/bin/ffmpeg" # Navidrome 镜像已内置 ffmpeg
volumes:
- "./navidrome_data:/data"
- "./yubal_data:/music:ro" # 只读挂载 yubal 的下载目录
restart: unless-stopped
![[衡天云]爆款云服务器 低至12元/月](/hty.png)