{"id":24589382,"url":"https://github.com/baronsmv/musiclists","last_synced_at":"2026-02-24T10:04:46.592Z","repository":{"id":263203952,"uuid":"886851184","full_name":"baronsmv/musiclists","owner":"baronsmv","description":"Download, filter and transform data from music review aggregator websites.","archived":false,"fork":false,"pushed_at":"2024-12-19T02:47:00.000Z","size":2334,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T08:53:18.474Z","etag":null,"topics":["aggregator","analysis","aoty","bs4","download","list","music","mutagen","polars","polars-dataframe","prog-rock","progarchives","review","web-scraping","website"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/musiclists/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baronsmv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-11T18:07:58.000Z","updated_at":"2024-12-19T02:47:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"464ba5af-5e0b-4381-9607-6f0db43a6b16","html_url":"https://github.com/baronsmv/musiclists","commit_stats":null,"previous_names":["baronsmv/musiclists"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/baronsmv/musiclists","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baronsmv%2Fmusiclists","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baronsmv%2Fmusiclists/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baronsmv%2Fmusiclists/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baronsmv%2Fmusiclists/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baronsmv","download_url":"https://codeload.github.com/baronsmv/musiclists/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baronsmv%2Fmusiclists/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29779262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregator","analysis","aoty","bs4","download","list","music","mutagen","polars","polars-dataframe","prog-rock","progarchives","review","web-scraping","website"],"created_at":"2025-01-24T08:15:30.399Z","updated_at":"2026-02-24T10:04:46.570Z","avatar_url":"https://github.com/baronsmv.png","language":"Python","funding_links":["https://www.paypal.com/donate/?hosted_button_id=DRNRB8RG8NUN2"],"categories":[],"sub_categories":[],"readme":"# MusicLists\n\n## Description\n\nA command-line tool for downloading, filtering, and transforming top album and\ntrack lists from music review websites.\n\nThe tool helps you easily aggregate and explore curated album rankings across\ndifferent platforms, making it ideal for music enthusiasts and data-driven\nlisteners.\n\n### Features\n\n- Download lists of the top albums and tracks from multiple platforms such as\n  [AlbumOfTheYear.org](https://www.albumoftheyear.org/) and\n  [ProgArchives.com](https://www.progarchives.com/).\n- Find local albums and tracks in directories and add them to a list.\n- Manipulate individually the lists via filtering, sorting, and limiting of\n  entries.\n- Operate between lists as sets (union, intersection, difference).\n- Export to a text file.\n- Convert local albums lists (including transformed ones) to playlists.\n\n### Dependencies\n\n- `bs4`, to navigate and parse HTML tags and values.\n- `click` and `click_help_colors`, to implement the CLI.\n- `m3u8` to write data into a playlist.\n- `mutagen`, to extract metadata from track files.\n- `polars`, to storage and manipulate data.\n\n## Commands\n\n```\nUsage: musiclists [OPTIONS] COMMAND [ARGS]...\n\nCommands:\n  download    Download lists of albums and tracks from music databases.\n  duplicates  Manage duplicated entries between lists.\n  export      Export lists to other formats.\n  files       Get and manage albums and tracks data from files.\n  transform   Transform, merge and compare lists.\n```\n\n### Subcommands of download\n\n```\nUsage: musiclists download [OPTIONS] COMMAND [ARGS]...\n\nCommands:\n  aoty  Download a list of top albums and tracks from AlbumOfTheYear.org.\n  prog  Download a list of top albums and tracks from ProgArchives.com.\n```\n\n### Subcommands of transform\n\n```\nUsage: musiclists transform [albums|tracks] [OPTIONS] COMMAND [ARGS]...\n\nCommands:\n  diff       Find the difference between lists.\n  filter     Filter a list.\n  intersect  Join lists, only returning entries that are in both lists.\n  union      Merge downloaded lists into one, returning any entry of each.\n```\n\n## Options\n\n### Downloading a list\n\n```\nUsage: musiclists download [aoty|prog] [OPTIONS]\n\nOptions:\n  -t, --types                     Types of albums to download.\n  -c, --ceil / -f, --floor        Round up (ceil) or down (floor) the score.\n  -s, --min-score INTEGER         Minimum score threshold for including\n                                  albums.\n  -S, --max-score INTEGER         Maximum score threshold for including\n                                  albums.\n```\n\n### Finding duplicated entries\n\n```\nUsage: musiclists duplicates find [OPTIONS] [SEARCH]...\n\nOptions:\n  -c, --columns                   Columns to consider for the process.\n  -d, --data-1                    Source for the data 1.\n  -D, --data-2                    Source for the data 2.\n  -H, --highest / -A, --all-matches\n                                  Returns only the highest match of each\n                                  entry, or every match.\n  -s, --min-rate FLOAT            Minimum rate of similarity for including\n                                  matches.\n  -r, --max-results INTEGER       Limit of results to return.\n```\n\n### Exporting or filtering a list\n\n```\nUsage: musiclists export [albums|tracks] [OPTIONS]\n\nOptions:\n  -m, --markdown / --no-markdown  Output as MarkDown.\n  -d, --data                      Source for the data.\n  -n, --name TEXT                 Use a personalized name instead of an auto-\n                                  generated one.\n  -s, --min-score INTEGER         Minimum score threshold for including\n                                  tracks.\n  -S, --max-score INTEGER         Maximum score threshold for including\n                                  tracks.\n  --min-album-score FLOAT         Minimum score threshold for including\n                                  albums.\n  --max-album-score FLOAT         Maximum score threshold for including\n                                  albums.\n  -r, --min-ratings INTEGER       Minimum ratings for including entries.\n  -R, --max-ratings INTEGER       Maximum ratings for including entries.\n  -c, --columns                   Columns to include.\n  -C, --sort-by                   Columns to sort by.\n  -a, --limit-album INTEGER       Limit of albums returned per album column.\n  -A, --limit-artist INTEGER      Limit of tracks returned per artist column.\n  -y, --limit-year INTEGER        Limit of tracks returned per year column.\n```\n\n### Getting a set operation result between two lists\n\n```\nUsage: musiclists transform [albums|tracks] [diff|intersect|union] [OPTIONS]\n\nOptions:\n  -d, --data-1                    Source for the data 1.\n  -D, --data-2                    Source for the data 2.\n  -n, --name TEXT                 Use a personalized name instead of an auto-\n                                  generated one.\n  -c, --columns                   Columns to consider for the process.\n  -k, --key                       Key for the process.\n  -d, --dedup / --no-dedup        Deduplicate the output based on its\n                                  deduplicates file.\n  -K, --dedup-key                 Key for the dedup process.\n```\n\n## Donating and Supporting\n\nIf you like this project or it's helpful to you in any way, consider\nsupporting and donating to the websites that made it possible, helping them\nkeep running:\n\n- [Help Support Album of the Year](https://www.albumoftheyear.org/donate/)\n- [Help Support Prog Archives](https://www.paypal.com/donate/?hosted_button_id=DRNRB8RG8NUN2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaronsmv%2Fmusiclists","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaronsmv%2Fmusiclists","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaronsmv%2Fmusiclists/lists"}