2017-02-21 6 views
0

SoundCloud API 설명서 (https://developers.soundcloud.com/docs/api/reference#tracks)를 따르면서 필자는 내 프로젝트 중 하나에 SoundCloud API 구현을 작성하기 시작했습니다. 이 코드를 사용하여 120000ms의 최소 길이와 특정 장르의 50 개 트랙을 얻기 위해 노력 :지속 시간 필터를 무시한 SoundCloud API

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

사운드 클라우드 트랙의 유효한 목록으로 응답하지만, 그 기간은 주어진 필터와 일치하지 않습니다.

예 :

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

'duration'-매개 변수를 무시 API가 아니면 필터에 오류가 내 코드의 내부에있다?

Ps .: 오류가 파이썬 코드 내부에 없으면 soundcloud search api ignoring duration filter?과 관련 될 수 있습니다.

그것은 하지 벅스 :

답변

0

내 코드에 몇 가지 변화와 함께이 문제를 해결하기 위해 노력 후, 나는 마침내 문제를 발견했다. Soundcloud가 "Go +"- 서비스를 발표하면서 일부 공식 트랙은 30 초의 미리보기로 제한되었습니다. API 필터는 전체 트랙의 재생 시간을 비교하는 것으로 보이며 미리보기 버전을 클라이언트에 다시 보냅니다 ('이동 +'에 가입하지 않았거나 응용 프로그램이 로그인하지 않은 경우).

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

그래서, 기간을 기준으로 필터링 할 수있는 유일한 방법은 수신 된 모든 트랙을 반복하는 것입니다