Właśnie wydaliśmy nową otokę API Pythona. Możesz go pobrać na PyPi lub z naszej Github account. Aby przesłać ścieżkę, najpierw musisz uzyskać token dostępu, korzystając z jednego z obsługiwanych przepływów autoryzacji OAuth2. Możesz o tym przeczytać w README file. Daj mi znać, jeśli chcesz, abym opracował auth i mogę edytować moją odpowiedź.
Aby uzyskać token dostępu, najpierw register your application on soundcloud.com. Będziesz musiał podać identyfikator URI, do którego użytkownicy będą kierowani po autoryzowaniu aplikacji, a otrzymasz identyfikator klienta i sekret klienta. Po uzyskaniu tych poświadczeń, przekazać je do konstruktora Client:
import soundcloud
client = soundcloud.Client(client_id=YOUR_CLIENT_ID,
client_secret=YOUR_CLIENT_SECRET,
redirect_uri="http://your/redirect/uri")
Będziesz wtedy w stanie przekierować użytkownika do adresu URL autoryzacji w celu autoryzacji aplikacji. Użytkownik zostanie wysłany do soundcloud.com, aby się zalogować (jeśli nie ma aktywnej sesji) i zatwierdzić dostęp do aplikacji. Zależnie ramach którego używasz (np Django, kolba, etc) to może wyglądać następująco:
return redirect(client.authorize_url)
Po zatwierdzeniu dostęp do aplikacji, użytkownik zostanie przekierowany do przekierowania URI określony podczas rejestracji Twoja aplikacja i konstruktor. Adres URL będzie zawierał ciąg kwerendy zawierający parametr "kod", który można następnie użyć do uzyskania tokena dostępu. Ponownie, w zależności od ram, którego używasz, może to wyglądać tak:
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
Powinieneś raczej przechowywać token dostępu (czyli w jakimś magazynie danych jak MySQL lub Redis), więc można go używać, gdy użytkownik chce uzyskać dostęp do SoundCloud w przyszłości.
Po uzyskaniu tokena dostępu przesłanie utworu powinno być całkiem proste. Po uzyskaniu pliku dźwiękowego po prostu wyślij żądanie POST do zasobu ścieżek. Oto przykład:
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')
})
Dostaniesz z powrotem do zasobu utworu, który można użyć, aby uzyskać adres URL SoundCloud:
print track.permalink_url
nadzieję, że pomoże! Daj mi znać, jeśli masz jakieś pytania.
Wielkie dzięki @Paul! To było naprawdę pomocne! I tak, chciałbym usłyszeć więcej na temat auth i jak zdobyć token dostępu .. To mi bardzo pomogłoby. – vijay
Bez problemu vijay. Właśnie zredagowałem swoją odpowiedź, aby podać szczegóły dotyczące OAuth2. –
To zadziałało dobrze! Wielkie dzięki @paul! – vijay