Skip to main content

MusicLists

Description

A command-line tool for downloading, filtering, and transforming top album and track lists from music review websites.

The tool helps you easily aggregate and explore curated album rankings across different platforms, making it ideal for music enthusiasts and data-driven listeners.

Features

  • Download lists of the top albums and tracks from multiple platforms such as AlbumOfTheYear.org and ProgArchives.com.
  • Find local albums and tracks in directories and add them to a list.
  • Manipulate individually the lists via filtering, sorting, and limiting of entries.
  • Operate between lists as sets (union, intersection, difference).
  • Export to a text file.
  • Convert local albums lists (including transformed ones) to playlists.

Dependencies

  • bs4, to navigate and parse HTML tags and values.
  • click and click_help_colors, to implement the CLI.
  • m3u8 to write data into a playlist.
  • mutagen, to extract metadata from track files.
  • polars, to storage and manipulate data.

Commands

Usage: musiclists [OPTIONS] COMMAND [ARGS]...

Commands:
  download    Download lists of albums and tracks from music databases.
  duplicates  Manage duplicated entries between lists.
  export      Export lists to other formats.
  files       Get and manage albums and tracks data from files.
  transform   Transform, merge and compare lists.

Subcommands of download

Usage: musiclists download [OPTIONS] COMMAND [ARGS]...

Commands:
  aoty  Download a list of top albums and tracks from AlbumOfTheYear.org.
  prog  Download a list of top albums and tracks from ProgArchives.com.

Subcommands of transform

Usage: musiclists transform [albums|tracks] [OPTIONS] COMMAND [ARGS]...

Commands:
  diff       Find the difference between lists.
  filter     Filter a list.
  intersect  Join lists, only returning entries that are in both lists.
  union      Merge downloaded lists into one, returning any entry of each.

Options

Downloading a list

Usage: musiclists download [aoty|prog] [OPTIONS]

Options:
  -t, --types                     Types of albums to download.
  -c, --ceil / -f, --floor        Round up (ceil) or down (floor) the score.
  -s, --min-score INTEGER         Minimum score threshold for including
                                  albums.
  -S, --max-score INTEGER         Maximum score threshold for including
                                  albums.

Finding duplicated entries

Usage: musiclists duplicates find [OPTIONS] [SEARCH]...

Options:
  -c, --columns                   Columns to consider for the process.
  -d, --data-1                    Source for the data 1.
  -D, --data-2                    Source for the data 2.
  -H, --highest / -A, --all-matches
                                  Returns only the highest match of each
                                  entry, or every match.
  -s, --min-rate FLOAT            Minimum rate of similarity for including
                                  matches.
  -r, --max-results INTEGER       Limit of results to return.

Exporting or filtering a list

Usage: musiclists export [albums|tracks] [OPTIONS]

Options:
  -m, --markdown / --no-markdown  Output as MarkDown.
  -d, --data                      Source for the data.
  -n, --name TEXT                 Use a personalized name instead of an auto-
                                  generated one.
  -s, --min-score INTEGER         Minimum score threshold for including
                                  tracks.
  -S, --max-score INTEGER         Maximum score threshold for including
                                  tracks.
  --min-album-score FLOAT         Minimum score threshold for including
                                  albums.
  --max-album-score FLOAT         Maximum score threshold for including
                                  albums.
  -r, --min-ratings INTEGER       Minimum ratings for including entries.
  -R, --max-ratings INTEGER       Maximum ratings for including entries.
  -c, --columns                   Columns to include.
  -C, --sort-by                   Columns to sort by.
  -a, --limit-album INTEGER       Limit of albums returned per album column.
  -A, --limit-artist INTEGER      Limit of tracks returned per artist column.
  -y, --limit-year INTEGER        Limit of tracks returned per year column.

Getting a set operation result between two lists

Usage: musiclists transform [albums|tracks] [diff|intersect|union] [OPTIONS]

Options:
  -d, --data-1                    Source for the data 1.
  -D, --data-2                    Source for the data 2.
  -n, --name TEXT                 Use a personalized name instead of an auto-
                                  generated one.
  -c, --columns                   Columns to consider for the process.
  -k, --key                       Key for the process.
  -d, --dedup / --no-dedup        Deduplicate the output based on its
                                  deduplicates file.
  -K, --dedup-key                 Key for the dedup process.

Donating and Supporting

If you like this project or it's helpful to you in any way, consider supporting and donating to the websites that made it possible, helping them keep running:

Metadata

Release files for musiclists 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for musiclists 0.2.2
File Size Uploaded
musiclists-0.2.2.tar.gz 66.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for musiclists 0.2.2
File Interpreter ABI Platform
musiclists-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 127.1 kB

Release files / musiclists-0.2.2.tar.gz

Download URL musiclists-0.2.2.tar.gz
Size 66.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c4ce26ee1b3aec3a3c19a0e845b6160b7d5bb6e2227cd2e3d6819a9908fe50d7
BLAKE2b-256 checksum
How to use checksums
ce21b2ea863577bb3c1b0ebb8a850a03a6b2fc48a42abd45d88fe49b9c44a878
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / musiclists-0.2.2-py3-none-any.whl

Download URL musiclists-0.2.2-py3-none-any.whl
Size 60.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6cf522516bb6e922014c7e29b054accaa2d952de510391dc9647e4ec99c5cfb
BLAKE2b-256 checksum
How to use checksums
f50094b4b25f1b0da6190e97da5d53e2f439ca247c7d6b1504fe80417a5ba14f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page