2015-11-02 5 views
5

特定のユーザーのトラックを取得しようとしていますが、ユーザーがトラックを持っていても、SoundCloud APIは空のリストを返します。例えばユーザーがトラックを持っているにもかかわらず、0のトラックを返すSoundCloud API

、次のユーザーは、あなたが彼のtrack_count

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

から見ることができるように私は彼のトラックを取得しようとする場合は、空のリスト

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

は、ことは可能である返す17台のトラックを持っていますユーザーがAPI経由で曲を利用できないようにするこれを区別できるフィールドがユーザにありますか?

+0

これは、SoundCloudのサポートチームの質問のようです。 –

+1

@tristan彼らのサポートチームがStackOverflowを使って質問に答える - https://developers.soundcloud.com/support –

+0

ああ、私はそれを知らなかった。ありがとう。それは、私が見たより良い "私たちはクラウドソーシングし、自由な仕事を得る"の実装の一つです。 –

答えて

3

これは非常に興味深いです。通常のCLIENT_IDを使用して自分自身を生成しましたが、同じ結果が得られます。私は特定のトラックについては、APIをヒットしようとした場合また、私は403 Forbiddenになった:

  1. をユーザーが持っている:

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

    これが発生しているいくつかの理由が考えられますすべてのトラックのダウンロード制限を超えました。

  2. ユーザーがoEmbedを無効にしたため、403へのAPI要求が発生しました(this post参照)。
  3. ユーザーは何とか自分のトラックへの通常のAPIアクセスをブロックすることができました。

私はここで選択肢3に傾いています。私はthis questionのいくつかの他のCLIENT_IDでいくつかのテストを行いましたが、youtube-dlアプリケーションで使用されているCLIENT_IDを試しています。 _IPHONE_CLIENT_IDを使って、17トラックすべての情報を見ることができました。そのキーについての私の理解が正しい場合、それはiOSアプリケーション用にSoundCloudで使用されるマスターAPIキーです。なぜキーワークと他のものがそうでないのかを説明します。

このユーザーは、トラックへの標準APIアクセスをブロックするには、一部の設定を有効にする必要があります。

+0

これは非常に興味深い発見です。私は '_IPHONE_CLIENT_ID'が長期的にはうまくいくことを期待しています。 –

+0

他の人のAPIキーを使用するか、エンドポイントをリバースエンジニアリングするのは、SoundClouldのTOSに対するものです。したがって、あなたのアプリケーションに他の誰かのAPIキーを頼りにしたくないのです。 – JAL

+0

これはちょっと古かったのですが、私はこの問題をSoundcloudのAPIで打ち切り、 '_IPHONE_CLIENT_ID'はもはや動かなくなりました(実用的な解決策ではありません)。 私はSoundcloudアカウントでいくつかのテストを行いましたが、APIの返品ではなくUIにトラックが表示されるようなプライバシー設定の組み合わせは見つかりませんでした。私も[email protected]にメールを送ったが、何の反応もなかった。 異なるAPIキーアクセスレベルのドキュメントが見つかりませんでしたか? – rifflock

関連する問題