在群晖上搭建PlaylistDL音乐下载器
简介
什么是 PlaylistDL ?
PlaylistDL是一个基于网页的下载器,旨在从Spotify和YouTube下载歌曲、专辑或播放列表,并将其转换为MP3文件。该应用程序提供用户友好的网页界面,用户可以输入链接,系统会自动处理并下载音频文件。
主要特点
- 支持 Spotify 和 YouTube:能够识别并处理来自这两个平台的播放列表链接。
- 会话管理:为每个用户会话创建唯一的下载目录,方便管理下载文件。
- 管理员模式:允许管理员直接下载到指定的服务器文件夹。
- 实时进度条和日志:用户可以通过网页界面实时查看下载进度和日志。
- 自动清理:在指定时间后自动删除临时下载文件夹。
- 组织下载:下载的文件按艺术家和专辑整理,保持整洁。
技术背景
- 后端:使用
Flask处理下载请求和会话管理。 - 前端:简单的
HTML和JavaScript界面,用于输入链接和显示进度。 - 工具:
spotdl用于下载Spotify播放列表。yt-dlp用于将YouTube播放列表下载为MP3。
PlaylistDL 适合个人使用,但用户需遵循相关版权法律,仅下载授权使用的媒体内容。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 playlistdl ,选择第一个 tanner23456/playlistdl,版本选择 v2。

卷
在 docker 文件夹中,创建一个新文件夹 playlistdl,并在其中建一个子文件夹 data
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/playlistdl/data |
/data |
存放下载的 MP3 文件 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
5045 |
5000 |

环境
| 可变 | 值 |
|---|---|
ADMIN_USERNAME |
设置管理员访问的用户名 |
ADMIN_PASSWORD |
设置管理员访问的密码 |
AUDIO_DOWNLOAD_PATH |
指定音频文件下载的目标路径 |
CLEANUP_INTERVAL |
设置会话下载文件夹的清理时间间隔 |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 playlistdl 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 playlistdl 和 子目录 |

运行
在浏览器中输入 http://群晖IP:5045 就能看到主界面

点右上角 Admin 可进入登录界面
不登录直接下载,文件是不会保存到服务器上的

用环境变量 ADMIN_USERNAME 和 ADMIN_PASSWORD 设置的值登录
这时会看到一行红色的字
Now downloading directly to your server!

为了测试下载效果,在网页上寻找音乐。老苏没有 playlist,只能用单首替代

找一首可以正常播放的,直接复制分享的链接

粘贴到 PlaylistDL

点蓝色的 Download 按钮开始下载

下载完成

文件可以在 FileStation 中找到

本文只是演示软件功能,所下载的文件均已从服务器上删除
参考文档
TannerNelson16/playlistdl: A web-based downloader that uses either spotdl or yt-dl depending on the link provided
地址:https://github.com/TannerNelson16/playlistdl