新しいPythonAPIラッパーをリリースしました。PyPiまたはGithubアカウントから入手できます。トラックをアップロードするには、最初に、サポートされているOAuth2認証フローの1つを使用してアクセストークンを取得する必要があります。これについては、 READMEファイルで読むことができます。認証について詳しく説明してほしい場合はお知らせください。回答を編集できます。
アクセストークンを取得するには、最初にアプリケーションをsoundcloud.comに登録します。アプリケーションを承認した後にユーザーが誘導される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リクエストをtracksリソースに送信するだけです。次に例を示します。
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')
})
トラックリソースを取得します。これを使用して、SoundcloudURLを取得できます。
print track.permalink_url
お役に立てば幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。