<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Spotify YS Player in Spotify for Developers</title>
    <link>https://community.spotify.com/t5/Spotify-for-Developers/Spotify-YS-Player/m-p/7298894#M19510</link>
    <description>&lt;P class=""&gt;I built a custom, browser-based Spotify player as a personal learning project to explore how far Spotify’s Web API and embedded playback experience can be extended while keeping performance and UI minimal.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;The &lt;STRONG&gt;Spotify Yearly Statistic (YS)&lt;/STRONG&gt; Player started as an experiment around refining Spotify’s embedded experience and evolved into a lightweight, interactive player that focuses on fast load times, modern UI behavior, and richer metadata presentation. The project is intended purely for educational and demonstration purposes.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;Player Modes&lt;/STRONG&gt;&lt;/H4&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.35.26 PM.png" style="width: 999px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203744i69EEE313F8F8AAC3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.35.26 PM.png" alt="Screenshot 2026-01-10 at 1.35.26 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.35.42 PM.png" style="width: 888px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203743iE9A83C56D5017B19/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.35.42 PM.png" alt="Screenshot 2026-01-10 at 1.35.42 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YS-Player.png" style="width: 999px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203747i329271AD8216437D/image-size/large?v=v2&amp;amp;px=999" role="button" title="YS-Player.png" alt="YS-Player.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Full Player view with detailed track and artist metadata&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Mini Player view for compact display&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Dark and light UI modes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Authentication Flow&lt;/STRONG&gt;&lt;/H4&gt;&lt;P&gt;Widget → Local server → Spotify OAuth&lt;BR /&gt;Spotify → Auth code → Local server → Access/refresh tokens&lt;BR /&gt;Widget → Auth status → Player loads live data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Authentication is handled via Spotify’s OAuth flow. On first launch, the user authorizes Spotify access, and subsequent sessions reuse cached credentials to avoid repeated logins.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Once authenticated, the widget loads:&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Now Playing track data&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Artist metadata (followers, genres, popularity)&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Lightweight tables and generated “fun facts”&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.37.29 PM.png" style="width: 782px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203748i7515C786DA105D82/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.37.29 PM.png" alt="Screenshot 2026-01-10 at 1.37.29 PM.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;Project Goals&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Build a minimal, fast-loading music player&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Reduce UI lag with deferred and selective API calls&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Enable playback immediately after authentication&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Explore UI behavior outside standard embed constraints&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Key Features&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Secure Spotify authentication and token handling&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Real-time track and artist metadata&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Capsule-style UI with responsive layout&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Mini / Full view switching&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Background animation turn on/off toggle while playing music.&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Optimized async API usage&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Export entire yearly liked songs to a new Spotify playlist.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Tech Stack&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;CoffeeScript&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Übersicht widgets&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Spotify Web API&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Custom HTML/CSS styling&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Outcome&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class=""&gt;The project helped me better understand Spotify’s API behavior, authentication flow, and how UI sequencing impacts perceived performance. It also served as a useful sandbox for testing lightweight player concepts outside the standard embed model.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;I’m sharing this here to discuss implementation details, tradeoffs, and API behavior — happy to answer questions or dive deeper into any part of the flow.&lt;/P&gt;</description>
    <pubDate>Sat, 10 Jan 2026 19:48:29 GMT</pubDate>
    <dc:creator>areyes86</dc:creator>
    <dc:date>2026-01-10T19:48:29Z</dc:date>
    <item>
      <title>Spotify YS Player</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/Spotify-YS-Player/m-p/7298894#M19510</link>
      <description>&lt;P class=""&gt;I built a custom, browser-based Spotify player as a personal learning project to explore how far Spotify’s Web API and embedded playback experience can be extended while keeping performance and UI minimal.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;The &lt;STRONG&gt;Spotify Yearly Statistic (YS)&lt;/STRONG&gt; Player started as an experiment around refining Spotify’s embedded experience and evolved into a lightweight, interactive player that focuses on fast load times, modern UI behavior, and richer metadata presentation. The project is intended purely for educational and demonstration purposes.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;Player Modes&lt;/STRONG&gt;&lt;/H4&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.35.26 PM.png" style="width: 999px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203744i69EEE313F8F8AAC3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.35.26 PM.png" alt="Screenshot 2026-01-10 at 1.35.26 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.35.42 PM.png" style="width: 888px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203743iE9A83C56D5017B19/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.35.42 PM.png" alt="Screenshot 2026-01-10 at 1.35.42 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YS-Player.png" style="width: 999px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203747i329271AD8216437D/image-size/large?v=v2&amp;amp;px=999" role="button" title="YS-Player.png" alt="YS-Player.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Full Player view with detailed track and artist metadata&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Mini Player view for compact display&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Dark and light UI modes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Authentication Flow&lt;/STRONG&gt;&lt;/H4&gt;&lt;P&gt;Widget → Local server → Spotify OAuth&lt;BR /&gt;Spotify → Auth code → Local server → Access/refresh tokens&lt;BR /&gt;Widget → Auth status → Player loads live data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Authentication is handled via Spotify’s OAuth flow. On first launch, the user authorizes Spotify access, and subsequent sessions reuse cached credentials to avoid repeated logins.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Once authenticated, the widget loads:&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Now Playing track data&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Artist metadata (followers, genres, popularity)&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Lightweight tables and generated “fun facts”&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-01-10 at 1.37.29 PM.png" style="width: 782px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/203748i7515C786DA105D82/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-01-10 at 1.37.29 PM.png" alt="Screenshot 2026-01-10 at 1.37.29 PM.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;Project Goals&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Build a minimal, fast-loading music player&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Reduce UI lag with deferred and selective API calls&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Enable playback immediately after authentication&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Explore UI behavior outside standard embed constraints&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Key Features&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Secure Spotify authentication and token handling&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Real-time track and artist metadata&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Capsule-style UI with responsive layout&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Mini / Full view switching&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Background animation turn on/off toggle while playing music.&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Optimized async API usage&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Export entire yearly liked songs to a new Spotify playlist.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Tech Stack&lt;/STRONG&gt;&lt;/H4&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;CoffeeScript&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Übersicht widgets&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Spotify Web API&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Custom HTML/CSS styling&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H4&gt;&lt;STRONG&gt;Outcome&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class=""&gt;The project helped me better understand Spotify’s API behavior, authentication flow, and how UI sequencing impacts perceived performance. It also served as a useful sandbox for testing lightweight player concepts outside the standard embed model.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;I’m sharing this here to discuss implementation details, tradeoffs, and API behavior — happy to answer questions or dive deeper into any part of the flow.&lt;/P&gt;</description>
      <pubDate>Sat, 10 Jan 2026 19:48:29 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/Spotify-YS-Player/m-p/7298894#M19510</guid>
      <dc:creator>areyes86</dc:creator>
      <dc:date>2026-01-10T19:48:29Z</dc:date>
    </item>
  </channel>
</rss>

