A continuación te explico paso a paso cómo lograr lo que pides:
Dentro de cada carpeta de artista coloca los archivos de audio (.mp3), crea playlists por mí y crea una carpeta con 200 carpetas vacías.
Requisitos previos
1. Tener todos los archivos .mp3 en una carpeta principal (por ejemplo: Musica).
2. Los archivos deben contener la etiqueta “Artista” en sus metadatos (puedes verificarlo con reproductores como VLC, iTunes, etc.). Si falta la etiqueta, el archivo irá a una carpeta Artista_Desconocido.
🔹 PASO 1 — Organizar los .mp3 por carpeta de artista
Puedes hacerlo de forma automática con un script. Aquí te doy opciones para Windows (PowerShell), macOS/Linux (Bash) y un script en Python (funciona en cualquier SO).
📌 Opción A – PowerShell (Windows)
1. Abre PowerShell como administrador.
2. Copia y pega el siguiente código (cambia C:\Musica por tu ruta real):
powershellDownloadCopy code$sourceFolder = "C:\Musica"
$files = Get-ChildItem -Path $sourceFolder -Filter *.mp3 -Recurse
foreach ($file in $files) {
# Obtener el nombre del artista de los metadatos
$artist = (Get-ItemProperty -Path $file.FullName -Name *).Artist
if (-not $artist) { $artist = "Artista_Desconocido" }
# Sanitizar el nombre (quitar caracteres inválidos)
$cleanArtist = $artist -replace '[\\/*?:"<>|]', ''
$destFolder = Join-Path $sourceFolder $cleanArtist
New-Item -ItemType Directory -Path $destFolder -Force | Out-Null
Move-Item -Path $file.FullName -Destination $destFolder -Force
}
Write-Host "¡Organización completada! Todos los MP3 están en carpetas por artista."
Ejecuta el script. Al finalizar, cada artista tendrá su propia carpeta dentro de C:\Musica con sus .mp3.
📌 Opción B – Bash (macOS / Linux)
1. Abre Terminal.
2. Copia y pega este script (cambia /ruta/Musica por tu ruta):
bashDownloadCopy code#!/bin/bash
SOURCE="/ruta/Musica"
find "$SOURCE" -type f -name "*.mp3" | while read mp3; do
# Extraer el artista con exiftool (instálalo si no lo tienes: sudo apt install libimage-exiftool-perl)
ARTIST=$(exiftool -Artist "$mp3" | awk -F': ' '{print $2}')
[[ -z "$ARTIST" ]] && ARTIST="Artista_Desconocido"
# Sanitizar nombre
CLEAN_ARTIST=$(echo "$ARTIST" | sed 's/[\\/*?:"<>|]//g')
DEST="$SOURCE/$CLEAN_ARTIST"
mkdir -p "$DEST"
mv "$mp3" "$DEST/"
done
echo "✅ ¡Archivos organizados por artista!"
Nota: Si no tienes exiftool, instálalo:
* Debian/Ubuntu: sudo apt install libimage-exiftool-perl
* macOS (Homebrew): brew install exiftool
Ejecuta el script y listo.
📌 Opción C – Script en Python (funciona en cualquier sistema)
1. Instala la librería mutagen (para leer etiquetas MP3):
bashDownloadCopy codepip install mutagen
1. Guarda el siguiente código en un archivo llamado organizar_music.py:
pythonDownloadCopy codeimport os
import shutil
from mutagen.easyid3 import EasyID3
import re
def sanitize(name):
"""Elimina caracteres no permitidos en nombres de carpeta."""
return re.sub(r'[\\/*?:"<>|]', "", name)
source_dir = input("Ingresa la ruta de la carpeta con los MP3: ").strip()
for filename in os.listdir(source_dir):
if filename.lower().endswith('.mp3'):
filepath = os.path.join(source_dir, filename)
try:
audio = EasyID3(filepath)
artist = audio.get('artist', ['Artista_Desconocido'])[0]
except:
artist = "Artista_Desconocido"
artist_clean = sanitize(artist)
target_dir = os.path.join(source_dir, artist_clean)
os.makedirs(target_dir, exist_ok=True)
shutil.move(filepath, os.path.join(target_dir, filename))
print(f"Moved '{filename}' → '{artist_clean}'")
print("\n✅ ¡Todos los MP3 están organizados por artista!")
1. Ejecútalo:
bashDownloadCopy codepython organizar_music.py
Ingresa la ruta (ej: /home/usuario/Musica) y presiona Enter.
Resultado: Dentro de Musica tendrás una carpeta por cada artista, y todos sus .mp3 dentro.
🔹 PASO 2 — Crear playlists (.m3u) para cada artista
Una playlist .m3u lista todos los archivos .mp3 de un artista. A continuación, scripts para generar una playlist por cada carpeta de artista.
📌 PowerShell (Windows)
Ejecuta este código después del Paso 1:
powershellDownloadCopy code$artistsFolder = "C:\Musica"
$artists = Get-ChildItem -Path $artistsFolder -Directory
foreach ($artist in $artists) {
$playlistPath = Join-Path $artist.FullName "$($artist.Name).m3u"
Get-ChildItem -Path $artist.FullName -Filter *.mp3 |
ForEach-Object { $_.Name } |
Out-File -FilePath $playlistPath -Encoding UTF8
}
Write-Host "✅ Playlists (.m3u) creadas para cada artista."
Cada carpeta de artista tendrá ahora un archivo NombreArtista.m3u que reproduce toda su música.
📌 Bash (macOS / Linux)
bashDownloadCopy codeSOURCE="/ruta/Musica"
for artist_dir in "$SOURCE"/*/; do
artist=$(basename "$artist_dir")
playlist="$artist_dir/${artist}.m3u"
find "$artist_dir" -type f -name "*.mp3" -printf "%f\n" > "$playlist"
done
echo "✅ Playlists (.m3u) generadas."
📌 Python (mismo script anterior, añade esto al final)
Añade después del print("\n✅ ¡Todos los MP3...") en el script de Python:
pythonDownloadCopy code# Crear playlists .m3u para cada artista
for artist_name in os.listdir(source_dir):
artist_path = os.path.join(source_dir, artist_name)
if os.path.isdir(artist_path):
playlist_file = os.path.join(artist_path, f"{artist_name}.m3u")
with open(playlist_file, 'w', encoding='utf-8') as pl:
for mp3 in os.listdir(artist_path):
if mp3.lower().endswith('.mp3'):
pl.write(f"{mp3}\n")
print("✅ Playlists (.m3u) creadas para cada artista.")
Ejecuta el script de nuevo (o solo esta parte) y se generarán las playlists.
📌 ¿Cómo usar la playlist?
Abre el archivo .m3u con cualquier reproductor (VLC, Winamp, iTunes, Spotify, etc.) y se reproducirán todos los temas del artista.
🔹 PASO 3 — Crear una carpeta con 200 carpetas vacías
📌 Windows (PowerShell)
powershellDownloadCopy codeNew-Item -ItemType Directory -Path "C:\200_Carpetas_Vacias" -Force
1..200 | ForEach-Object {
$folderName = "carpeta_$_.ToString('000')"
New-Item -ItemType Directory -Path "C:\200_Carpetas_Vacias\$folderName" -Force | Out-Null
}
Write-Host "✅ 200 carpetas vacías creadas en C:\200_Carpetas_Vacias"
📌 macOS / Linux (Bash)
bashDownloadCopy codemkdir -p 200_Carpetas_Vacias
for i in {1..200}; do
mkdir -p "200_Carpetas_Vacias/carpeta_$(printf "%03d" $i)"
done
echo "✅ 200 carpetas vacías creadas en ./200_Carpetas_Vacias"
📌 Python (añade al final del script anterior)
pythonDownloadCopy codeempty_folder = "200_Carpetas_Vacias"
os.makedirs(empty_folder, exist_ok=True)
for i in range(1, 201):
folder_name = os.path.join(empty_folder, f"carpeta_{i:03d}")
os.makedirs(folder_name, exist_ok=True)
print("✅ 200 carpetas vacías creadas en './200_Carpetas_Vacias'")
✅ RESUMEN FINAL
PasoQué se haceResultado1Organizar .mp3 por artistaCada artista tiene su carpeta con sus archivos2Crear playlists .m3uDentro de cada carpeta de artista hay un archivo Artista.m3u que reproduce toda su música3Crear 200 carpetas vacíasUna carpeta llamada 200_Carpetas_Vacias que contiene 200 sub‑carpetas vacías (carpeta_001 … carpeta_200)
¡Listo! Tu biblioteca de música está perfectamente organizada. 🎧