我们刚刚发布了一个新的 Python API 包装器。您可以通过PyPi 或我们的Github account 获得它。要上传曲目,您首先需要使用支持的 OAuth2 身份验证流程之一获取访问令牌。您可以在README file 中阅读相关内容。如果您希望我详细说明身份验证,请告诉我,我可以编辑我的答案。
要获取访问令牌,请首先使用register your application on soundcloud.com。您需要提供一个 URI,用户在授权您的应用程序后将被定向到该 URI,并且您将获得一个客户端 ID 和客户端密码。获得这些凭据后,将它们传递给客户端构造函数:
import soundcloud
client = soundcloud.Client(client_id=YOUR_CLIENT_ID,
client_secret=YOUR_CLIENT_SECRET,
redirect_uri="http://your/redirect/uri")
然后,您可以将用户重定向到授权 URL 以授权您的应用。用户将被发送到 soundcloud.com 以登录(如果他们没有活动会话)并批准您的应用程序的访问权限。根据您使用的框架(例如 Django、Flask 等),它可能看起来像这样:
return redirect(client.authorize_url)
在批准您的应用访问后,用户将被重定向到您在注册应用时和在构造函数中指定的重定向 uri。该 URL 将有一个查询字符串,其中包含一个“代码”参数,然后您可以使用该参数来获取访问令牌。同样,根据您使用的框架,这可能如下所示:
code = request.params.get('code')
token = client.exchange_token(code)
print token.access_token # don't actually print it, just showing how you would access it
您可能应该存储访问令牌(即在 MySQL 或 Redis 之类的某种数据存储中),以便将来该用户想要访问 SoundCloud 时可以使用它。
获得访问令牌后,上传曲目应该非常简单。获得音频文件后,只需向轨道资源发送 POST 请求。这是一个例子:
import soundcloud
client = soundcloud.Client(access_token='YOUR_ACCESS_TOKEN')
track = client.post('/tracks', track={
'title': 'The title you want to give your track',
'sharing': 'private', # make this 'public' if you want
'asset_data': open('yourtrack.mp4', 'rb')
})
您将获得一个音轨资源,然后您可以使用它来获取 Soundcloud URL:
print track.permalink_url
希望对您有所帮助!如果您有任何问题,请告诉我。