Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Spotify track/episode support #1603

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

desmaraisp
Copy link

@desmaraisp desmaraisp commented Mar 28, 2023

Using the Spotify Iframe API, we can embed and control spotify tracks and episodes. Some things can't be controlled, like playback speed and volume, but otherwise, toggling pause/play, setting the timestamp, settings event callbacks are all things we can do

To use this feature, pass a link of format "spotify:track:id" or "spotify:episode:id" to the player. (Let me know if you want that changed to URLs, I felt like to was more natural to use the spotify URIs instead of URLs, as that's what the spotify api returns most of the time)

I also fixed a small issue related to the loop mechanism being broken when using lazy players.

Small note though. To view items, the viewer MUST be logged in with their spotify account (premium not required, unlike the Spotify playback SDK) otherwise they get a 30-sec preview. Functionality is mostly maintained, the clip is simply cut short

Should partially address #161

I haven't updated the readme yet, wasn't sure if you preferred to do that yourself. Just let me know if you'd like me to do that too

Using the [Spotify Iframe API](https://developer.spotify.com/documentation/embeds/references/iframe-api), we can embed and control spotify tracks and episodes.

To use this feature, pass a link of format "spotify:track:id" or "spotify:episode:id" to the player.

I also fixed a small issue related to the loop mechanism being broken when using lazy players.

Small note though. To view items, the viewer MUST be logged in with their spotify account (premium not required, unlike the Spotify playback SDK) otherwise they get a 30-sec preview. Functionality is mostly maintained, the clip is simply cut short

Should partially address cookpete#161
onReady wasn't getting triggered by the listener due to scope issues. Moving the onReady call to a different scope should fix the issue
@dgbogi564
Copy link

Not sure if it's applicable for Iframes, but vencord has a plugin that can control the volume of Spotify embeds; it might be worth looking into.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants