2016-04-14 8 views
9

Ich baue eine Web-App mit dem soundcloud JavaScript SDK, das nur Profile mit einem oder mehreren Tracks zurückgeben soll.soundcloud API - JSON-Track-Anzahl stimmt nicht mit Profil-Track-Anzahl überein

Meine GET-Anforderung gibt ein Array von Benutzerprofilen zurück, die erwartungsgemäß die Eigenschaft track_count und den zugehörigen Wert enthalten.

Wenn ich jedoch dem Link zu jedem Profil folge, unterscheidet sich die Anzahl der Tracks oft von dem in JSON angegebenen Wert (siehe Beispiel in den Bildern unten). In Bezug auf meinen Zweck bedeutet dies, dass es manchmal Profile mit 0 Spuren zurückgibt.

Aus meinen bisherigen Tests habe ich festgestellt, dass die Anzahl der Profiltracks immer kleiner ist als in JSON, wenn die Werte unterschiedlich sind. Könnte das heißen, dass es Spuren enthält, die gelöscht oder entfernt wurden (z. B. wegen Urheberrechtsverletzungen)?

Ich würde wirklich schätzen, wenn jemand etwas Licht darauf werfen könnte.

Danke!

$(document).ready(function() { 
 
      SC.initialize({ 
 
      client_id: 'xxxx', 
 
      redirect_uri: 'http://localhost/callback.html' 
 
      }); 
 

 
      SC.get('/users/12490371/followers', { 
 

 
      limit: page_size, 
 
      linked_partitioning: 1 
 

 
      }).then(function(followers) { 
 

 
      $(followers.collection).each(function(i) { 
 
       //console.log(followers.collection[i].track_count) 
 

 
       if (followers.collection[i].track_count > 10 && followers.collection[i].followers_count < 500) { 
 
       $("#list").append(
 
        "<ul>" + 
 
        "<li class='username'>" + this.username + "</li>" + 
 
        "<li>" + this.followers_count + "</li>" + 
 
        "<li>" + this.track_count + "</li>" + 
 
        "<li><a href='" + this.permalink_url + "' target='_blank'>GO</a>" + "</li>" + 
 
        "</ul>" 
 
       ); 
 
       } 
 

 
      }); 
 
      }); 
 
     });
<div id="list"> 
 
    <ul> 
 
    <li class='username'>Username</li> 
 
    <li>Followers</li> 
 
    <li>Track count</li> 
 
    <li>Profile</li> 
 
    </ul> 
 
</div>

profile view JSON view

+3

Ja, es gibt viele Gründe, warum ein Track nicht angezeigt wird. Es kann vom Rechteinhaber der Strecke genommen werden, privat gemacht oder vom Uploader gelöscht werden, oder (und das ist der heikle) in bestimmten Gebieten blockiert. Das Berechnen der Richtlinien aller Spuren eines Benutzers bei jedem Abruf ist nicht ganz durchführbar, daher ist diese Zahl manchmal ungenau (je nachdem, wer fragt und wo sie sich befinden). – nickf

+0

Danke Nick, das macht Sinn. Schätze, dass du zurück zu mir kommst. Du sagst, es ist "nicht ganz machbar", bedeutet das, dass es in einem zukünftigen Update machbar sein könnte? – samnicho

+0

Nein. Entschuldigung, ich hätte das besser verstehen sollen. – nickf

Antwort

0

Um Ihre Frage zu beantworten, wie es scheint auf jeden Fall, dass der Soundcloud-API alle Titel vom Künstler gibt, egal in welchem ​​Zustand diese Spuren sind in (öffentlichen , privat, usw.).

Soweit der Rest geht, ist Sound Cloud berüchtigt dafür, streng zu sein, wie Künstlerinhalte in Bezug auf die Einbettung oder die Verwendung auf anderen Websites gehandhabt werden. Es liegt in der Regel an der Künstlerin von meinem Verständnis, aber im Allgemeinen wollen sie, dass die Inhalte von Künstlern geschützt werden, besonders wenn sie unter einem Vertrag mit einer Plattenfirma oder etwas anderem stehen.

Wie für Ihre Web-App, müssen Sie entweder umgehen oder es komplett ablegen, es sei denn, Sie können eine Art von Schaber erstellen, die relevantere Informationen erhalten kann. Wenn Ihre Website jedoch Musik direkt von der Website wiedergeben möchte, können Sie möglicherweise nicht weiter arbeiten.

Verwandte Themen