首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spotify Webhooks?

Spotify Webhooks?
EN

Stack Overflow用户
提问于 2018-07-25 23:01:24
回答 2查看 6.4K关注 0票数 6

Spotify平台是否计划为第三方开发人员提供任何网络钩子,以监听用户库、播放列表或播放器中的变化?

如果网络钩子不存在,什么是已知的解决办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-28 08:40:39

Web中没有webhooks,我认为添加https://github.com/spotify/web-api/issues/538功能还需要很长一段时间。

Spotify上的播放列表由snapshot_id进行版本化。当您向得到一个播放列表发出API请求时,返回的字段之一是snapshot_id,它标识播放列表版本。如果为每个播放列表存储此版本ID,则可以检查播放列表自上次检查以来是否发生了远程更改(如果是的话,则snapshot_id将更改)。

重要的是要记住,您所做的任何更改也将影响snapshot_id。所以你需要:

  1. 拿到播放列表
  2. 本地保存的snapshot_id与当前播放列表的不同吗?
  3. 如果是的话,也许会做些改变
  4. 在您进行更改之后,再次获得播放列表。
  5. 更改后,从Get播放列表中存储snapshot_id

我认为用户库不支持snapshot_id --您可以检查用户库的一个子集,以检测任何添加的内容(例如,如果库中的前50首歌曲没有更改,那么就没有添加任何新的歌曲,您只需要发出一个API请求,而不是多个),但是如果只这样做,您将错过库的其他部分的删除。您还可以在库中检查歌曲的数量,这将告诉您何时添加或删除了歌曲,除非在添加和删除相同数量的歌曲的边缘情况下除外。但这意味着他们增加了一首歌,并且在库中检查前50首歌曲就可以捕捉到这一点。

您可以对当前正在播放的歌曲和最近播放的歌曲进行投票。如果要跟踪用户所听的每首歌曲,可以通过最近至少每隔30 *50秒(25分钟)播放一次轮询来实现这一点。30是听一首歌所需的秒数,然后Spotify将它记录为聆听,50是最近播放的歌曲的最大数量,它将为您服务。

票数 8
EN

Stack Overflow用户

发布于 2021-12-12 13:39:41

要知道某一曲目何时结束播放,我设置了一个等待函数,以等待该曲目的持续时间,然后在“等待”之后继续。

代码语言:javascript
复制
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))

//start playing a track
    
let device_status = await spotifyApi.getMyCurrentPlaybackState().then(result =>{
      return result.body;
    })

 let time_left = device_status.item.duration_ms - device_status.progress_ms;
 await delay(time_left)

//whatever needs to be done after
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51528806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档