Paso 1: Instalación de bandcamp-dl
Para instalar bandcamp-dl, puedes usar pip:
pip3 install bandcamp-descargar
O clonar el repositorio y ejecutar la instalación desde el código fuente:
git clone https://gitcode.com/gh_mirrors/ba/bandcamp-dl
cd bandcamp-dl
pip install .
Paso 2: Descarga Básica
La forma más sencilla de usar bandcamp-dl es ingresando la URL del álbum:
bandcamp-dl https://artista.bandcamp.com/album/nombre-album
Paso 3: Estructura de Archivos Descargados
Después de la descarga, los archivos se organizan así:
NombreArtista/
├── NombreAlbum/
│ ├── 01 - TituloCancion.mp3
│ ├── 02 - TituloCancion.mp3
│ └── portada.jpg
Funcionalidades Avanzadas
Organización Inteligente de Archivos
Utiliza plantillas personalizadas para controlar cómo se guardan tus archivos:
# Usando una plantilla personalizada
bandcamp-dl --plantilla "%{artista}/%{album}/%{numero}. %{titulo}" [URL]
# Variables disponibles
# %{artista} - Nombre del artista
# %{album} - Nombre del álbum
# %{numero} - Número de pista
# %{titulo} - Título de la canción
# %{fecha} - Fecha de lanzamiento
# %{discografica} - Discográfica
Gestión de Portadas e Letras
| Saltar descarga de portada | -n, --no-portada | No descarga la imagen de la portada |
|---|---|---|
| Incrustar portada | -r, --incrustar-portada | Incrusta la portada en el archivo de audio |
| Incrustar letras | -e, --incrustar-letras | Añade las letras disponibles al archivo |
| Calidad de la portada | --calidad-portada | 0=calidad original, 10=calidad página, 16=incrustación predeterminada |
Ejemplo de Script Automatizado
Este script Python automatiza la descarga de múltiples URLs:
#!/usr/bin/env python3
import subprocess
import time
def descarga_inteligente(lista_urls, retardo=5):
"""Descarga inteligente para evitar sobrecargar el servidor"""
for i, url in enumerate(lista_urls):
print(f"Descargando {i+1}/{len(lista_urls)}: {url}")
resultado = subprocess.run(
["bandcamp-dl", "--incrustar-portada", url],
capture_output=True,
text=True
)
if resultado.returncode == 0:
print("✓ Éxito")
else:
print("✗ Error:", resultado.stderr[:200])
# Retardo para no saturar
if i < len(lista_urls) - 1:
time.sleep(retardo)
if __name__ == "__main__":
urls = [
"https://artista1.bandcamp.com/album/album1",
"https://artista2.bandcamp.com/album/album2",
]
descarga_inteligente(urls)