2016-03-14 27 views
9

L'API Soundclouds restituisce 403 su alcune tracce per me. Ho provato a giocare con gli endpoint raw e anche con il wrapper api soundcloud per python, entrambi hanno il problema.L'API Soundcloud restituisce 403 su alcune tracce

https://api.soundcloud.com/tracks/251164884.json?client_id=CLIENT_ID 

È possibile che uno restituisce un errore 403 mentre al di sotto si lavora, utilizzando lo stesso CLIENT_ID ovviamente

https://api.soundcloud.com/tracks/197355235.json?client_id=CLIENT_ID 

Utilizzando la libreria wrapper che ottengo. requests.exceptions.HTTPError: 403 Errore client: Forbidden

import soundcloud 
    client = soundcloud.Client(client_id=CLIENT_ID) 
    track = client.get('/resolve', url='https://soundcloud.com/mtarecords/my-nu-leng-flava-d-soul-shake') 

https://soundcloud.com/calyxteebee/nothing-left Un'altra pista che anche non si risolve. Non tutte le tracce hanno questo problema, la maggior parte funziona come hanno sempre.

Se si va su Condividi -> Incorpora su Soundcloud, track_id sarà lì, quindi so che sto utilizzando il track_id corretto.

Visualizzazione degli endpoint HTTP nel browser Ho ricevuto l'errore.

Qualcun altro si è già imbattuto in questo problema?

+0

Forse legato a questo articolo? http://stackoverflow.com/questions/35877369/http-requests-to-tracks-id-a-403-status-code-from-aws-other-cloud-providers Sto avendo ancora questo problema – PaulDart

+1

Sei ricevendo solo l'errore su alcune tracce o su tutte le tracce? Mi sono imbattuto in quell'altro problema durante la ricerca in giro, sembra descrivere un comportamento simile. Penserei che se il problema fosse così diffuso, avrebbe innescato alcuni test falliti o qualcosa alla fine di soundclouds. Suppongo che dobbiamo solo giocare al gioco d'attesa? – Andrew

risposta

1

utilizzando questo URL, funziona perfettamente signore. Prova questo. : D

https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID 
3
+4

Nessuno dei due endpoint restituiti dagli URL di esempio (con CLIENT_ID sostituito) funziona per me. Risolve il giusto track_id/url e tenta di reindirizzare/caricare i dati dell'API della traccia ma genera 403 come prima. Ho provato a utilizzare CLIENT_ID/App diversi e ho persino provato a creare un nuovo account sviluppatore insieme. Tuttavia, i problemi persistono con quelle tracce. – Andrew

+1

mi sono piaciuti su Soundcloud, poi sono andato su un sito Web che sto sviluppando utilizzando l'API di Soundcloud e le tracce non sono state visualizzate nel mio feed "preferiti". Ho aggiunto altre tracce dopo per vedere se si trattava di un ritardo nell'aggiornamento dei dati restituiti tramite l'API, ma nessuna delle tracce con cui si hanno problemi devono ancora apparire nei risultati di una chiamata all'endpoint me/favorites e le tracce aggiunte dopo la loro vengono visualizzate senza alcun ritardo. Appaiono come previsto su soundcloud, quindi azzarderei a pensare che ci sia un problema con i diritti/scope su alcune tracce tramite l'API. – SteveE

+0

Ho riscontrato lo stesso problema. Gli URL vengono risolti dalla mia casella locale (Australia) ma non dalle nostre caselle di produzione (in Arizona). Lo abbiamo fatto migliaia di volte nella nostra app negli ultimi tre anni e questo sembra essere un comportamento abbastanza nuovo. Sono in grado di tirare giù l'URL usando curl dalle scatole prod, ma usando ruby ​​open-uri esplode. Molto strano. La mia ipotesi è che abbiano aggiunto il blocco degli user-agent su alcuni edge server. – Ponny

0

Ho approfondendo il problema da qualche tempo, e ho scoperto una cosa che a almeno risolve la mia situazione, non so se risolverà il tuo.

La rivelazione: Se fate una richiestatesta con l'arricciatura (-I opzionale) allora sembra di tornare sempre con una risposta 200/300 gamma.

Perché funziona: Sto Streaming Soundcloud tracce con gli URL come https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID in un app iOS che utilizzano FreeStreamer.Lo stream non funzionava esattamente su quelle tracce per le quali curl -v restituiva 403 per l'URL delle tracce (restituisce 401 per l'URL dello stream). Quindi, per risolvere la mia situazione, eseguo una richiesta head che fornisce 302 Found, estrae l'URL mp3 e lo uso per lo streaming al posto dell'URL originale.

Considero questo un errore della libreria (poiché dovrebbe essere in grado di gestire qualsiasi 302) e ho creato un issue per esso.