619 palabras
3 minutos
Guía Definitiva: Cómo Conectar y Controlar Spotify por API en 2026

Guía Definitiva: Cómo Conectar y Controlar Spotify por API en 2026 (Saltando el Error 403 Forbidden)#

Por Rox DJ (y la IA de Brave) - Marzo 2026

Si estás leyendo esto, probablemente intentaste crear una playlist o añadir canciones a tu cuenta de Spotify usando código en 2025/2026 y te chocaste contra un muro de concreto llamado 403 Forbidden (o Error -1 Forbidden).

No te preocupes. No eres tú, no es tu código, no es tu token. Es Spotify. A finales de 2024 y principios de 2025, Spotify cerró y modificó silenciosamente sus endpoints clásicos por motivos de “seguridad”. Las librerías famosas como spotipy se rompieron porque seguían apuntando a los enlaces muertos.

Aquí tienes la guía paso a paso para hackear legalmente tu propia cuenta y organizar tu música con Python usando la NUEVA API de 2026.


Paso 1: El Papeleo de Desarrollador (Sacar las Llaves)#

  1. Entra a developer.spotify.com/dashboard e inicia sesión con tu cuenta normal de Spotify.
  2. Haz clic en Create app (Crear aplicación).
  3. Llena el nombre y descripción (“Mi Bot Musical”, etc.).
  4. CRÍTICO: En Redirect URIs, pon exactamente: http://127.0.0.1:8888/callback.
  5. Guarda la app y ve a la sección de Settings (Configuración) para copiar dos códigos vitales:
    • Client ID
    • Client Secret
  6. EL PASO QUE TODOS OLVIDAN: En la página principal de tu App, ve a User Management (Manejo de Usuarios) y añade tu propio correo electrónico de Spotify a la lista blanca. Si no haces esto, Spotify te bloqueará cualquier intento de escritura por estar en “Modo Desarrollo”.

Paso 2: Generar el Token de Acceso con Permisos Correctos#

Necesitas un token de OAuth 2.0 que tenga los “scopes” (permisos) de escritura. Los obligatorios son: playlist-modify-public playlist-modify-private playlist-read-private user-library-read.

Entra a este enlace desde tu navegador (reemplaza TU_CLIENT_ID por tu código):

https://accounts.spotify.com/authorize?client_id=TU_CLIENT_ID&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A8888%2Fcallback&scope=playlist-modify-public+playlist-modify-private+playlist-read-private+user-library-read
  1. Dale a “Aceptar”.
  2. La página se quedará en blanco o dará error de conexión (127.0.0.1). Es normal.
  3. Copia la URL de arriba. Se verá así: http://127.0.0.1:8888/callback?code=AQA...
  4. Guarda ese código súper largo que va después del code=. Es tu llave temporal.

Paso 3: El Código Python (La Nueva API 2026)#

Olvídate de las funciones mágicas de spotipy (sp.user_playlist_create()), porque apuntan al viejo endpoint /users/{user_id}/playlists que ahora devuelve 403.

En 2026, el endpoint correcto para crear listas es: POST /me/playlists Y para añadir canciones: POST /playlists/{playlist_id}/items (antes era /tracks).

Aquí tienes el script en crudo usando la librería requests de Python, que no falla nunca:

import requests
import base64
import sys
client_id = "TU_CLIENT_ID"
client_secret = "TU_CLIENT_SECRET"
code = "EL_CODIGO_LARGO_DEL_PASO_2"
redirect_uri = "http://127.0.0.1:8888/callback"
# 1. Intercambiar el código por un Token de Acceso real
auth_string = f"{client_id}:{client_secret}"
auth_base64 = base64.b64encode(auth_string.encode('ascii')).decode('ascii')
res_token = requests.post(
"https://accounts.spotify.com/api/token",
headers={
"Authorization": f"Basic {auth_base64}",
"Content-Type": "application/x-www-form-urlencoded"
},
data={
"grant_type": "authorization_code",
"code": code,
"redirect_uri": redirect_uri
}
)
if res_token.status_code != 200:
print("Error obteniendo token:", res_token.text)
sys.exit(1)
access_token = res_token.json()["access_token"]
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
# 2. NUEVO ENDPOINT 2026: Crear la Playlist (/me/playlists)
print("Creando nueva playlist...")
res_create = requests.post(
"https://api.spotify.com/v1/me/playlists",
headers=headers,
json={
"name": "Mi Nueva Playlist 2026 🚀",
"public": False, # Debe ser False para cuentas de desarrollo sin aprobar
"description": "Creada saltándose el error 403 con la API 2026."
}
)
playlist_id = res_create.json().get("id")
print(f"Playlist creada con ID: {playlist_id}")
# 3. Obtener tus canciones favoritas (Ejemplo)
print("Buscando tus canciones favoritas (Liked Songs)...")
res_saved = requests.get("https://api.spotify.com/v1/me/tracks?limit=20", headers=headers)
track_uris = [item['track']['uri'] for item in res_saved.json().get('items', [])]
# 4. NUEVO ENDPOINT 2026: Añadir canciones (/playlists/{id}/items)
print("Añadiendo canciones a la lista...")
res_add = requests.post(
f"https://api.spotify.com/v1/playlists/{playlist_id}/items",
headers=headers,
json={"uris": track_uris}
)
if res_add.status_code in (200, 201):
print("¡ÉXITO TOTAL! Revisa tu Spotify.")
else:
print("Error añadiendo canciones:", res_add.text)

Resumen de Cambios Clave 2026:#

  • No uses /users/{id}/playlists ❌ -> Usa /me/playlists
  • No uses /playlists/{id}/tracks ❌ -> Usa /playlists/{id}/items
  • Las librerías de terceros (como spotipy) tardan en actualizarse. Si algo falla, ataca la API directamente con peticiones HTTP/REST (como en este script).

¡Fin del tutorial! A disfrutar de la música sin que los servidores te escupan en la cara. 🎵😈

Guía Definitiva: Cómo Conectar y Controlar Spotify por API en 2026
https://fuwari.vercel.app/posts/00-spotify_api_guide_2026/
Autor
Adrián
Publicado el
2026-03-27
Licencia
CC BY-NC-SA 4.0