有没有办法通过共享URL获取声音云跟踪ID?

时间:2018-04-11 13:40:17

标签: wordpress api iframe embed soundcloud

  1. 有一个文本输入字段,其中一个可以传递SoundCloud的“共享”URL。
  2. 示例“分享”网址:https://soundcloud.com/alo-wala/the-coconut-song
  3. 如果我们在可视化编辑器中粘贴共享网址,WordPress会使用相同的网址生成IFRAME /嵌入代码...
  4. 现在我们有另一个选项,可以按照IFRAME代码在任何网站上嵌入SoundCloud小部件。
  5. 示例IFRAME代码:<iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/203809866&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
  6. 现在,如果您观察SRC,它具有唯一的跟踪ID值:https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/203809866
  7. 对于任何嵌入代码
  8. ,其余参数将保持相同

    我的要求: 我想使用“共享”URL作为输入来生成Track ID,与WordPress使用oEmbed功能的方式完全相同,用于我自己的自定义字段。

    请注意,我没有使用ACF。

    提前致谢:)

1 个答案:

答案 0 :(得分:2)

您可以通过SoundCloud的JS API获取任何歌曲的曲目ID:

<script src="https://connect.soundcloud.com/sdk/sdk-3.3.0.js"></script>
<script>
SC.initialize({
  client_id: 'YOUR_CLIENT_ID'
});

// permalink to a track
var track_url = 'https://soundcloud.com/alo-wala/the-coconut-song';

var myCustomFunction = function (track) {
  console.log( track ); // track.id gives you the ID of the song

  // @TODO
  // Do something with the song ID
};

SC.resolve(track_url).then(myCustomFunction);
</script>

YOUR_CLIENT_ID替换为SoundCloud App的ID。

有关详细信息:SoundCloud API - Guide - SoundCloud URLs