2017-02-21 7 views
0

SoundCloud APIドキュメントのhttps://developers.soundcloud.com/docs/api/reference#tracksに続いて、自分のプロジェクトの1つにSoundCloud APIの実装を書き始めるようになりました。私はこのコードを使用して120000msの最小長と特定のジャンルの50曲を取得しようとしました:持続時間フィルタを無視するSoundCloud API

def get_starttracks(genres="Rock"): 
    return client.get("/tracks", genres=genres, duration={ 
     'from': 120000 
    }, limit='50') 

SoundCloudがトラックの有効なリストで応答しますが、その期間は、指定されたフィルタと一致していません。

例:

print(get_starttracks(genres="Pop")[0].fields()['duration']) 
> 30000 

は「duration'パラメータを無視してのAPIであるか、私のコードの内部フィルタに誤りがありましたか?

Ps .:エラーがPythonコードの内部にない場合、soundcloud search api ignoring duration filter?に関連付けることができます。

それは、ませバグです:

答えて

0

私のコードにいくつかの変更で、この問題を修正しようとした後、私は最終的に問題を発見しました。 Soundcloudが "Go +" - サービスをリリースしたとき、一部の公式トラックは30秒間のプレビューに限定されました。 APIフィルタは、フルトラックの再生時間を比較しているようですが、プレビューバージョンをクライアントに返すだけです(「Go +」やあなたのアプリケーションがログインしていない場合)。

for track in tracks: 
    if track.duration <= 30000: 
     tracks.remove(track) 

ので、期間によってフィルタリングする唯一の方法は、すべてのトラックを受信を反復処理することです

関連する問題