目 录CONTENT

文章目录

在飞牛云或者VPS用Docker搭建一个基于spotdl和yt-dl的音乐下载器-playlistdl

yyzq
2025-06-04 / 0 评论 / 1 点赞 / 82 阅读 / 1,316 字

前言

一款自托管的 Web 应用,用于从 Spotify 和 YouTube 下载 MP3 格式的歌曲、专辑或播放列表。该应用提供了一个 Web 界面,用户可输入链接,然后使用spotdl(Spotify)或yt-dlp(YouTube)下载为音频文件。

界面

以下是与该项目相关的一些图片:
image-1749029975340

功能介绍

  • 下载 Spotify 和 YouTube 播放列表
    根据 URL 自动检测和处理播放列表。

  • 基于会话的下载目录
    将每个用户会话隔离到唯一的下载目录,避免文件混乱。

  • 管理员模式
    允许管理员用户直接下载到服务器上的指定文件夹。

  • 进度条和下载日志
    通过网页界面实时查看下载进度和日志,方便跟踪状态。

  • 自动清理
    在指定时间后自动删除临时会话的下载文件夹,节省存储空间。

  • 有组织的下载
    下载内容会按艺术家和专辑文件夹分类整理,保持整洁有序。

部署方法

使用Docker安装

本教程是使用docker-compose的方式安装部署

准备条件

1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的github
https://github.com/TannerNelson16/playlistdl
image-1749030238144
目前已经115个 stars
更多功能可以访问GitHub
该项目还基于
项目spotify-downloader(用于从Spotify下载音乐)(20k stars)
https://github.com/spotDL/spotify-downloader
和项目yt-dlp(用于从YouTube下载音乐)(114k stars)
https://github.com/yt-dlp/yt-dlp

3)域名(可选)
域名可以根据自己的需求绑定

①《飞牛NAS上搭建》

直接在docker新增一个compose项目即可
新建项目:

playlistdl

compose配置如下:

services:
  playlistdl:  # 服务名称
    image: tanner23456/playlistdl:v2  # 使用的镜像
    container_name: playlistdl  # 容器名称
    restart: always  # 始终自动重启容器
    ports:
      - "5225:5000"  # 映射主机的5225端口到容器的5000端口
    volumes:
      - ./data:/data  # 将当前目录下的data目录挂载到容器内的/data
    environment:
      ADMIN_USERNAME: "admin"  # 管理员用户名
      ADMIN_PASSWORD: "admin"  # 管理员密码
      AUDIO_DOWNLOAD_PATH: "/data"  # 音频下载保存路径
      CLEANUP_INTERVAL: "300"  # 自动清理音频的时间间隔(单位:秒)

启动即可
image-1749030452495
正常启动
image-1749030464932
资源占用情况如下
image-1749030476453

补充docker可用的镜像仓库

国内如果无法拉取镜像的可以使用
仓库1

https://proxy.1panel.live/

仓库2

https://docker.1panel.top/

仓库3

https://mirror.azure.cn/

仓库4

https://hub.rat.dev/

仓库5

https://docker.1ms.run

仓库6

https://docker.itelyou.cf/

仓库7

https://abc.itelyou.cf/

仓库8

https://docker.ywsj.tk/

②《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir playlistdl;cd playlistdl #创建一个目录,并进入此目录

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  playlistdl:  # 服务名称
    image: tanner23456/playlistdl:v2  # 使用的镜像
    container_name: playlistdl  # 容器名称
    restart: always  # 始终自动重启容器
    ports:
      - "5225:5000"  # 映射主机的5225端口到容器的5000端口
    volumes:
      - ./data:/data  # 将当前目录下的data目录挂载到容器内的/data
    environment:
      ADMIN_USERNAME: "admin"  # 管理员用户名
      ADMIN_PASSWORD: "admin"  # 管理员密码
      AUDIO_DOWNLOAD_PATH: "/data"  # 音频下载保存路径
      CLEANUP_INTERVAL: "300"  # 自动清理音频的时间间隔(单位:秒)

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

 docker-compose ps
NAME         IMAGE                       COMMAND                  SERVICE      CREATED          STATUS          PORTS
playlistdl   tanner23456/playlistdl:v2   "python3 /app/main.py"   playlistdl   41 minutes ago   Up 40 minutes   0.0.0.0:5225->5000/tcp, [::]:5225->5000/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(5225)防火墙就可以web端访问了
打开自己VPS的ip加端口在加路径就可进入初始化页面

http://ip:5225

默认不登录只能下载到本地
image-1749030615811
登录完可以直接下载到服务器
image-1749030662438
如飞牛本地
image-1749030731115

五、绑定域名

如需绑定域名的自行绑定
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

1

评论区