Edit in JSFiddle

<input type="text" id="id" value="PL07D6B14E58F50900" />
<input type="submit" id="submit" value="Load" />

<h1>Failed</h1>
<div id="failed"></div>

<h1>Success</h1>
<div id="success"></div>

<h1>Matches</h1>
<div id="content"></div>

              
var start = 1,
    index = 0,
    matches = [],
    pageToken = '',
    success = document.getElementById('success'),
    failed = document.getElementById('failed'),
    content = document.getElementById('content');

function load(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                callback(JSON.parse(xhr.responseText));
            } else {
                callback([{}]);
            }
        }
    };
    xhr.send();
}

function loadPage(id) {
    if (!id) {
        id = document.getElementById('id').value;
    }

    load('https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=AIzaSyBxGbqNZL1EXK7aaZWGC4pohdsMcYliy_s&playlistId=' + id + '&pageToken=' + pageToken + '&max-results=50', function (e) {
        console.log('loadPage', e);
        if (e.items) {
            searchSpotify(e.items);
        }
        if (e.nextPageToken) {
            pageToken = e.nextPageToken;
        }
    });
}

function searchSpotify(items) {
    var name = items[index].snippet.title || [];
    name = name.match(/[\w']+/g)
        .join(' ')
        .replace(/official/ig, '')
        .replace(/featuring/ig, '')
        .replace(/feat/ig, '')
        .replace(/video/ig, '')
        .replace(/1080p/ig, '')
        .replace(/music/ig, '');

    load('http://ws.spotify.com/search/1/track.json?q=' + encodeURIComponent(name), function (e) {
        if (e.tracks && e.tracks[0]) {
            console.log('success', name, e);
            // success
            matches.push(e.tracks[0]);
            success.innerHTML += name + '<br/>';
            content.innerHTML += e.tracks[0].href + '<br/>';
        } else {
            console.log('fail', name, e);
            // fail
            failed.innerHTML += name + '<br/>';
        }

        if (index < items.length - 1) {
            index += 1;
            searchSpotify(items);
        } else {
            console.log(matches);
            start += 50;
            index = 0;
            loadPage();
        }
    });
}

document.getElementById('submit').addEventListener('click', function () {
    index = 0;
    matches = [];
    loadPage();
});