缓存 SHOUTcast API 结果
Caching SHOUTcast API results
我刚刚成为 SHOUTcast 合作伙伴并收到了我的 DevID。
我几乎阅读了这里的所有内容:
SHOUTcast_Radio_Directory_API
这里:SHOUTcast_API_License_Agreement
我有一个棘手的问题:我应该缓存他们 API 调用的结果吗?
如果决定缓存,我将违背 SHOUTcast 广播目录中的要求 API:
Do not cache the XML for more than 1 day, as station ID's can and will change.
如果我不缓存任何东西,我将违反 SHOUTcast API 许可协议:
Please do not hammer the servers. We request reasonable usage and recommend that you utilize local caching.
此外,假设我决定缓存结果。由于这些结果 100% 基于用户的查询,缓存这些结果会不会有点傻,因为我的应用程序的用户可能每次都会输入不同的查询?????
为了尝试解决我的问题,我想下载整个 SHOUTcast 数据库,一次 day/week,然后将其上传到我自己的服务器。之后,我的应用程序会将所有查询发送到我的服务器,并且根本不会打扰 SHOUTcast 的服务器。
不过,这种方法的问题是我找不到一次下载整个 SHOUTcast 数据库的方法,就像我们可以使用 IceCast 的 dir.xiph.org/yp.xml.
接下来我该做什么????我该如何进行?
我害怕伤害 SHOUTcast API 许可协议并撤销我的 DevId:
We reserve the right to revoke access for DevIDs which abuse the system.
这里有人创建过连接到 SHOUTcast 目录的应用程序吗?如果有,你用过什么方法没有被封号?
为了完整起见,我将用我想出的解决方案来回答我自己的问题。
经过大量研究,我决定创建一个 30 分钟的缓存,从中检索最后的结果。如果用户更改搜索过滤器,或者缓存过期,所有缓存结果将被清除,向 SHOUTcast 的服务器发出新请求并创建新缓存。
代码可以在这里找到:
我刚刚成为 SHOUTcast 合作伙伴并收到了我的 DevID。
我几乎阅读了这里的所有内容: SHOUTcast_Radio_Directory_API
这里:SHOUTcast_API_License_Agreement
我有一个棘手的问题:我应该缓存他们 API 调用的结果吗?
如果决定缓存,我将违背 SHOUTcast 广播目录中的要求 API:
Do not cache the XML for more than 1 day, as station ID's can and will change.
如果我不缓存任何东西,我将违反 SHOUTcast API 许可协议:
Please do not hammer the servers. We request reasonable usage and recommend that you utilize local caching.
此外,假设我决定缓存结果。由于这些结果 100% 基于用户的查询,缓存这些结果会不会有点傻,因为我的应用程序的用户可能每次都会输入不同的查询?????
为了尝试解决我的问题,我想下载整个 SHOUTcast 数据库,一次 day/week,然后将其上传到我自己的服务器。之后,我的应用程序会将所有查询发送到我的服务器,并且根本不会打扰 SHOUTcast 的服务器。
不过,这种方法的问题是我找不到一次下载整个 SHOUTcast 数据库的方法,就像我们可以使用 IceCast 的 dir.xiph.org/yp.xml.
接下来我该做什么????我该如何进行?
我害怕伤害 SHOUTcast API 许可协议并撤销我的 DevId:
We reserve the right to revoke access for DevIDs which abuse the system.
这里有人创建过连接到 SHOUTcast 目录的应用程序吗?如果有,你用过什么方法没有被封号?
为了完整起见,我将用我想出的解决方案来回答我自己的问题。
经过大量研究,我决定创建一个 30 分钟的缓存,从中检索最后的结果。如果用户更改搜索过滤器,或者缓存过期,所有缓存结果将被清除,向 SHOUTcast 的服务器发出新请求并创建新缓存。
代码可以在这里找到: