From e150e47b91949e9e02b78a1a2badf50c88eaa6d5 Mon Sep 17 00:00:00 2001 From: Aroy-Art Date: Sat, 21 Sep 2024 23:07:42 +0200 Subject: [PATCH] Add: py script to get stats of music files --- Python/MusicLibVisualizing/main.py | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Python/MusicLibVisualizing/main.py diff --git a/Python/MusicLibVisualizing/main.py b/Python/MusicLibVisualizing/main.py new file mode 100644 index 0000000..ec6a58d --- /dev/null +++ b/Python/MusicLibVisualizing/main.py @@ -0,0 +1,43 @@ +import os +import sys +import mutagen + +if len(sys.argv) != 2: + print("Usage: python3 MusicLibVisualizing/main.py ") + sys.exit(1) + +music_library = sys.argv[1] + +music_data = [] + +from tqdm import tqdm + +for root, dirs, files in tqdm(list(os.walk(music_library)), desc="Walking folders", unit="folders"): + for file in tqdm(files, desc=f"Processing folder {root}", unit="files"): + if file.endswith(('.mp3', '.flac', '.opus')): + try: + audio = mutagen.File(os.path.join(root, file)) + #print(f"Processing {file}") + #print(audio.info) + music_data.append({ + "title": audio.get('title', ['Unknown'])[0], + "artist": audio.get('artist', ['Unknown'])[0], + "album": audio.get('album', ['Unknown'])[0], + "genre": audio.get('genre', ['Unknown'])[0], + "length": audio.info.length, + #"bitrate": audio.info.bitrate + }) + except Exception as e: + print(f"Error processing {file}: {e}") + +print(f"Found a total of {len(music_data)} files.") + +import pandas as pd + +df = pd.DataFrame(music_data) + + + +import seaborn as sns +import matplotlib.pyplot as plt +