¡Todos son bienvenidos! Every Spanish level. Every major.

Spanish@UIC Radio

Playback & privacy

The radio starts only after you ask it to and authorize the active music provider. Once connected, it can carry your queue across the public site without surprising you with sound on page load.

Before music begins

You make the first move.

Choose a station, connect the deployment’s music provider through its official authorization window, and press play. After that action, eligible tracks can advance in the same persistent SDK player while you visit public pages or your dashboard. If your browser or provider pauses a transition, the dock gives you a clear way to resume. Songs that are ineligible or cannot be matched confidently are skipped so a remix, cover, live cut, or edit is never passed off as the board member’s pick.

What providers receive

Music authorization—not your club account.

The site uses public song details such as title, artist, duration, and recording identifiers to identify the board member’s pick. Apple mode may use those details for strict Apple catalog matching. Spotify mode sends only the exact Spotify ID of a pick originally submitted from Spotify; it does not search Spotify to convert Apple Music, YouTube, or Audius picks. The active provider receives normal catalog and playback requests, including network and device information, and may recognize an existing provider session. Its official window handles sign-in; Spanish@UIC never sees your music-provider password.

In Apple mode, Music User Tokens stay inside MusicKit in your browser and are not sent to our server. In the separately deployed Spotify mode, PKCE authorization, token refresh, exact-track retrieval, queue commands, and playback happen directly between your browser and Spotify. The access token stays in memory; PKCE state and the refresh token are tab-scoped in session storage, never Railway cookies or the Spanish@UIC database. No Spotify profile or personal Spotify data is persisted by Railway or the club database.

Spotify must redirect your browser back to this site once. The one-time code is present in that page request and may appear in normal hosting access infrastructure, but Spanish@UIC has no server callback logic to parse, exchange, persist, or deliberately log it. Browser code immediately removes it from the address before completing PKCE directly with Spotify.

Spanish@UIC does not send the provider your Spanish@UIC account ID, name, email, phone number, membership answers, or private profile data, and the radio does not call APIs to modify your music library.

What stays provider-controlled

Playback remains inside the official player.

The active provider controls audio delivery, account authorization, regional availability, subscription requirements, and service interruptions. Spanish@UIC arranges the board’s queue but never downloads, proxies, converts, caches, or separates audio from the official SDK.

Provider-specific notes

Apple Music · paused

MusicKit is not offered in the current edition. Its isolated adapter remains dormant until a future deployment deliberately enables Apple Music with the required developer credentials.

Spotify · current browser session

In an approved Spotify-only deployment, your browser signs in with PKCE and becomes your personal Spotify Connect player. Railway exposes only a public client ID and exact callback URI; it receives no Spotify password, access token, refresh token, listener catalog request, playback command, or audio. Spotify Premium is required.

Board source links

Board members can identify a favorite with an Apple Music, Spotify, YouTube, or Audius link. Those links preserve attribution and help identify the intended recording. In Spotify mode, only Spotify-origin picks with an exact Spotify track ID are eligible; other sources are not converted. You can still open every original source directly.

Exact-match queue

Apple matching prefers a recording identifier, followed by strict title, artist, duration, and version checks. Spotify requires the original exact Spotify ID. An uncertain or ineligible result is skipped instead of silently substituting a cover, remix, live version, edit, or another service’s recording.