我正在为我们的蓝调俱乐部创建一个智能手机/平板电脑应用程序,为了让我配置应用程序来播放我们的音乐,它需要一个流媒体音频的 URL。我想从我的 SoundCloud 集流式传输歌曲。
如何找到音频流的 URL?
我正在为我们的蓝调俱乐部创建一个智能手机/平板电脑应用程序,为了让我配置应用程序来播放我们的音乐,它需要一个流媒体音频的 URL。我想从我的 SoundCloud 集流式传输歌曲。
如何找到音频流的 URL?
您的 SoundCloud 集没有 URL。
听起来您指的是一个普通的流 URL,通常您将在其中将 URL 提供给 SHOUTcast/Icecast/HTTP 流。SoundCloud 资源在单独的文件中提供,因此您没有可使用的单个 URL。
然而,一切都没有丢失。如果您想将您的应用程序与 SoundCloud 集成,可以使用 API。您可以在此处找到有关它的更多信息:http: //developers.soundcloud.com/blog/stream-and-download
使用像 Bash 这样的语言很容易做到。这是一个简单的示例,它打印一组中歌曲的所有流 URL 和标题:
#!/bin/bash
ORIGINAL_PAGE="$(echo "$1" | sed 's|https|http|')"
SOURCE="$(curl -s "$ORIGINAL_PAGE")"
SONG_URLS="$(echo "$SOURCE" | grep -oE "(uri\":\"/[^/]*/[^/\"]*\"|href=\"/[^/]*/[^/]*/\?size=large\")" | sed 's|/\?size=large||' | tr '=' '"' | cut -d\" -f3 | sed -e "s|^|http://soundcloud.com|" -e 's|$|/?size=medium|')"
if [ -z "$SONG_URLS" ]; then
printf "No songs were found at: $ORIGINAL_PAGE\n"
exit 1
fi
SONG_COUNT=$(echo "$SONG_URLS" | wc -l)
for (( SONG_ID=1; SONG_ID <= SONG_COUNT; SONG_ID+=1 )); do
SONG_URL="$(echo "$SONG_URLS" | sed -n "$SONG_ID"p)"
SET_SONG_PAGE_SOURCE="$(curl -s "$SONG_URL")"
SONG_TITLE="$(echo "$SET_SONG_PAGE_SOURCE" | grep -o "title\":.*\",\"commentable\"" | sed 's|title\":\"||;s|\",\"commentable\"||' | head -1)"
STREAM_URL="$(echo "$SET_SONG_PAGE_SOURCE" | grep -o "http://media.soundcloud.com/stream/[^\"<]*\?stream_token=[^\"<]*" | head -1)"
echo "$STREAM_URL#$SONG_TITLE"
done
我不确定这是否会帮助你,但也许会。祝你好运。