#!/usr/bin/env python3 import os import sys import eyed3 import shutil def sanitize_filename(name): return "".join(c for c in name if c.isalnum() or c in (' ', '-', '_')).rstrip() def organize_mp3s(directory): if not os.path.isdir(directory): print(f"Directory '{directory}' does not exist.") return for filename in os.listdir(directory): if not filename.lower().endswith(".mp3"): continue filepath = os.path.join(directory, filename) audiofile = eyed3.load(filepath) title = sanitize_filename(audiofile.tag.title) artist = sanitize_filename(audiofile.tag.album_artist) album = sanitize_filename(audiofile.tag.album) new_filename = f"{title} - {artist}.mp3" target_dir = os.path.join(directory, artist, album) os.makedirs(target_dir, exist_ok=True) new_path = os.path.join(target_dir, new_filename) shutil.move(filepath, new_path) if len(sys.argv) < 2: print("Usage: python organize_mp3s.py ") else: organize_mp3s(sys.argv[1]) #os.system(f"rsync -avz {sys.argv[1]}/* admin@krinitsin.com:/var/music/")