2012-01-31 14 views
6

Buduję aplikację, która rejestruje wypowiedzi użytkowników, generuje plik audio i przesyła go do SoundCloud oraz pobiera URL przesłanego utworu za pomocą Pythona.Jak przesłać pliki do Soundcloud za pomocą Pythona?

Użyłem PyAudio do nagrywania i generowania pliku audio - pliku wave.

Ale muszę wiedzieć, jak załadować plik do SoundCloud. Z badań dowiedziałem się, że istnieje pakunek Pythona dla SoundCloud API i z plakatem biblioteki Pythona, można łatwo przesłać pliki do SoundCloud.

Jak to zrobić? Nie korzystałem wcześniej z tego interfejsu API i nie znalazłem odpowiedniego samouczka ani przewodnika, jak z niego korzystać. Jeśli ktoś może mi w tym pomóc, proszę odpowiedzieć na moje pytanie tutaj.

Jak używać tego SoundCloud Python API wrapper do przesyłania plików do SoundCloud za pomocą Pythona przy pomocy biblioteki Python Poster?

Odpowiedz

7

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.

+0

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

+0

Bez problemu vijay. Właśnie zredagowałem swoją odpowiedź, aby podać szczegóły dotyczące OAuth2. –

+0

To zadziałało dobrze! Wielkie dzięki @paul! – vijay

Powiązane problemy