2012-01-31 23 views
6

İnsanların söylediklerini kaydedecek, bir ses dosyası oluşturacak ve SoundCloud'a yükleyecek ve Python'u kullanarak yüklenen parçanın URL'sini alabilecek bir uygulama yapıyorum.Python kullanarak Soundcloud'a dosya nasıl yüklenir?

Bir ses dosyası - bir dalga dosyası kaydetmek ve oluşturmak için PyAudio kullandım.

Ancak dosyayı SoundCloud'a nasıl yükleyeceğimi bilmem gerekiyor. Araştırma ile, SoundCloud API için bir Python sarıcısı ve Python kitaplığı Posteri ile bir kişinin kolayca SoundCloud'a dosya yükleyebileceğini buldum.

Bunu nasıl yapacağım? Bu API'yi daha önce kullanmamıştım ve nasıl kullanacağına dair uygun bir öğretici veya kılavuz bulamıyorum. Bu konuda bana yardımcı olabilecek herhangi biri varsa, lütfen sorumu buraya yazın.

Bu, Poster Python kitaplığının yardımıyla Python kullanarak SoundCloud'a dosya yüklemek için bu SoundCloud Python API wrapper nasıl kullanılır?

cevap

7

Yeni bir Python API sarıcısı yayınladık. PyPi'dan veya Github account'dan edinebilirsiniz. Bir parça yüklemek için, önce desteklenen OAuth2 auth akışlarından birini kullanarak bir erişim jetonu almak istersiniz. Bunu, README file'da okuyabilirsiniz. Haberinizi detaylandırmamı isterseniz bana bildirin ve cevabımı düzenleyebilirim.

Erişim belirteci almak için, önce register your application on soundcloud.com. Kullanıcıların uygulamanıza yetki verdikten sonra yönlendirilecekleri bir URI vermeniz ve bir müşteri kimliği ve müşteri sırrı vermeniz gerekecektir. Eğer bu kimlik bilgilerini edindikten sonra, Müşteri kurucusuna onları geçmek:

import soundcloud 
client = soundcloud.Client(client_id=YOUR_CLIENT_ID, 
          client_secret=YOUR_CLIENT_SECRET, 
          redirect_uri="http://your/redirect/uri") 

Daha sonra app yetkilendirmek için yetkilendirme URL'ye yönlendirmek mümkün olacak. Kullanıcı, oturum açmak için (etkin bir oturumu yoksa) soundcloud.com adresine gönderilecek ve uygulamanıza erişimi onaylayacaktır. Eğer böyle bir şey görünebilir (örn Django, Flask, vs) kullandığınız framework bağlı: kaydederken uygulamanız için erişimi onayladıktan sonra

return redirect(client.authorize_url) 

, kullanıcı belirttiğiniz yönlendirme uri yönlendirileceksiniz uygulamanız ve yapıcınız. URL, daha sonra bir erişim belirteci almak için kullanabileceğiniz bir 'kod' parametresi içeren bir sorgu dizesine sahip olacaktır. Yine, kullandığınız framework bağlı olarak bu gibi görünebilir:

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 

Muhtemelen erişim belirteci saklamalısınız (yani MySQL veya REDIS gibi veri deposunda çeşit), böylece her kullanabilirsiniz Bu kullanıcı gelecekte SoundCloud'a erişmek istiyor.

Erişim belirteciniz olduğunda, bir parça yüklemek oldukça basit olmalıdır. Ses dosyanızı aldıktan sonra, parça kaynağına bir POST isteği gönderin. İşte bir örnek:

print track.permalink_url 

Umut yardımcı olur:

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') 
}) 

geri sonra Soundcloud URL almak için kullanabileceğiniz bir iz kaynak alırsınız! Herhangi bir sorunuz olursa haberim olsun.

+0

Çok teşekkürler @Paul! Gerçekten yardımcı oldu! Ve evet, auth hakkında daha fazla duymak istiyorum ve nasıl erişim belirteci almak için .. Bana çok yardımcı olur .. – vijay

+0

Sorun değil vijay. Cevabımı, OAuth2 ile ilgili ayrıntıları içerecek şekilde düzenledim. –

+0

Bu iyi çalıştı! Çok teşekkürler @paul! – vijay

İlgili konular