我們剛剛發佈了一個新的Python API包裝器。你可以在PyPi或從我們的Github account得到它。要上傳曲目,您需要先使用其中一種受支持的OAuth2身份驗證流獲取訪問令牌。您可以在README file中閱讀。讓我知道你是否想要我詳細說明auth,並且我可以編輯我的答案。
要獲取訪問令牌,首先需要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的,燒瓶等),它可能看起來像這樣的框架:
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的數據存儲的IE)所以你可以使用它時,該用戶將來希望訪問SoundCloud。
獲得訪問令牌後,上傳曲目應該非常簡單。獲得音頻文件後,只需向POST資源發送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網址:
print track.permalink_url
希望幫助!如果您有任何問題,請告訴我。
非常感謝@Paul!這真的很有幫助!是的,我想聽取更多有關身份驗證以及如何獲取訪問令牌的信息..它會幫助我很多.. – vijay 2012-02-14 18:17:09
沒問題vijay。我剛剛編輯了我的答案以包含有關OAuth2的詳細信息。 – 2012-02-15 18:36:05
這工作得很好!非常感謝@paul! – vijay 2012-02-20 08:56:28