Grizouille 4feda2d8de en trop
2025-11-10 14:11:37 +01:00
2025-11-06 22:42:49 +01:00
2025-11-10 14:11:37 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-06 22:42:49 +01:00
2025-11-10 14:08:58 +01:00

🎵 Deezer Downloader for Nextcloud WebDav

🧩 Description

Ce projet a pour objectif dévoluer en une application Nextcloud. Pour linstant, il sagit dune **application externe utilasant WEBDAV **.

Le projet est basé sur le dépôt GitHub de deezer-downloader. Un grand merci aux auteurs pour leur excellent travail !

Pourquoi

Je souhaitais intégrer à Nextcloud un raccourci permettant aux utilisateurs de télécharger leur musique, playlists, albums, etc., directement depuis Nextcloud. Les téléchargement sont directement accessible des Fichiers de Nextcloud. Vous pouvez aussi choisir un répertoire situé dans le dossier de syncronisation de l'application interne Musique pour profiter directement du téléchargement sur une appli de streaming style subsonic...

🔧 Modifications apportées par rapport au dépôt original

  • 🔐 Utilisation du JWT de Nextcloud pour obtenir les informations didentification de lutilisateur connecté.
  • 📂 Téléchargement des fichiers dans le dossier personnel de lutilisateur connecté, dans un répertoire créé à la racine : Music/DeezerDl.
  • 🚫 Vérification de la connexion à Nextcloud : si non connecté → retour 403 Forbidden.

Installation sur NextCloud (Debian 12)

Dans le container DeezerDownloader

Mettre à jour le container

apt update 
apt upgrade

Créer le point de montage où son stoké les données Nextcloud.

J'ai créé un point de montage directement vers les fichiers de nextcloud:

mp0: /Data/NAS/nextcloud/data_directory/data/,mp=/nextcloud_user_data

Créer un utilisateur www-data pour faire tourner le service.

Verifier si deja existant: id www-data

Si vous obtenez des informations sur lutilisateur et le groupe, il existe déjà. Sinon, vous aurez un message du type no such user.

Créer lutilisateur et le groupe www-data:

groupadd www-data
useradd -r -s /usr/sbin/nologin -g www-data www-data

Donner à l'utilisateur www-data le meme uid user et group que celui de www-data du contenair Nextcloud.

ls -ln /nextcloud_user_data/
> drwxr-xr-x  5 100033 100033     5 Oct 19 14:57 Parent

100033 100033 est l uid et le gid

usermod -u 100033 www-data
groupmod -g 100033 www-data

Résultat: id www-data uid=100033(www-data) gid=100033(www-data) groups=100033(www-data)

Installer python et le venv

apt install -y python3 python3-venv python3-pip sudo ffmpeg

Créer le venv pour www-data

mkdir -p /var/www/venv
chown www-data:www-data /var/www/venv
chmod 750 /var/www/venv

sudo -u www-data python3 -m venv /var/www/venv

sudo -u www-data bash
source /var/www/venv/bin/activate
python --version
pip --version

deactivate

Pour désactiver le venv deactivate

Installer le site DeezerDownloader

sudo mkdir -p /var/www/app
sudo chown www-data:www-data /var/www/app

apt install git

sudo -u www-data git clone https://git.bonisco.fr/Grizouille/Deezer-Downloader-Nextcloud.git /var/www/app

Installer les dépandences:

sudo -u www-data /var/www/venv/bin/pip install /var/www/app
sudo -u www-data /var/www/venv/bin/pip install yt-dlp
sudo -u www-data /var/www/venv/bin/pip install paramiko
sudo -u www-data /var/www/venv/bin/pip install PyJWT

Ajouter le fichier de config


sudo -u www-data bash
source /var/www/venv/bin/activate
deezer-downloader --show-config-template > /var/www/app/config.ini
deactivate

Rester sous www-data et aller éditer le fichier config.ini, les explication son à l'interieur...

Créer le service pour qu'il soit autonome

nano /etc/systemd/system/deezer_downloader.service 
[Unit]
Description=Deezer Downloader Service
After=network.target

[Service]
# Répertoire de travail (là où est ton config.ini)
WorkingDirectory=/var/www/app

# Commande de lancement (binaire du venv)
ExecStart=/var/www/venv/bin/deezer-downloader --config /var/www/app/config.ini

# Redémarrage automatique en cas derreur
Restart=on-failure

# Exécution sous root (puisque ton venv est dans /root)
User=www-data
Group=www-data

# Variables denvironnement
Environment="PATH=/var/www/venv/bin:/usr/bin"
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

Puis l'activer et le lancer:

sudo systemctl daemon-reload
sudo systemctl enable deezer_downloader.service
sudo systemctl start deezer_downloader.service

sudo journalctl -u deezer_downloader.service -f

Configurer les settings

Dans le container nextcloud:

adduser nextclouddeezer
apt install sudo
nano visudo

ajouter en fin de fichier la ligne:

nextclouddeezer ALL=(www-data) NOPASSWD: /usr/bin/php 

cela permet d'executer des command php avec l'utilisateur nextclouddeezer

Dans le confg.ini dans la container deezer-dowloader, ajouter le mdp de l'utilisateur ue vous venez de dréer.

Dev sous windows (vsCode):

Pour que powershell accepte d'exécuter des scripts:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

venv activer avec:

.\.venv\Scripts\Activate.ps1

Install:

pip install poetry
git clone https://github.com/kmille/deezer-downloader.git
cd deezer-downloader
poetry install
poetry run deezer-downloader --show-config-template > settings.ini

run du srv en ligne de cmd:

poetry run deezer-downloader --config .\deezer_downloader\settings.ini
Description
Fork de deezer-downloader pour en faire une app externe Nextcloud
Readme MIT 1.5 MiB
Languages
Python 74.2%
JavaScript 13.5%
HTML 9.8%
CSS 1.4%
Dockerfile 1.1%