2015-11-02 27 views
5

Tôi đang cố gắng tìm các bản nhạc của người dùng cụ thể nhưng đối với một số người dùng, mặc dù họ có bản nhạc, API SoundCloud trả lại danh sách trống.SoundCloud API trả lại 0 bản nhạc mặc dù người dùng có bản nhạc

Ví dụ, người dùng sau có 17 bài hát như bạn có thể nhìn thấy từ mình track_count

http://api.soundcloud.com/users/1250904?client_id=XXXXXX 

Nếu tôi cố gắng để có được bài hát của mình nó trả về một danh sách trống

http://api.soundcloud.com/users/1250904/tracks?client_id=XXXXXX 

Có thể cho người dùng làm cho bài hát của họ không có sẵn qua API? Có trường nào trên người dùng có thể phân biệt được điều này không?

+0

Điều này nghe giống như câu hỏi cho nhóm hỗ trợ của SoundCloud. –

+1

@tristan Nhóm hỗ trợ của họ trả lời các câu hỏi bằng cách sử dụng StackOverflow - https://developers.soundcloud.com/support –

+0

Rất tuyệt, tôi không biết điều đó; cảm ơn. Đó là một trong những triển khai tốt hơn "chúng tôi sẽ cộng tác và nhận được công việc miễn phí" mà tôi đã thấy. –

Trả lời

3

Điều này rất thú vị. Sử dụng CLIENT_ID bình thường mà tôi tự tạo ra, tôi nhận được kết quả tương tự như bạn thực hiện. Thêm vào đó, nếu tôi cố gắng để đạt API để biết thông tin về một ca khúc đặc biệt, tôi nhận được một lỗi 403 Forbidden:

HTTP GET https://api.soundcloud.com/tracks/149151252.json?client_id=XXXXXX 

Có thể có một vài lý do tại sao điều này xảy ra:

  1. Người sử dụng có đạt đến giới hạn tải xuống cho tất cả các bản nhạc của họ.
  2. Người dùng đã tắt tính năng oEmbed, khiến yêu cầu API đến 403 (xem this post).
  3. Người dùng đã quản lý bằng cách nào đó để chặn quyền truy cập API bình thường vào tuyến đường của họ.

Tôi đang dựa vào lựa chọn 3 tại đây. Tôi đã thực hiện một số thử nghiệm với một số CLIENT_ID khác trong số this question thử dùng CLIENT_ID được ứng dụng youtube-dl sử dụng. Sử dụng _IPHONE_CLIENT_ID, tôi đã có thể xem thông tin cho tất cả 17 bản nhạc. Nếu sự hiểu biết của tôi về khóa đó là chính xác, nó là một khóa API chính được sử dụng bởi SoundCloud cho ứng dụng iOS của họ, điều này sẽ giải thích tại sao khóa đó hoạt động và những người khác thì không.

Người dùng này phải bật một số cài đặt để chặn quyền truy cập API chuẩn vào tuyến đường của họ.

+0

Đó là một tìm kiếm rất thú vị. Tôi chỉ hy vọng '_IPHONE_CLIENT_ID' hoạt động trong thời gian dài. –

+0

Tôi nên lưu ý rằng nó chống lại TOS của SoundClould để sử dụng khóa API của người khác hoặc để đảo ngược thiết kế điểm cuối của họ. Vì vậy, bạn không muốn dựa vào khóa API của người khác cho ứng dụng của bạn. – JAL

+0

Tôi biết điều này hơi cũ vào thời điểm này, nhưng tôi đã nhấn vấn đề này với API của Soundcloud và '_IPHONE_CLIENT_ID' không còn hoạt động (và thực sự không phải là giải pháp khả thi). Tôi đã thực hiện một số thử nghiệm với tài khoản Soundcloud và tôi không thể tìm thấy kết hợp cài đặt bảo mật nào cho phép bản nhạc hiển thị trong giao diện người dùng chứ không phải trong bản trả lại API. Tôi cũng đã gửi email tới [email protected] nhưng không nhận được phản hồi. Tôi không cho rằng bất kỳ ai trong số các bạn đã tìm thấy tài liệu về các cấp truy cập khóa API khác nhau? – rifflock

Các vấn đề liên quan