Hola Elías,
lo que te está pasando es que tu función validar_playlist () no devuelve nada, ya que el código de bloque de la llamada AJAX vía JQuery no es accesible para el cuerpo principal de la función, y entonces la función no está devolviendo nada.
Pordías solucionarlo creando una variable en el cuerpo de la función, y que a su vez la función AJAX asigne valor a esta variable. Luego la función devolverá este valor:
function validar_playlist (url) {
var res = false; // variable para la salida
// var key = '755f8e6cd162151d399938ebcdf1b003';
// var set_url = 'https://soundcloud.com/mantarrayachile/sets/costa-esqueleto-2013';
$.ajax({
async: false,
url: 'http://api.soundcloud.com/resolve.json',
data: {
'url': url,
'client_id': '755f8e6cd162151d399938ebcdf1b003'
},
success: function (data) {
if (data.kind == 'playlist') {
res = true;
} else {
res = false;
}
},
error: function () {
res = false;
}
});
return res;
}
if (validar_playlist('https://soundcloud.com/mantarrayachile/sets/costa-esqueleto-2013')) {
alert("ES UN PLAYLIST VALIDO");
} else {
alert("error");
}
Así sí funciona.
Podría simplificarse además el código usando el valor de default de la variable en el cuerpo de la función:
function validar_playlist (url) {
var res = false; // variable para la salida
// var key = '755f8e6cd162151d399938ebcdf1b003';
// var set_url = 'https://soundcloud.com/mantarrayachile/sets/costa-esqueleto-2013';
$.ajax({
async: false,
url: 'http://api.soundcloud.com/resolve.json',
data: {
'url': url,
'client_id': '755f8e6cd162151d399938ebcdf1b003'
},
success: function (data) {
if (data.kind == 'playlist') {
res = true;
}
},
});
return res;
}
if (validar_playlist('https://soundcloud.com/mantarrayachile/sets/costa-esqueleto-2013')) {
alert("ES UN PLAYLIST VALIDO");
} else {
alert("error");
}
es decir, cualqueir cosa que no sea success devuelve false.
Saludos!