【问题标题】:How to start reverse engineering Streaming Services如何开始逆向工程流服务
【发布时间】:2014-03-11 16:17:21
【问题描述】:

我正在尝试了解如何对 URL 进行逆向工程以下载流。

我知道已经有 Open Souce 工具可以做到这一点,但是通过复制它们我不知道如何做到这一点。

作为一个例子:我尝试让 soundcloud 工作的下载器。我猜下载网址应该类似于 api.soundcloud.com/track/... 。介于两者之间的某个地方肯定有track_idclient_id,它们可以从页面的源代码中提取出来。 但我现在似乎无法走得更远。

【问题讨论】:

  • 人们不允许在他们的曲目上下载是有原因的。请尊重艺术家在这方面的决定,不要对流进行逆向工程(反正质量可能较低)。
  • 我不想为了伤害艺术家而这样做,我只是想学习如何正确地进行逆向工程。 Soundcloud 只是一个示例,您可以将其替换为所有其他声音或视频流服务。

标签: streaming reverse-engineering soundcloud


【解决方案1】:

在我回答我自己的帖子之前,我想声明,从 Soundcloud 下载 Streams 是非法的,并且会伤害艺术家。只有在他们的条款下才允许在 Soundcloud 之外播放流,所以请先检查这些。

为了获取 Stream Link,我首先查看了 Soundcloud Python 库。我发现,我可以用api.soundcloud.com/resolve?url=<URL of the desired Song Page>&client_id=<client_id> 来质疑 API。

客户端 ID 必须随每个 api 请求一起发送。通过代码搜索很容易找到client_id。至少对于未注册的用户来说,它似乎是静态的,并且建议进一步搜索它,至少一年都是这样。

调用上面的解析 URL 后,您将获得一个带有 Song/Stream 属性的 XML 文档。在那里,您将找到 Stream URL。您可以对该 Stream URL 发出正常的 HTTP 请求。 (不要忘记附加client_id)。 如果由于某些原因链接无法正常工作,请尝试禁用 302 HTTP 重定向。

【讨论】:

  • 如果你想在 JSON 中获得相同的输出,只需将 url 更改为 api.soundcloud.com/resolve.json
猜你喜欢
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2015-11-25
  • 2010-09-11
  • 2012-08-26
  • 1970-01-01
  • 2012-05-01
相关资源
最近更新 更多