💻 Ejemplos de código

Snippets listos para copiar y pegar: autenticación, búsquedas, reproductores y más.

🎧 Buscar pista en Spotify (Client-Credentials)

// 1. Obtén tu token
const getToken = async () => {
  const res = await fetch('https://accounts.spotify.com/api/token', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Basic ' + btoa(clientId + ':' + clientSecret)
    },
    body: 'grant_type=client_credentials'
  });
  const data = await res.json();
  return data.access_token;
};

// 2. Busca pista
const searchTrack = async (query, token) => {
  const res = await fetch(`https://api.spotify.com/v1/search?q=${query}&type=track&limit=1`, {
    headers: { 'Authorization': 'Bearer ' + token }
  });
  const data = await res.json();
  return data.tracks.items[0];
};

📻 Listar emisoras por país (Radio Browser)

const getStations = async (country = 'Spain') => {
  const res = await fetch(`https://de1.api.radio-browser.info/json/stations/bycountry/${country}`);
  const data = await res.json();
  return data.slice(0, 10); // top 10
};

🎛️ BPM en tiempo real (Essentia.js)

import { BPM } from 'https://unpkg.com/essentia.js';

const audioContext = new AudioContext();
const source = audioContext.createMediaElementSource(audioElement);
const bpm = new BPM(audioContext.sampleRate);
source.connect(bpm);
bpm.activate();
bpm.onBpm = (value) => console.log('BPM:', value);

🎫 Alerta de conciertos (Songkick)

const getConcerts = async (artistId) => {
  const res = await fetch(`https://api.songkick.com/api/3.0/artists/${artistId}/calendar.json?apikey=${songkickKey}`);
  const data = await res.json();
  return data.resultsPage.results.event;
};