Portfolio

Automatisation Python SpotDL

Automatisation Python

Description du projet

Développement d'un script Python automatisé pour la synchronisation quotidienne d'une bibliothèque musicale via l'outil SpotDL, avec gestion des erreurs par email et planification via Crontab.

Technologies utilisées

  • Python 3.9
  • SpotDL (bibliothèque de téléchargement)
  • Crontab (planification de tâches)
  • SMTP (notifications par email)
  • Logging (journalisation des événements)

Fonctionnalités

  • Synchronisation automatique quotidienne à 2h du matin
  • Gestion de +1500 titres par mois
  • Détection et rapport des erreurs par email
  • Journalisation complète des opérations
  • Optimisation de l'usage réseau et disque

Compétences développées

  • Automatisation de processus
  • Gestion d'erreurs avancée
  • Notifications par email
  • Planification de tâches système
  • Manipulation de fichiers multimédias

Extrait du code


import spotdl
from crontab import CronTab
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Configuration des chemins
MUSIC_DIR = "/media/nas/music"
PLAYLIST_FILE = "/scripts/playlists.txt"
LOG_FILE = "/scripts/spotdl_sync.log"

# Configuration automatique dans cron
cron = CronTab(user=True)
job = cron.new(command='python3 /scripts/music_sync.py')
job.hour.on(2)  # Exécution quotidienne à 2h
cron.write()

def send_notification(subject, message):
    # Envoi de notifications par email en cas d'erreur ou résumé
    # [code implémenté]
    
def sync_playlists():
    # Logique principale de synchronisation
    # [code implémenté]
    
if __name__ == "__main__":
    sync_playlists()
      

Métriques et impact

1500+

Titres synchronisés par mois

98%

Taux de réussite des synchronisations

Retour aux projets