Skip to main content

Download, filter and transform data from music review aggregator websites.

Project description

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

musiclists-0.2.2.tar.gz (66.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

musiclists-0.2.2-py3-none-any.whl (60.4 kB view details)

Uploaded Python 3

File details

Details for the file musiclists-0.2.2.tar.gz.

File metadata

  • Download URL: musiclists-0.2.2.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for musiclists-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c4ce26ee1b3aec3a3c19a0e845b6160b7d5bb6e2227cd2e3d6819a9908fe50d7
MD5 b1846c70e2ec88bef250ae4a5b0f5271
BLAKE2b-256 ce21b2ea863577bb3c1b0ebb8a850a03a6b2fc48a42abd45d88fe49b9c44a878

See more details on using hashes here.

File details

Details for the file musiclists-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: musiclists-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for musiclists-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e6cf522516bb6e922014c7e29b054accaa2d952de510391dc9647e4ec99c5cfb
MD5 78d1243802c5a0a91ab6fdfceadd1eea
BLAKE2b-256 f50094b4b25f1b0da6190e97da5d53e2f439ca247c7d6b1504fe80417a5ba14f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page