一个友好的soundcloud api包装库
soundcloud的Python项目详细描述
围绕Soundcloud API的友好包装。
安装
要安装soundcloud python,只需:
pip install soundcloud
或者如果你对pip不感兴趣:
easy_install soundcloud
基本用途
要使用soundcloud python,必须首先创建一个客户机实例, 至少传递您在registered your app:
import soundcloud client = soundcloud.Client(client_id=YOUR_CLIENT_ID)
然后可以使用客户端实例来获取或修改资源:
tracks = client.get('/tracks', limit=10) for track in tracks: print track.title app = client.get('/apps/124') print app.permalink_url
身份验证
soundcloud api支持的所有OAuth2 authorization flows都是 在soundcloud python中提供。如果您只需要只读访问 公共资源,只需在创建客户机时提供客户机ID 实例:
import soundcloud client = soundcloud.Client(client_id=YOUR_CLIENT_ID) track = client.get('/tracks/30709985') print track.title
但是,如果需要访问私有资源或修改资源, 您需要具有对应用程序的用户委派访问权限。待办事项 这样,您可以使用以下OAuth2授权流之一。
授权代码流
Authorization Code Flow涉及将用户重定向到soundcloud.com 他们将在何处登录并授予对您的应用程序的访问权限:
import soundcloud client = soundcloud.Client( client_id=YOUR_CLIENT_ID, client_secret=YOUR_CLIENT_SECRET, redirect_uri='http://yourapp.com/callback' ) redirect(client.authorize_url())
请注意,重定向uri必须与您在 注册了你的申请。授予访问权限后,用户将 重定向到此uri,此时应用程序可以交换 访问令牌的返回代码:
access_token, expires, scope, refresh_token = client.exchange_token( code=request.args.get('code')) render_text("Hi There, %s" % client.get('/me').username)
用户凭据流
User Credentials Flow允许您交换用户名和 访问令牌的密码。小心使用这个流,它是 不太好问你的用户他们的密码,但可能是 在某些用例中是必需的:
import soundcloud client = soundcloud.Client( client_id=YOUR_CLIENT_ID, client_secret=YOUR_CLIENT_SECRET, username='jane@example.com', password='janespassword' ) print client.get('/me').username
示例
解析曲目并打印其ID:
import soundcloud client = soundcloud.Client(client_id=YOUR_CLIENT_ID) track = client.get('/resolve', url='http://soundcloud.com/forss/flickermood') print track.id
上传曲目:
import soundcloud client = soundcloud.Client(access_token="a valid access token") track = client.post('/tracks', track={ 'title': 'This is a sample track', 'sharing': 'private', 'asset_data': open('mytrack.mp4', 'rb') }) print track.title
开始跟踪用户:
import soundcloud client = soundcloud.Client(access_token="a valid access token") user_id_to_follow = 123 client.put('/me/followings/%d' % user_id_to_follow)
更新您的个人资料描述:
import soundcloud client = soundcloud.Client(access_token="a valid access token") client.put('/me', user={ 'description': "a new description" })
代理支持
如果您在代理后面,则可以在创建客户端时指定它:
import soundcloud proxies = { 'http': 'example.com:8000' } client = soundcloud.Client(access_token="a valid access token", proxies=proxies)
代理KWAG是一个字典,协议是键和主机:端口是值。
重定向
默认情况下,等幂方法将遵循301或302重定向。在某些情况下,您可能需要禁用此功能,例如:
import soundcloud client = soundcloud.Client(access_token="a valid access token") track = client.get('/tracks/293/stream', allow_redirects=False) print track.location
将打印曲目流URL。如果省略allow_redirects,则返回一个二进制流。
运行测试
要运行测试,请运行:
$ pip install -r requirements.txt $ nosetests --with-doctest ..................
成功!