mackorone / spotify-playlist-archive Goto Github PK
View Code? Open in Web Editor NEWDaily snapshots of public Spotify playlists
License: MIT License
Daily snapshots of public Spotify playlists
License: MIT License
Hey Mack! I'm toying with an idea of writing a bot that, as the title suggests, would verify new registry entries' validity (if there are any in a pull request). It would follow this algorithm for each file:
flowchart TD
A((START))
A --> B
B{File name contains query parameters?}
B -->|Yes| C
C[Let Q be the file name without the parameters]
C --> E
B ---->|No| D
D[Let Q be the original file name]
D --> E
E{Playlist with an ID equal to Q exists?}
E --> |Yes| F
F{Q equals the file name?}
F --> |Yes| Z
F --> |No| G
G[/Request file name change/]
G --> Z
E --> |No| G
Z((END))
Note: By file name with query parameters I mean a file name like 2vpAyuy9HOTPjygPl63QuH?si=3f7d3884baa44c0e
.
I guess there are some other edge cases I didn't handle in that flow chart and I can't think of any as we speak, but I believe this graph outlines a decent concept for validating all new entries. Not really sure if I'll have the bandwidth to write such bot myself, given that I've started grinding away for my finals in May next year. But once I do find some time, I'll at least try looking into appropriate resources.
What do you think of this idea? By offloading the chore of verifying and integrating new entries into the archive onto such bot, you'll certainly speed up the entire process by enabling users to react to change requests (if issued) about a minute or so after opening their PRs. Manual review would serve as a fallback mechanism if automated checks were to fail for whatever reason.
Hi there, I came across this project while searching for a song (I can't remember the title of) that was on The Other List in July 2020. I just want to say this is incredible, I personally have no idea how any of it works (new to code!) but much respect to you! Is it possible that you could add The Other List to the lineup of Spotify playlists to track its updates and history? Or, is there a way for me to look up the playlist history myself? Thanks!
Since Spotify Wrapped 2023 is out now, I thought I'd prepare a similar stats rundown for this repository.
@mackorone, thank you so much for creating this repository!
touch playlists/plain/<37i9dQZF1DWT6MhXz0jw61?si=11r4mfddTBK67WL5RNQ10Q&dl_branch=1>
I found your project today. impressive.
would it be possible to export a specific state of a playlist to json with
really important is only the uri.
the reason is if you want to create a playlist from a specific state you need the uris. nobody clicks every link and a thats to playlist.
Thanks for spotify-playlist-archive, love it.
I have a question/issue:
I know of a number of songs that were on my fav list before it got added to spotify-playlist-archive .
Is there a way to manually add songs to the cumulative list?
(Perhaps by e.g. just adding them by hand to the cumulative playlist file and submitting a PR?)
Thanks, J
I've noticed that a scraped playlist's content differs from what I see on Spotify. Could it be because it's a "made for me" playlist?
I'm talking about this one.
Love the project, super useful! Have you ever thought of publishing the cumulative playlists back to spotify?
When I click on any of the options other than "pretty", it will give me an alphabetical ordering of the songs (by song name). But if I wanted to know what the order of the playlist was in a specific week in the past, I am not able to tell. Is there an easy way to enable this?
I'm searching for the New Music Friday Switzerland Playlist Archive. Do you know how I can get it?
Requesting you add Altar to your archive. Thanks.
My God. This probably saved me an incredible amount of time and frustration. Many thanks, @mackorone!
Is there a way to copy track URLs from the cumulative lists?
Old additions don't become irrelevant as Spotify updates the playlist with new songs!
As outlined in https://github.com/mackorone/spotify-playlist-archive/blob/master/TODO.md, the codebase should be formatted using Black.
Acceptance Criteria
Hey Mack!
I've just noticed that you've started displaying the total number of playlist entries in the archive in README.md
. The aforementioned search engine relies on the ## Playlists
header to remain unchanged in order to extract the list of playlist links, to then process it to extract every playlist's name and perform a fuzzy search.
Since the README no longer contains the exact ## Playlists
string, the list can't get extracted using this approach. I've implemented a short-term fix (see my comment below), where I use RegEx instead of a hardcoded string.
But in the long term, perhaps you could generate something like a registry.json
file that would contain an array of objects with name
and id
fields of each playlist. That way, I wouldn't have to rely on any hacky solutions to generate a similar list myself, but instead just grab that file and perform the search pretty much immediately.
Oh, and sorry for not notifying you about that search engine implementation in the first place. This was literally the only way for me to obtain a list of all the available playlists, since GitHub's code search returned many false positives, because I couldn't use token characters like "
, or :
in order to look for "title": "searchQueryHere"
substring.
hey, was wondering if you could add this playlist to your registry, there were many more songs that I found enjoyable on this playlist back in 2019 and I don't remember which ones they were.
https://open.spotify.com/playlist/37i9dQZF1DZ06evO2ZCBBm?si=b152d6d2bd904413
Thanks, man.
I'm getting the following error when cloning using GitHub Desktop
Cloning into 'D:\Ciaran\Dev\spotify-playlist-archive'...
remote: Enumerating objects: 93894, done.
remote: Counting objects: 100% (11294/11294), done.
remote: Compressing objects: 100% (816/816), done.
remote: Total 93894 (delta 10529), reused 11234 (delta 10474), pack-reused 82600
Receiving objects: 100% (93894/93894), 140.86 MiB | 4.10 MiB/s, done.
Resolving deltas: 100% (88800/88800), done.
error: invalid path 'playlists/cumulative/Acoustic Hits: Oldies but Goodies.md'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.