Мы только что выпустили новую оболочку Python API. Вы можете получить его на PyPi или на нашей учетной записи Github . Чтобы загрузить дорожку, сначала необходимо получить токен доступа, используя один из поддерживаемых потоков аутентификации OAuth2. Вы можете прочитать об этом в файле README . Дайте мне знать, если вы хотите, чтобы я уточнил аутентификацию, и я могу отредактировать свой ответ.
Чтобы получить токен доступа, сначала зарегистрируйте свое приложение на soundcloud.com . Вам нужно будет указать URI, на который пользователи будут перенаправлены после авторизации вашего приложения, и вам будет присвоен идентификатор клиента и секрет клиента. Получив эти учетные данные, передайте их конструктору Client:
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 на ресурс треков. Вот пример:
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')
})
Вы получите ресурс трека, который затем сможете использовать для получения URL-адреса Soundcloud:
print track.permalink_url
Надеюсь, это поможет! Дайте мне знать, если у вас есть какие-либо вопросы.