Skip to content

Instantly share code, notes, and snippets.

@AaronLayton
Last active July 6, 2018 08:14
Show Gist options
  • Save AaronLayton/6b72f4026f2c51463e17606bce5868d6 to your computer and use it in GitHub Desktop.
Save AaronLayton/6b72f4026f2c51463e17606bce5868d6 to your computer and use it in GitHub Desktop.
Export Google Music playlist to http://www.playlist-converter.net/
var songs = {};
function addSongs(songList) {
[...document.querySelector('.song-table').querySelectorAll('tr.song-row')].forEach(row => {
const title = row.querySelector('[data-col=title]');
if (!title) return;
const artist = row.querySelector('[data-col=artist]');
if (!artist) return;
songList[title.innerText.trim()] = artist.innerText.trim()
});
return songList;
}
songs = addSongs(songs);
var requestAnimationFramePromise = () => new Promise(resolve => requestAnimationFrame(resolve));
var lastScroll = -1;
var container = document.querySelector('#mainContainer');
async function processList() {
container.scrollTop = 0;
while (lastScroll != container.scrollTop) {
lastScroll = container.scrollTop;
container.scrollBy(0,200);
console.log("Scrolling");
songs = addSongs(songs);
await requestAnimationFramePromise();
}
}
processList().then(() => {
console.log("done");
var output ="";
for (var key in songs) {
output += `${key} - ${songs[key]}\n`;
}
console.log(output);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment