SoundCloud API-“同一首歌”的限制? / 403问题?

问题描述 投票:0回答:1

我刚刚更新了我的旧网页(最初创建于2014年),该网页使用SoundCloud API直接从SoundCloud播放一些背景音乐(请参阅https://www.wothke.ch/ablaze/#/wright-and-bastard/venera)。我为相应的API提供了一个SoundCloud client_id-我的实现过去运行良好:默认情况下,该页面始终使用同一首歌曲-尽管用户可以向URL添加相应的永久链接以播放特定的SoundCloud歌曲或播放列表。

在将旧页面迁移/测试到WEBGL2和ECMAScript 2015时,我反复地重装各自页面,并注意到以下令人讨厌的效果:

首先,页面播放默认歌曲没有问题,但是在重新加载页面后(我猜少于10个),SoundCloud似乎突然切换为“ 403 forbidden”错误。如果通过URL专门选择了另一首歌曲, ,然后该首歌再次播放正常,但在对该首歌重新加载响应后又突然切换为“ 403禁止”。似乎甚至一天后,“受阻”的歌曲仍处于“禁止”状态。

[SoundCloud“现在”似乎在使用某种限制,关于一个客户端(client_id)在给定时间间隔内可以加载同一首歌曲的最大次数。 (对于为其所有访问者使用相同的技术client_id的页面,各自的限制可能会非常有限。)

任何想法(有这样的限制,确切地是什么)?

soundcloud
1个回答
0
投票

似乎是f%&!&#缓存问题。SoundCloud重定向将网址(例如https://api.soundcloud.com/tracks/511301766/stream?client_id=[my app ID])流到实际托管文件的某些Amazon服务器(例如https://cf-media.sndcdn.com/AT5qm8ZFmiM0.128.mp3?Policy=[some id]&Signature=[some sig]&Key-Pair-Id=[some id])。

各个“ Amazon” URL似乎以“ Signature”参数的形式带有某种到期日期。出于某种原因,我基于CURL的PHP​​脚本不断选择转发URL的旧过期版本(即,第一个“流”响应必须已被缓存,因此每个新URL都将工作一段时间直到过期。)。我通过将虚拟时间戳参数动态添加到“流URL”来解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.