#!/bin/bash # Définition des paramètres par défaut num_files=100 # Nombre de fichiers à inclure dans le M3U par défaut directory="$PWD" # Répertoire par défaut à scanner date_format=$(date +"%Y%m%d_%H%M%S") # Fonction pour afficher l'utilisation du script usage() { echo "Utilisation : $0 [-n ] [-d ] [-o ]" echo "Options :" echo " -n : Nombre de fichiers à inclure dans le M3U" echo " -d : Répertoire à scanner (y compris les sous-répertoires)" echo " -o : Nom du fichier M3U de sortie" exit 1 } # Analyse des options de ligne de commande while getopts "n:d:o:" opt; do case $opt in n) num_files=$OPTARG ;; d) directory=$OPTARG ;; o) output_file=$OPTARG ;; \?) echo "Option non valide : -$OPTARG" >&2 usage ;; esac done # Vérifier si le fichier user-dirs.dirs existe if [[ -f ~/.config/user-dirs.dirs ]]; then # Charger les variables depuis le fichier user-dirs.dirs source ~/.config/user-dirs.dirs # Vérifier si la variable XDG_MUSIC_DIR est définie if [[ -v XDG_MUSIC_DIR ]]; then # Le répertoire XDG_MUSIC_DIR existe mkdir -p "$XDG_MUSIC_DIR/playlists" output_file="$XDG_MUSIC_DIR/playlists/playlist_${date_format}_${num_files}.m3u" else # La variable XDG_MUSIC_DIR n'est pas définie output_file="$HOME/playlist_${date_format}_${num_files}.m3u" fi else # Le fichier user-dirs.dirs n'existe pas output_file="$HOME/playlist_${date_format}_${num_files}.m3u" fi # Vérification si le répertoire existe if [ ! -d "$directory" ]; then echo "Le répertoire spécifié n'existe pas : $directory" usage fi # Création d'un fichier temporaire pour stocker la liste des fichiers audio avec leur date de création temp_file=$(mktemp) echo "Recherche en cours des fichiers audios dans \"$directory\"" find "$directory" -type f \( -name "*.mp3" -o -name "*.opus" -o -name "*.ogg" -o -name "*.m4a" \) -exec stat --format="%Z %n" {} + > "$temp_file" echo "Nombre de fichiers audios trouvé dans $directory : "$(wc -l "$temp_file") # Création de la liste des fichiers audio les plus récents à partir du fichier temporaire sort -n -r -o "$temp_file" "$temp_file" head -n "$num_files" "$temp_file" | awk '{print $2}' > "$output_file" # Suppression du fichier temporaire rm "$temp_file" echo "Le fichier M3U a été créé avec les $num_files fichiers audio les plus récents dans le répertoire $directory : $output_file"