Soundcloud嵌入流URL(Node,JSON)
我目前正在使用Node来抓取将选定数据存储在JSON文件中的博客。 当从Soundcloud抓取包含嵌入式轨道的博客文章时,我似乎只能收集iframe src而不是实际的轨道链接(soundcloud链接或流链接)。
当我抓取iframe src网址时,我似乎只能获得以下格式的链接:https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks / 120261008&颜色= 000000&auto_play =假show_artwork =假
如果我无法抓取轨道URL有没有一种方法可以操纵上述链接如何存储到数组中? 为了使这个链接可用,我只需要存储url = https%3A // api.soundcloud.com / tracks / 120261008(减去url =)。
但是这样做的问题是%3A需要替换为:
当存储或调用URL时,操作url以实现所需输出url的最佳方式是什么?
我不完全确定你打算如何处理跟踪URL,但要获取跟踪/播放列表的固定链接网址,您需要采取两步法。 首先,您需要解析iframe src中的查询字符串中的url
参数:
CLIENT_ID = 'client_id=b45b1aa10f1ac2941910a7f0d10f8e28';
var src = 'https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/120261008&color=000000&auto_play=false&show_artwork=false',
match = src.match(/url=([^&]*)/),
resource = match[0],
stream = decodeURIComponent(match[1])+'/stream/?'+CLIENT_ID;
然后,您将需要向SoundCloud的解析API发出HTTP请求,以实际将该资源转换为永久链接网址:
var url = 'http://api.soundcloud.com/resolve.json?'+resource+'&'+CLIENT_ID;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onload = function(){
var data = JSON.parse(xhr.responseText);
// do something with the data
console.log(data.permalink_url);
};
xhr.send();
链接地址: http://www.djcxy.com/p/65301.html