2015-11-02 19 views
5

Sto cercando di ottenere le tracce di utenti specifici ma per alcuni utenti, anche se hanno tracce, l'API SoundCloud restituisce una lista vuota.API SoundCloud che restituisce 0 tracce nonostante l'utente abbia tracce

Ad esempio, il seguente utente ha 17 tracce, come si può vedere dalla sua track_count

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

Se cerco di ottenere le sue tracce restituisce una lista vuota

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

E 'possibile per gli utenti di rendere le loro canzoni non disponibili tramite API? C'è un campo per l'utente che può distinguerlo?

+0

Sembra una domanda per il team di supporto di SoundCloud. –

+1

@tristan Il loro team di supporto risponde alle domande usando StackOverflow - https://developers.soundcloud.com/support –

+0

Oh, non lo sapevo; Grazie. Questa è una delle migliori implementazioni di "crowdsourcing e ottenere lavoro libero" che ho visto. –

risposta

3

Questo è molto interessante. Usando un normale CLIENT_ID mi sono generato, ottengo gli stessi risultati che si ottengono. Inoltre, se cerco di colpire le API per informazioni su un brano specifico, ottenere un 403 errore di Forbidden:

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

Ci potrebbero essere alcuni motivi per cui questo sta accadendo:

  1. L'utente ha colpisci il limite di download per tutte le loro tracce.
  2. L'utente ha disattivato la funzione oEmbed, provocando la richiesta dell'API a 403 (vedere this post).
  3. L'utente è in qualche modo riuscito a bloccare il normale accesso API alle proprie tracce.

Mi sto appoggiando alla scelta 3 qui. Ho eseguito alcuni test con altri CLIENT_ID in this question durante il tentativo di CLIENT_ID utilizzato dall'applicazione youtube-dl. Usando il loro _IPHONE_CLIENT_ID, sono stato in grado di vedere le informazioni per tutte e 17 le tracce. Se la mia comprensione di quella chiave è corretta, è una chiave API principale utilizzata da SoundCloud per la sua applicazione iOS, che spiegherebbe il motivo per cui la chiave funziona e altre no.

Questo utente deve disporre di alcune impostazioni abilitate per bloccare l'accesso standard API alle proprie tracce.

+0

Questa è una scoperta molto interessante. Spero solo che il '_IPHONE_CLIENT_ID' funzioni anche a lungo termine. –

+0

Devo notare che è contro il TOS di SoundClould usare la chiave API di qualcun altro o per decodificare i propri endpoint. Quindi non vuoi fare affidamento sulla chiave API di qualcun altro per la tua applicazione. – JAL

+0

So che questo è un po 'vecchio a questo punto, ma ho riscontrato questo problema con le API di Soundcloud e che "_IPHONE_CLIENT_ID" non funziona più (e non è realmente una soluzione praticabile). Ho eseguito alcuni test con un account Soundcloud e non sono riuscito a trovare alcuna combinazione di impostazioni sulla privacy che consenta la visualizzazione di una traccia nell'interfaccia utente ma non nel ritorno dell'API. Ho anche inviato un'e-mail [email protected], ma non ho ricevuto risposta. Suppongo che nessuno di voi abbia trovato la documentazione di diversi livelli di accesso alle chiavi API? – rifflock