当前位置: 首页 > 面试题库 >

从每首歌曲获取HTTP MP3流

张嘉熙
2023-03-14
问题内容

我需要从SoundCloud MP3文件中获取直接URL。

我通常使用以下方法:解析轨道URL以获取轨道ID,例如,将https://soundcloud.com/linkin_park/burn-it-
down

http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/your/link/to/the/track&client_id=client_id

然后去与stream_urls

http://api.sndcdn.com/i1/tracks/track_id_here/streams?client_id=client_id

在大多数情况下,将返回我需要的URL“ http_128_mp3_url”,该URL直接链接到歌曲的MP3。

但是在某些情况下,例如,当您使用https://soundcloud.com/dada-life/dada-life-
september-2014-mix时
,仅返回rtmp或hls流,我无法使用PHP或PHP将其转换为文件JavaScript。

如http://sounddrain.com/所示,在这种情况下,也有一种方法可以获取MP3文件的链接。

Sounddrain给了我这个URL:

https://ec-
media.sndcdn.com/KZ5qiLqZ0OSk.128.mp3?f10880d39085a94a0418a7ef69b03d522cd6dfee9399eeb9a522029c6df9ba3f0cf21c0c0c9d9baf9fe2d9aa920d344c36db47817da7597

有人知道如何获取以下网址吗?


问题答案:

我认为这与您传递到API请求中的client_id类型有关。

HTTP GET: http://api.soundcloud.com/i1/tracks/167132129/streams?client_id=[CLIENT_ID]

使用标准应用程序client_id,我看不到http链接:

响应:

{
  "hls_mp3_128_url": "https://ec-hls-media.soundcloud.com/playlist/KZ5qiLqZ0OSk.128.mp3/playlist.m3u8?f10880d39085a94a0418a7e062b03d52bbdc0e179b82bde1d76ce7a51e4e690d4aa9adbb8e264aa259bfba6e1a3d52e8f8020eeb45fac9d9fbb175e4c35dbd26bdf59ac00d0f2cd80b7e7a685e9cd57c89622a7cc8b7266f4b7317b4",
  "rtmp_mp3_128_url": "rtmp://ec-rtmp-media.soundcloud.com/mp3:KZ5qiLqZ0OSk.128?9527d18f1063a01f059bf10590159adb10dea0996b8c0cdb674f9c282214839d8263f0608a1a3bbe02e4a0ffc5cf5bef80087ca63aa316e338f6cbba24b1493d8355aea84dc2e529757f72273e1fdfc9f88437c992e92845b3e3",
  "preview_mp3_128_url": "https://ec-preview-media.sndcdn.com/preview/0/90/KZ5qiLqZ0OSk.128.mp3?f10880d39085a94a0418a7e162b03d52e21adf826af17a391e1b741835259dfd645b4f9f979acc1e4d50dd281c2b93dca58d9e3bd086be0aed9c5ae0ae369364f50bd63ee4f1b167cc29b19cf3462f735b8f"
}

但是,使用youtube-dl iPhone client_id会返回http网址:

响应:

{
    "http_mp3_128_url": "https://ec-media.sndcdn.com/KZ5qiLqZ0OSk.128.mp3?f10880d39085a94a0418a7ef69b03d522cd6dfee9399eeb9a522029c69f0bd356988380857d739f55360e9ce802160a1ecf506cfa53f249070d96b19de5ac3234cdbd4201d",
    "hls_mp3_128_url": "https://ec-hls-media.soundcloud.com/playlist/KZ5qiLqZ0OSk.128.mp3/playlist.m3u8?f10880d39085a94a0418a7e062b03d52bbdc0e179b82bde1d76ce7a51e4e6e074a18d603fc2146725c4f70a8844d81268632e8339ce8b52aab8fcfbfd450330b409e8614da1996b8e4cd371f07c9eb0d5cc65ffbf60230336388b323",
    "rtmp_mp3_128_url": "rtmp://ec-rtmp-media.soundcloud.com/mp3:KZ5qiLqZ0OSk.128?9527d18f1063a01f059bf10590159adb10dea0996b8c0cdb674f9c28221b8a972788cc587dee254b285c2a0c9e5b57a79b4bd174401f92b31df0cf4260d9f3f6fe542e181d30b4e9314ac36e70737095ddb2b215bd98884660cb",
    "preview_mp3_128_url": "https://ec-preview-media.sndcdn.com/preview/0/90/KZ5qiLqZ0OSk.128.mp3?f10880d39085a94a0418a7e162b03d52e21adf826af17a391e1b7418352a94f7cbd4ec4b06d76ae6caf6f3cc29aed3f7b0922885d994c71a503c307cf86b653b3f6108990bebaae5a15efc74075285b13f23"
}

可以在commit和youtube-
dl页面上的本期中找到更多信息。我不知道常规的client_id和iPhone
client_id之间有什么区别,但是我可以清楚地看到API请求返回的区别。看起来iPhone client_id是SoundCloud
iOS客户端用来在应用程序中流式播放曲目的API密钥。



 类似资料:
  • 我正在制作音频播放器(android)。问题是我什么时候启动我的应用程序

  • 我正在开发一个需要知道用户正在听什么音乐的应用程序。 对于默认的音乐播放器,我可以收听广播,以知道正在播放哪些歌曲。 这在使用之前是有效的,但最近已经停止了。 是我使用了错误的意图筛选器还是有不同的问题?

  • 另外,如果我在浏览器上访问,它在web界面中只显示当前歌曲。 有人能指导我如何完成这件事吗?

  • 我的歌曲适配器: 我从sd卡上取了这首歌,可以在屏幕上看到,但当我尝试播放这些歌曲时,我的应用程序崩溃了,出现了以下错误。尝试调用虚拟方法“void android”。媒体MediaPlayer。在空对象引用上启动()。 我不知道该怎么办请帮忙。 这是我的日志 过程:com。实例壁画。musicmania,PID:26119爪哇。lang.NullPointerException:尝试调用虚拟方法

  • 我的数据帧像这样: 我得到了概率栏 结果是: 但是我想获取每行的第一列数据,如下所示: 如何做到这一点? 输入为标准随机林输入,输入上方为<code>val数据=预测。选择(“文档ID”,“概率”) root|--docID: string(nullable=true)|--标签:双(nullable=false)|--特征:向量(nullable=true)|--indexedLabel:双(n

  • 我试图用艺术家姓名和歌曲名称查询echonest,并让它返回歌曲的spotify ID。目前我只能让艺术家返回。 我正在读留档,但它毫无意义,我认为它可能是过时的,想知道是否有人能帮我。 这是我正在使用的文档的链接(http://developer.echonest.com/sandbox/spotify.html)API示例是上一个示例的第二个示例,即: 艺人:Radiohead歌曲标题:Kar