プレイリスト(セット)を管理するためのpythonアプリを開発しています。このアプリは、SoundCloud API を使用してセットを作成/更新/削除する必要があります。
API を使用してセットを作成しても問題ありません。しかし、作成したプレイリストを変更または削除しようとすると、403 Client Error: Forbidden が表示されます。
API ドキュメントの「SoundCloud Connect 画面を使用しない認証」セクションを使用しました。
これが私のコードです:
client = soundcloud.Client(client_id='MY_ID', client_secret='MY_SECRET', username='NAME', password='PASS')
client.post('/playlists', playlist={'title': 'Test playlist', 'sharing': 'public', 'tracks': [], 'permalink': 'test-playlist'})
client.delete('/playlists/test-playlist')
そして、削除時に次の例外が発生します。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/soundcloud/client.py", line 130, in _request
return wrapped_resource(make_request(method, url, kwargs))
File "/usr/local/lib/python2.7/dist-packages/soundcloud/request.py", line 190, in make_request
result.raise_for_status()
File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 683, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden
また、トラックをプレイリストに追加しようとすると、同じ例外が発生します
client.put('/playlists/test-playlist', playlist={'tracks': tracks})
トラックは次のとおりです。
[{'id': 57417403}, {'id': 100249929}, {'id': 37964083}]