Table des matières

Déployer le conteneur Mazinger-Extractor



Docker

Chaque archive contient :

.
├── docker-compose-ALPINE.yml             # Le Ficher compose
├── Dockerfile-ALPINE                     # Le Dockerfile
├── download.php                          # La Gestion des téléchargements
├── index2.html                           # Variante de l'interface utilisateur avec Note Music fottante
├── index.html                            # Interface utilisateur classique
├── process.php                           # Le Backend de traitement
└── start-alpine.sh                       # Le Script Clé en main
════════════════════════════════════════════════════════════
  🐳 Mazinger Audio Extractor - Déploiement Docker
════════════════════════════════════════════════════════════
 
🔍 Vérification des prérequis...
✅ Docker installé : Docker version 29.0.0, build 3d4129b
✅ Docker Compose installé
 
📁 Vérification des fichiers...
✅ Tous les fichiers sont présents
 
🚀 Que voulez-vous faire ?
 
  1) Démarrer (build + start)
  2) Arrêter
  3) Redémarrer
  4) Voir les logs
  5) Reconstruire l image
  6) Tout supprimer (containers + volumes)
  7) Afficher le statut
 
Choix (1-7) : # Backend de traitement

64x86 Version

Image docker avec debian + Apache.
📌 mazinger-extrator_docker_debian_apache-86x64.zip

ARMHF64 Debian

image docker avec Debian + Apache.
📌 mazinger-extractor-docker_debian_apache-armhf.zip

ARMHF64 Alpine

image docker avec alpine Linux + Nginx.
📌 mazinger-extractor_docker_alpine_nginx-armhf.zip


Standalone

Apache ou Nginx
📌 mazinger-extractor_apache_std-armhf.zip

Pour les version Dockerisées le port par défaut est le 9090


📋 Prérequis

Serveur Web 🌐 Apache ou Nginx
- PHP 7.4+ avec les extensions:

  1. `shell_exec` activé
  2. `json`
  3. `fileinfo`

🔧 Dépendances

1. Installer yt-dlp
yt-dlp est l'outil principal pour télécharger depuis YouTube.

sudo apt update
sudo apt install python3 python3-pip
sudo pip3 install -U yt-dlp

Contrôle de version :

yt-dlp --version

2. Installer FFmpeg
FFmpeg est nécessaire pour la conversion audio.

sudo apt install ffmpeg

Contrôle de version :


📁 Structure des Fichiers

/var/www/html/audio-extractor/
│
├── index.html                    # Interface utilisateur
├── indexv2.html                  # Variante de l'interface utilisateur avec Note Music fottante
├── process.php                   # Backend de traitement
├── download.php                  # Gestion des téléchargements
├── downloads/                    # Dossier des fichiers générés
├── generate_api_key.php          # Page qui vous aidera a générer une clé API*
└── temp/                         # Dossier temporaire

La Clé d'API sert à valider les ordres envoyés depuis la page index.html vers process.php

Modifiez `process.php` pour ajouter une clé API
Puis dans le JavaScript (index.html)

# Propriétaire des fichiers (remplacer www-data si nécessaire)
sudo chown -R www-data:www-data /var/www/html/audio-extractor
# Permissions des dossiers
sudo chmod 755 /var/www/html/audio-extractor
sudo chmod 775 downloads/
sudo chmod 775 temp/
 
# Permissions des fichiers PHP
sudo chmod 644 *.php *.html

Vérifiez que `shell_exec` est activé dans `php.ini`:

sudo nano /etc/php/8.1/apache2/php.ini
# ou
sudo nano /etc/php/8.1/fpm/php.ini
disable_functions = 
# Assurez-vous que shell_exec n'est PAS dans la liste
sudo systemctl restart apache2
# ou
sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm

Attention dans l'archive un fichier .htaccess est présent mais non visible


⛔ .htaccess

Éditer et modifier en fonction de votre serveur Web :

**Dans Apache (.htaccess):**
```apache
<Files "process.php">
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.0/24
    Allow from YOUR.IP.ADDRESS
</Files>
```
 
**Dans Nginx:**
```nginx
location /process.php {
    allow 192.168.1.0/24;
    allow YOUR.IP.ADDRESS;
    deny all;
 
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    include fastcgi_params;
}

🪛 Taille et Débit

Ajoutez dans `process.php`:
 
```php
// Limite de taille vidéo (en Mo)
define('MAX_FILESIZE', 100);
 
// Dans la fonction downloadAudio, ajoutez:
$ytdlpCommand .= ' --max-filesize ' . MAX_FILESIZE . 'M';
```

🧽 Nettoyage automatique

Créez un cron job pour nettoyer les vieux fichiers:

crontab -e
0 */6 * * * find /var/www/html/audio-extractor/downloads -type f -mmin +60 -delete
0 */6 * * * find /var/www/html/audio-extractor/temp -type f -mmin +60 -delete

🧰 Dépannage

Erreur 403 Forbidden
- Mettez à jour yt-dlp:

pip3 install -U yt-dlp

⚖️ Licence et Responsabilité

  1. Utilisez ce système de manière responsable
  2. Respectez les droits d'auteur
  3. Conformez-vous aux lois locales
  4. L'auteur n'est pas responsable de l'usage abusif

Performance

┌──────────────┬──────────────┬──────────────┬──────────────┐
│   Critère    │   Deb armhf  │  Alpine std  │ Alp MAZINGER │
├──────────────┼──────────────┼──────────────┼──────────────┤
│⚖️ Taille     │    350 MB    │    80 MB     │   🤖 85 MB   │
│⚙️ aria2c     │      ✅      │      ❌      │    🤖 ✅     │
│🎵 MP3 128k   │     18s      │     65s      │   🤖 40s     │
│📊 RAM        │    650 MB    │   450 MB     │  🤖 500 MB   │
│⌚ Build RPi  │    30 min    │    12 min    │  🤖 12 min   │
└──────────────┴──────────────┴──────────────┴──────────────┘


sylvain 2025/11/27 00:32