我正在使用简单的端点通过API获取曲目信息/tracks/.这适用于大多数曲目,但对于一些我得到403错误.
例如,这个不起作用:
http://api.soundcloud.com/tracks/232273455?client_id=<clientID>
Run Code Online (Sandbox Code Playgroud)
收益:
HTTP/1.1 403 Forbidden
Access-Control-Allow-Headers: Accept, Authorization, Content-Type, Origin
Access-Control-Allow-Methods: GET, PUT, POST, DELETE
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Date
Cache-Control: max-age=600, public
Cache-Control: private, max-age=0
Content-Length: 0
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Apr 2016 09:39:00 GMT
Etag: "5a8b3e5cf857d1c73a6ec924804140e1"
Server: am/2
Status: 200 OK
Vary: Authorization, Accept
Run Code Online (Sandbox Code Playgroud)
但这个工作,具有相同的客户端ID:
http://api.soundcloud.com/tracks/169170570?client_id=<clientID>
Run Code Online (Sandbox Code Playgroud)
收益:
HTTP/1.1 200 OK
Access-Control-Allow-Headers: Accept, Authorization, Content-Type, Origin
Access-Control-Allow-Methods: GET, PUT, POST, DELETE
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Date
Cache-Control: max-age=600, public
Content-Encoding: gzip
Content-Length: 765 …Run Code Online (Sandbox Code Playgroud) Soundcloud的oEmbed端点适用于大多数链接(例如affee),但使用以下(有效)URL返回403状态:knifepartyinc
第二个URL有什么问题?
我需要从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
Run Code Online (Sandbox Code Playgroud)
然后去找stream_urls
http://api.sndcdn.com/i1/tracks/track_id_here/streams?client_id=client_id
在大多数情况下,返回"http_128_mp3_url",即我需要的URL,它直接链接到歌曲的MP3.
但在某些情况下,例如,当您使用https://soundcloud.com/dada-life/dada-life-september-2014-mix时,只返回rtmp或hls流,我无法将其转换为PHP文件或JavaScript的.
如http://sounddrain.com/所示,在这种情况下,有一种方法可以获取MP3文件的链接.
Sounddrain给了我这个URL:
有人知道如何获得以下网址吗?