durata totale mp3

Mi era venuta la curiosità di sapere quanto poteva essere la durata totale di una pennetta usb con parecchi mp3 dentro.  ed ho risolto con il seguente script

import os
from mutagen.mp3 import MP3
from mutagen.id3 import ID3

# Funzione per calcolare la durata di un file mp3
def calcola_durata(file_path):
    audio = MP3(file_path, ID3=ID3)
    return audio.info.length

# Funzione ricorsiva per scandire tutte le sottocartelle
def scandisci_cartella(cartella, durata_totale):
    for file in os.listdir(cartella):
        file_path = os.path.join(cartella, file)
        if os.path.isdir(file_path):
            durata_totale = scandisci_cartella(file_path, durata_totale)
        elif file_path.endswith(".mp3"):
            durata_totale += calcola_durata(file_path)
    
    return durata_totale

# Cartella della pennetta USB
cartella_usb = "percorso_cartella_pennetta_usb"

durata_totale = scandisci_cartella(cartella_usb, 0)

ore = int(durata_totale // 3600)
minuti = int((durata_totale % 3600) // 60)
secondi = int(durata_totale % 60)

print(f"Durata complessiva di ascolto: {ore} ore, {minuti} minuti, {secondi} secondi")