2016-03-14 41 views
9

Interfejs API Soundclouds zwraca 403 dla niektórych utworów. Próbowałem grać z nieprzetworzonymi punktami końcowymi http, a także pakerem api soundcloud dla Pythona, oba mają problem.Soundcloud API zwraca 403 na niektórych ścieżkach

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

Powyższy jeden zwraca błąd 403 podczas poniżej jeden pracuje, wykorzystując tę ​​samą CLIENT_ID oczywiście

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

Korzystanie z otoki biblioteki ja dostać. requests.exceptions.HTTPError: 403 Client Error: Zakazane

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 inny tor, który również nie rozwiąże. Nie wszystkie utwory mają ten problem, większość pracuje jak zawsze.

Jeśli przejdziesz do Udostępnianie -> Osadź na Soundcloud, track_id będzie tam, więc wiem, że używam poprawnego track_id.

Wyświetlanie punktów końcowych http w przeglądarce Otrzymuję błąd.

Failed to load resource: the server responded with a status of 401 (Unauthorized) - https://api.soundcloud.com/favicon.ico 

Ktoś jeszcze spotkał się z tym problemem?

+0

Może związane z tym produktem? http://stackoverflow.com/questions/35877369/http-requests-to-tracks-id-a-403-status-code-faw-aws-other-cloud-providers Wciąż mam ten problem. – PaulDart

+1

Czy jesteś tylko otrzymujesz błąd na niektórych ścieżkach lub na wszystkich ścieżkach? Wpadłem na ten inny problem podczas wyszukiwania, wydaje się, że opisuję podobne zachowanie. Pomyślałbym, że jeśli sprawa jest tak powszechna, to spowodowałaby to, że niektóre nieudane testy lub coś zakończyło się na blogu dźwiękowym. Chyba musimy po prostu zagrać w grę czekającą? – Andrew

Odpowiedz

1

przy użyciu tego adresu URL, działa idealnie, proszę pana. Spróbuj tego. : D

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

Nie działa żaden z tych punktów końcowych zwracanych przez przykładowe adresy URL (z zamienionym identyfikatorem CLIENT_ID). Przechodzi do właściwego track_id/url i próbuje przekierować/załadować dane interfejsu API, ale wyrzuca 403 jak wcześniej. Próbowałem użyć innej CLIENT_ID/aplikacji, a nawet próbowałem razem utworzyć nowe konto programisty. Mimo to problemy nadal występują w przypadku tych ścieżek. – Andrew

+1

Po prostu polubiłem je na SoundCloud, potem poszedłem do strony, którą rozwijam za pomocą interfejsu API soundcloud, a ścieżki nie pojawiły się w moim kanale "ulubionych". Dodałem trochę innych utworów, aby sprawdzić, czy opóźnienie w aktualizacji danych zwróconych przez interfejs API było opóźnione, ale żaden z utworów, z którymi masz problemy, nie pojawił się jeszcze w wynikach połączenia z punktem końcowym me/favourite i dodane utwory pojawiają się bez opóźnień. Pojawiają się zgodnie z oczekiwaniami na soundcloud, więc zaryzykuję przypuszczenie, że istnieje problem z prawami/zasięgiem na niektórych ścieżkach za pośrednictwem interfejsu API. – SteveE

+0

Otrzymuję ten sam problem. Adresy URL są usuwane z mojego lokalnego pola (Australia), ale nie z naszych skrzynek produkcyjnych (w Arizonie). Robiliśmy to tysiące razy w naszej aplikacji w ciągu ostatnich trzech lat i wydaje się to być całkiem nowym zachowaniem. Jestem w stanie wyciągnąć adres URL za pomocą curl z prod boxów, ale używając ruby ​​open-uri wieje. Bardzo dziwny. Domyślam się, że dodali blokowanie agenta użytkownika do niektórych serwerów brzegowych. – Ponny

0

ja badali ten problem przez jakiś czas, a ja odkryłem coś, co w najmniej rozwiązuje moją sytuację, dunno jeśli to rozwiąże twoje.

Objawienie: Jeśli do głowy wniosek z dyni (-I opcja) to wydaje się zawsze wrócić z odpowiedzią 200/300 zakresu.

Dlaczego to działa: Jestem strumieniowe SoundCloud tory z adresami URL jak https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID w aplikacji iOS korzystających FreeStreamer.Strumień kończył się dokładnie na tych ścieżkach, dla których curl -v zwrócił 403 dla adresu URL ścieżki (zwraca 401 dla adresu URL strumienia). Aby rozwiązać moją sytuację, wykonuję żądanie head, które daje 302 Found, wyodrębnienie adresu URL mp3 i używam go do streamowania zamiast oryginalnego adresu URL.

Uważam, że jest to błąd biblioteki (ponieważ powinien obsłużyć dowolne 302) i stworzyłem dla niego issue.