在群晖上搭建PlaylistDL音乐下载器

简介

什么是 PlaylistDL ?

PlaylistDL 是一个基于网页的下载器,旨在从 SpotifyYouTube 下载歌曲、专辑或播放列表,并将其转换为 MP3 文件。该应用程序提供用户友好的网页界面,用户可以输入链接,系统会自动处理并下载音频文件。

主要特点

  • 支持 Spotify 和 YouTube:能够识别并处理来自这两个平台的播放列表链接。
  • 会话管理:为每个用户会话创建唯一的下载目录,方便管理下载文件。
  • 管理员模式:允许管理员直接下载到指定的服务器文件夹。
  • 实时进度条和日志:用户可以通过网页界面实时查看下载进度和日志。
  • 自动清理:在指定时间后自动删除临时下载文件夹。
  • 组织下载:下载的文件按艺术家和专辑整理,保持整洁。

技术背景

  • 后端:使用 Flask 处理下载请求和会话管理。
  • 前端:简单的 HTMLJavaScript 界面,用于输入链接和显示进度。
  • 工具
    • spotdl用于下载 Spotify 播放列表。
    • yt-dlp用于将 YouTube 播放列表下载为 MP3

PlaylistDL 适合个人使用,但用户需遵循相关版权法律,仅下载授权使用的媒体内容。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 playlistdl ,选择第一个 tanner23456/playlistdl,版本选择 v2

docker 文件夹中,创建一个新文件夹 playlistdl,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/playlistdl/data /data 存放下载的 MP3 文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5045 5000

环境

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

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 playlistdl 和 子目录
mkdir -p /volume1/docker/playlistdl/data

# 进入 playlistdl 目录
cd /volume1/docker/playlistdl

# 运行容器
docker run -d \
--restart unless-stopped \
--name playlistdl \
-p 5045:5000 \
-v $(pwd)/data:/data \
-e ADMIN_USERNAME=laosu \
-e ADMIN_PASSWORD=123456 \
-e AUDIO_DOWNLOAD_PATH=/data \
-e CLEANUP_INTERVAL=300 \
tanner23456/playlistdl:v2

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'

services:
playlistdl:
image: tanner23456/playlistdl:v2
container_name: playlistdl
restart: unless-stopped
volumes:
- ./data:/data
ports:
- "5045:5000"
environment:
- ADMIN_USERNAME=laosu
- ADMIN_PASSWORD=123456
- AUDIO_DOWNLOAD_PATH=/data
- CLEANUP_INTERVAL=300

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 playlistdl 和 子目录
mkdir -p /volume1/docker/playlistdl/data

# 进入 playlistdl 目录
cd /volume1/docker/playlistdl

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

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

点右上角 Admin 可进入登录界面

不登录直接下载,文件是不会保存到服务器上的

用环境变量 ADMIN_USERNAMEADMIN_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