我正在构建一个应用程序来记录人们说的内容,生成一个音频文件并将其上传到SoundCloud并使用Python获取上传轨道的URL.
我用PyAudio来录制和生成一个音频文件 - 一个波形文件.
但我需要知道如何将文件上传到SoundCloud.通过研究,我发现有一个用于SoundCloud API的Python包装器,并且使用Python库Poster,可以轻松地将文件上传到SoundCloud.
我该怎么做?我之前没有使用过这个API,我找不到合适的教程或如何使用它的指南.所以如果有人可以帮我这个,请在这里回答我的问题.
如何使用这个SoundCloud Python API包装器在Python库Poster的帮助下使用Python将文件上传到SoundCloud ?
我们刚刚发布了一个新的Python API包装器.您可以在PyPi或我们的Github帐户上获取它.要上传曲目,您需要先使用其中一个受支持的OAuth2身份验证流程获取访问令牌.您可以在README文件中阅读相关内容.如果您希望我详细说明auth,请告诉我,我可以编辑我的答案.
要获取访问令牌,请先在soundcloud.com上注册您的应用程序.您需要提供一个URI,在授权您的应用程序后,用户将被定向到该URI,您将获得客户端ID和客户端密钥.获得这些凭据后,将它们传递给Client构造函数:
import soundcloud
client = soundcloud.Client(client_id=YOUR_CLIENT_ID,
client_secret=YOUR_CLIENT_SECRET,
redirect_uri="http://your/redirect/uri")
Run Code Online (Sandbox Code Playgroud)
然后,您就可以将用户重定向到授权网址,以便授权您的应用.用户将被发送到soundcloud.com进行登录(如果他们没有活动会话)并批准您的应用访问.根据您使用的框架(例如Django,Flask等),它可能看起来像这样:
return redirect(client.authorize_url)
Run Code Online (Sandbox Code Playgroud)
批准对您的应用程序的访问权限后,用户将被重定向到您在注册应用程序时和构造函数中指定的重定向uri.该URL将包含一个查询字符串,其中包含一个"code"参数,您可以使用该参数获取访问令牌.同样,根据您使用的框架,这可能如下所示:
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
Run Code Online (Sandbox Code Playgroud)
您应该存储访问令牌(即在某种类型的数据存储中,如MySQL或Redis),这样您可以在用户希望将来访问SoundCloud时使用它.
获得访问令牌后,上传轨道应该非常简单.获得音频文件后,只需向track资源发送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')
})
Run Code Online (Sandbox Code Playgroud)
您将获得一个跟踪资源,然后您可以使用该资源获取Soundcloud URL:
print track.permalink_url
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!如果您有任何疑问,请告诉我.
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |