【问题标题】:SoundCloud API - "same song" limitations? / 403 issue?SoundCloud API - “同一首歌”的限制? /403 问题?
【发布时间】:2020-06-08 16:45:02
【问题描述】:

我刚刚更新了我的一个旧网页(最初创建于 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 禁止”错误。如果通过URL,然后那首歌一开始又可以正常播放,但是在重新加载该歌曲的响应后,也突然切换到“403 禁止”。似乎即使在一天后,“被阻止”的歌曲仍处于“禁止”状态。

看起来 SoundCloud “现在”可能正在使用某种限制,即一个客户端 (client_id) 在给定时间间隔内可以加载同一首歌曲的最大次数。 (对于所有访问者使用相同技术 client_id 的页面,相应的限制可能会非常严重。)

有什么想法(有这样的限制吗?到底是什么)?

【问题讨论】:

    标签: soundcloud


    【解决方案1】:

    似乎是一个 f%&! 缓存问题.. SoundCloud 重定向 将 URL(例如 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])。

    各自的“亚马逊”网址似乎带有某种形式的“签名”参数的到期日期。出于某种原因,我的基于 CURL 的 PHP 脚本不断获取转发 URL 的旧过期版本(即第一个“流”响应必须已被缓存,因此每个新 URL 都会工作一段时间,直到它过期......)。我通过向“流 URL”动态添加虚拟时间戳参数来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多