Music

Music

Favorites

Artists

Albums

To Acquire

By Year

2025 AOTY

2024 AOTY

2024 Unreleased, Unlistened

2024 Others

2023 AOTY

2023 Others

2023 Unreleased or Unlistened

2022 AOTY

2022 Others

2022 Unreleased / Unlistened

2021 AOTY

2021 Others

2020 AOTY

2020 Others

2020 Unlistened

2019 AOTY

2019 Others

2019 Unlistened

Look at these:

2018 AOTY

2018 Others

2017 AOTY

2016 AOTY

2015 AOTY

1992

By Genre

Jazz

New Stuff

Classic

Prog, Fusion, Free Jazz etc.

Noise

Microtonal / Xenharmonic

World / Folk / Newage

Lounge, Trip Hop, etc.

Math Rock

Bedroom Pop, Synth Pop, Experimental Pop

Classical

Composed, Notated, Orchestral

Opera

Flamenco

Guitarists

Spanish

French / Chanson

Portuguese

Turkish

Russian

African

Japanese, City Pop, etc.

Yokos

Gospel Music

Saturday night and sunday morning (radio show)

Synth

Genres

Songs

From the Radio

radiofrance

Black Flower - Artifacts

To Listen To

Misc

From the past

Tom Lehresongs

All Songs Now in Public Domain

Recs

Robbie

Sam

Carlos

David & Talia

Ben K

Kaitlin

Kyla

Sunny

Casey

Lewie

John

Quinn

Nathan

Jack

AC

Anne-Marie

Josh

Clint

IRC

/mu

YT

Magnatune

Misc ★

Extract artist, track, and album names from spotify playlist

var links = document.querySelectorAll('a')
var artists = [];
var albums = [];
var tracks = [];
links.forEach(link => {
   if (/\/artist\//.test(link.href)) {
       // console.log(link.innerText);
       artists.push(link.innerText);
   }
   if (/\/track\//.test(link.href)) {
       // console.log(link.innerText);
       tracks.push(link.innerText);
   }
   if (/\/album\//.test(link.href)) {
       // console.log(link.innerText);
       albums.push(link.innerText);
   }
});
console.log(artists);
console.log(tracks);
console.log(albums);

or better:

var rows = document.querySelectorAll('[role="row"]');
var songs = [];
rows.forEach(row => {
   if (row.childElementCount == 1) {
       songs.push({
           "name": row.childNodes[0].childNodes[1].childNodes[1].childNodes[0].childNodes[0].innerText,
           "artist": row.childNodes[0].childNodes[1].childNodes[1].childNodes[1].childNodes[0].innerText,
           "album": row.childNodes[0].childNodes[2].childNodes[0].childNodes[0].innerText
       });
   }
});

// console.log(songs);
console.log(JSON.stringify(songs));

copy pasta and convert to csv:

vim evening_wind.json
# as CSV:
jq -r '.[] | [.name, .artist, .album] | @csv' evening_wind.json
jq '.[] | [.name, .artist, .album] | @csv' evening_wind.json > evening_wind.csv
# or as TSV:
jq -r '.[] | [.name, .artist, .album] | @tsv' evening_wind.json
jq '.[] | [.name, .artist, .album] | @tsv' evening_wind.json > evening_wind.tsv