Tony Wang6 min de lecturaCómo scrapear Discogs en 2026 (API y Python)
Scrapea Discogs en 2026 — releases, masters, artists y labels — DIY, no-code o una API estructurada, más la API gratuita propia de Discogs.
La forma más rápida de scrapear Discogs en 2026 es llamar a una API estructurada que devuelve JSON normalizado — detalle de release, master, artist y label — en lugar de hacer parsing de las páginas de Discogs o gestionar tú mismo el flujo de auth de su API oficial. A diferencia de varias plataformas de esta serie, Discogs sí ofrece una API pública gratuita y bien documentada — la pregunta honesta no es "¿existe una API?" sino si sus rate limits, el requisito de OAuth y los términos de reutilización encajan con tu workflow, o si una API estructurada que coloca a Discogs junto a otros catálogos bajo un mismo esquema es la mejor opción. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde falla cada uno, y la realidad legal por delante.
¿Por qué scrapear Discogs?
Discogs es la base de datos más grande construida por la comunidad de releases, pressings y labels musicales, que impulsa:
- Herramientas de coleccionismo y valoración de discos — seguir el precio de mercado de un release, sus variantes de pressing y los recuentos "have/want" de la comunidad a lo largo del tiempo.
- Investigación de pressing y formato — comparar vinyl vs. CD vs. ediciones digitales, números de catálogo y pressings específicos por país de un mismo release.
- Seguimiento de la discography de un label — seguir todo lo que un label ha publicado, incluyendo sub-labels y relaciones con el label matriz.
- Investigación de precios de mercado — extraer
lowest_priceynum_for_salea nivel de master para ver por cuánto se está negociando realmente un título.
¿Es legal scrapear Discogs?
Opción 1: La API gratuita propia de Discogs (y sus límites reales)
La API oficial de Discogs es real, gratuita y razonablemente documentada — no es un caso de "no hay API en absoluto". Las requests se limitan por IP de origen a aproximadamente 25 por minuto sin autenticar y 60 por minuto autenticado (una media móvil sobre una ventana de 60 segundos), con headers de respuesta X-Discogs-Ratelimit que te indican exactamente en qué punto estás. Para llegar al nivel más alto necesitas un personal access token o un handshake completo de OAuth 1.0a, más un user-agent único que identifique tu app. Es un trato razonable para un side project centrado en un solo catálogo, pero implica:
- Tú gestionas el ciclo de vida del auth. La configuración de token u OAuth, la rotación y la presupuestación del rate limit por IP son responsabilidad tuya, no de la API.
- 60/min no escala para una recolección masiva. Construir un catálogo de miles de releases significa o bien ejecutar durante horas contra el límite, o conseguir la aprobación de Discogs para un nivel superior.
- Es exclusivo de Discogs. Si un proyecto también toca ediciones de Goodreads, datos de tracks de Spotify o catálogos al estilo de IMDb, cada fuente trae su propio modelo de auth, rate limit y formato de respuesta que hay que conciliar.
Esa es la ventaja honesta de una API de scraping estructurada aquí: no que "Discogs no tenga API", sino que "un equipo que quiere datos de Discogs junto a otros catálogos bajo un esquema y una key se ahorra conciliar varios flujos de auth nativos para un puñado de lookups de solo lectura".
Opción 2: Herramientas no-code
Algunos marketplaces de scrapers no-code y extensiones de navegador ofrecen plantillas de Discogs para exportaciones puntuales — obtener la discography de un solo artist o el catálogo de un label sin escribir código. Están bien para una extracción pequeña y ocasional, pero no exponen de forma limpia los headers de rate limit ni el modelo de auth propios de Discogs, así que un job programado o de alto volumen sigue chocando con la misma fricción que llamar directamente a la API oficial.
Opción 3: Una API estructurada de Discogs (vía Crawlora)
Para un workflow repetible sin gestionar el token o el flujo OAuth propios de Discogs, una Discogs scraping API devuelve JSON normalizado sin parsing de páginas ni handshake de auth que mantener. Busca un release para obtener su id:
curl "https://api.crawlora.net/api/v1/discogs/search?q=Daft+Punk+Discovery&type=release" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "Daft Punk Discovery",
"type": "release",
"page": 1,
"pages": 4,
"per_page": 50,
"items": 171,
"results": [
{
"id": 2879,
"type": "release",
"title": "Daft Punk - Discovery",
"year": "2001",
"country": "Europe",
"genres": ["Electronic"],
"styles": ["Disco", "House"],
"formats": ["Vinyl", "LP", "Album", "Stereo"],
"labels": ["Virgin"],
"catno": "V2940",
"barcodes": ["724384960612"],
"master_id": 26647,
"uri": "https://www.discogs.com/release/2879-Daft-Punk-Discovery"
}
]
}
}
Luego resuelve el id y extrae el detalle de release, master o artist en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/discogs"
hits = requests.get(f"{base}/search", headers=h, params={"q": "Daft Punk Discovery", "type": "release"}).json()["data"]["results"]
release_id, master_id = hits[0]["id"], hits[0]["master_id"]
release = requests.get(f"{base}/release/{release_id}", headers=h).json()["data"]
master = requests.get(f"{base}/master/{master_id}", headers=h).json()["data"]
El detalle de release es JSON normalizado (campos reales — revisa los docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": 249504,
"title": "Never Gonna Give You Up",
"status": "Accepted",
"year": 1987,
"released": "1987-07-00",
"country": "UK",
"genres": ["Electronic", "Pop"],
"styles": ["Euro-Disco"],
"artists": [{ "id": 72872, "name": "Rick Astley" }],
"labels": [{ "id": 895, "name": "RCA", "catno": "PB 41447" }],
"formats": [{ "name": "Vinyl", "qty": "1", "descriptions": ["7\"", "45 RPM", "Single", "Stereo"] }],
"tracklist": [
{ "position": "A", "type": "track", "title": "Never Gonna Give You Up", "duration": "3:32" }
],
"community": { "have": 4062, "want": 580, "rating": { "count": 233, "average": 3.84 } },
"master_id": 96559
}
}
/discogs/artist/{id} devuelve bio, nombre real, aliases y grupos; /discogs/artist/{id}/releases y /discogs/label/{id}/releases paginan una discography completa (recuentos in_wantlist / in_collection incluidos por release); /discogs/label/{id} devuelve el perfil más las relaciones de label matriz y sub-labels. Guarda una fila por release (o por entrada de artist/label) y vuelve a ejecutarlo según un calendario.
Qué puedes recolectar
Metadatos de catálogo público: resultados de búsqueda (id, type, title, year, country, genres, styles, formats, labels, número de catálogo, barcodes); detalle de release (status, released date, country, genres, styles, artists, labels, formats, tracklist completa, have/want de la comunidad y rating); detalle de master (title, year, genres, styles, artists, main_release_id, num_for_sale, lowest_price); perfiles de artist (nombre real, aliases, grupos, variantes de nombre); discographies de artist y label (paginadas, con rol y formato por entrada); y perfiles de label (label matriz, sub-labels, info de contacto). Solo datos de base de datos pública.
Limitaciones y desafíos comunes
- Los rate limits aplican vayas por donde vayas. La API propia de Discogs te limita a 25–60 requests/minuto; una API estructurada abstrae el handshake de auth, pero igualmente deberías diseñar pensando en paginación y no en pulls masivos de una sola vez.
- La calidad de los datos varía según la entrada. Discogs está editada por la comunidad, así que campos como
data_quality("Needs Vote" vs. "Correct") indican qué tan confiable es un registro de release o artist dado — vale la pena revisarlo antes de tratar un campo como definitivo. - CC0 vs. Restricted Data importa para la reutilización. No todos los campos llevan la misma licencia — revisa los términos de Discogs antes de republicar cualquier cosa más allá del uso interno.
- Las discographies se paginan. Un artist prolífico o un label grande puede abarcar cientos de páginas de releases — presupuesta para paginación, no para una sola llamada.
- Solo datos públicos. Esto recolecta lo que Discogs ya expone — nunca una forma de scrapear collections privadas de usuarios, wantlists o cuentas de vendedores del marketplace.
Dónde se usa esto
- Herramientas de coleccionismo y valoración — seguir variantes de pressing, precios de mercado y señales de have/want para releases específicos.
- Investigación de label y discography — construir una imagen completa de lo que un label o artist ha publicado a través de formatos y años.
- Enriquecimiento de catálogo musical — añadir detalle de genre, format y pressing a una app musical o a un dataset interno, a menudo junto a datos de streaming de Spotify.
- Investigación de historial de formato y pressing — comparar variantes regionales y de formato de un mismo release a lo largo del tiempo.
Sources
Empieza a recolectar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de search, release y artist en el Playground, revisa el schema en los API docs, y consulta el pricing. Discogs es el patrón de "catálogo comunitario + reviews públicas" para la música, la misma forma que Goodreads cubre para libros; combínalo con Spotify si necesitas disponibilidad de streaming junto al detalle de pressing y formato. Ver también how to choose a web scraping API e is web scraping legal.
Parte de nuestra how-to-scrape guide series — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
¿Cómo scrapeo Discogs?
Envía una query de búsqueda o un id de Discogs a una API estructurada de Discogs y obtén releases, masters, artists y labels como JSON normalizado — búsqueda, detalle y discographies — sin gestionar el token o el flujo OAuth propios de Discogs.
¿Discogs tiene una API oficial?
Sí — Discogs publica una API pública gratuita y documentada, pero está limitada por rate limit (aproximadamente 25 requests/minuto sin autenticar, 60/minuto autenticado) y requiere un personal access token o OAuth 1.0a para llegar al nivel superior.
¿Es legal scrapear Discogs?
Los API Terms of Use de Discogs dividen los datos en CC0 (libremente reutilizables) y Restricted Data (sin uso comercial, incluyendo reventa o reutilización para cross-listing). El scraping directo de páginas además queda sujeto a los Terms of Service generales de Discogs. Son datos de catálogo público — respeta esos términos y consigue permiso por escrito para cualquier cosa que exceda su alcance.
¿Puedo obtener la discography completa de un artist o label?
Sí — /discogs/artist/{id}/releases y /discogs/label/{id}/releases devuelven discographies paginadas, y /discogs/master y /discogs/release devuelven detalle por título con formats, genres, styles y números de catálogo.
¿Qué diferencia a Discogs de los datos de catálogo de Spotify?
Discogs está editada por la comunidad, como una Wikipedia musical de releases y pressings — registra detalle de format, número de catálogo y país de pressing que las APIs comerciales de streaming como la de Spotify no cubren.
¿Puedo usar los datos de Discogs comercialmente?
Los campos licenciados bajo CC0 (títulos de release, formats, tracklists, identificadores) son ampliamente reutilizables, pero los Restricted Data de Discogs no se pueden usar con fines comerciales según sus API Terms of Use — comprueba en qué categoría cae un campo antes de republicarlo.
¿Por qué no usar directamente la API gratuita de Discogs?
Puedes — es una opción gratuita legítima. Una API estructurada ayuda sobre todo cuando un proyecto también necesita otros catálogos (Goodreads, Spotify, datos al estilo IMDb) bajo un mismo esquema y una key, en lugar de conciliar varios modelos de auth nativos y rate limits.