3

我正在为我们的蓝调俱乐部创建一个智能手机/平板电脑应用程序,为了让我配置应用程序来播放我们的音乐,它需要一个流媒体音频的 URL。我想从我的 SoundCloud 集流式传输歌曲。

如何找到音频流的 URL?

4

2 回答 2

1

您的 SoundCloud 集没有 URL。

听起来您指的是一个普通的流 URL,通常您将在其中将 URL 提供给 SHOUTcast/Icecast/HTTP 流。SoundCloud 资源在单独的文件中提供,因此您没有可使用的单个 URL。

然而,一切都没有丢失。如果您想将您的应用程序与 SoundCloud 集成,可以使用 API。您可以在此处找到有关它的更多信息:http: //developers.soundcloud.com/blog/stream-and-download

于 2012-10-07T23:53:18.373 回答
0

使用像 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

我不确定这是否会帮助你,但也许会。祝你好运。

于 2012-12-29T02:31:32.680 回答