Package: amusing-app
🎧 Amusing 🎸A CLI to help download music independently or from your exported apple music library.Why should you useAmusing?To download your entire Apple Music Library and store it locally in one goTo search and download individual songs from YouTubeTo keep track of your ever growing music collection🛠️ Install it!$pipinstallamusing-app✨ Getting set upThere are three things to know before moving on to the next section:The CLI takes in aappconfig.yamlfile similar to what's indicated inappconfig.example.yaml. You can simply rename it.
The file looks like this:root_download_path:"..."db_name:"..."A dedicated sqlite database calleddb_namewill be created inroot_download_path/db_name.dbto store two tablesSongandAlbumas defined inamusing/db/models.py. All songs downloaded locally will be getting a row in theSongtable and a row for their corresponding album in theAlbumtable.The songs are downloaded inroot_download_path/songsdirectory.That's it. You're done. Let's look at the commands available next.💬 Available commandsThere are currently 6 commands available, excluding theamusing --version.The first time you run a command (eg. --help), anAmusingdirectory will be created in yourpathlib.Path.home()/Downloadsfolder. For eg., on MacOS, it's in/Users/Username/Downloads.$amusing--helpCreated a new config file: /Users/username/Downloads/Amusing/appconfig.yamlUsage: amusing [OPTIONS] COMMAND [ARGS]...Amusing CLI to help download music independently or from your exported apple music library.╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ --version  -v                                                                                                                                  ││ --help               Show this message and exit.                                                                                               │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ download           Parse the entire AM library and download songs and make/update the db as needed.                                            ││ showsimilar        Look up the db and show if similar/exact song(s) are found.                                                                 ││ showsimilaralbum   Look up the db and show albums similar to the album searched.                                                               ││ showsimilarartist  Look up the db and show songs for similar/exact artist searched.                                                            ││ song               Search and download the song and add it to the db. Use --force to overwrite the existing song in the db. Creates a new      ││                    album if not already present.                                                                                               │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯To parse an exportedLibrary.xmlfile from your Apple Music account, use:$amusingdownload--helpUsage: amusing download [OPTIONS] [PATH]Parse the entire AM library and download songs and make/update the db as needed.╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│   path      [PATH]  The path to the Library.xml exported from Apple Music. [default: ./Library.xml]                                            │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ --help          Show this message and exit.                                                                                                    │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯#Example$amusingdownload"your/path/to/Library.xml"To download a song individually, use:$amusingsong--helpUsage: amusing song [OPTIONS] NAME ARTIST ALBUMSearch and download the song and add it to the db. Use --force to overwrite the existing song in the db. Creates a new album if not alreadypresent.╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ *    name        TEXT  Name of the song. [default: None] [required]                                                                            ││ *    artist      TEXT  Aritst of the song. [default: None] [required]                                                                          ││ *    album       TEXT  Album the song belongs to. [default: None] [required]                                                                   │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ --force    --no-force      Overwrite the song if present. [default: no-force]                                                                  ││ --help                     Show this message and exit.                                                                                         │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯#Example,thesearchkeywordsneednotbeexactofcourse:$amusingsong"Run""One Republic""Human"Search for a similar song, album or artist in your db/downloads:$amusingshowsimilar"Someday"Song to look up:  someday┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ Song                 ┃ Artist        ┃ Album                                ┃┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩│ Someday              │ OneRepublic   │ Human (Deluxe)                       ││ Someday At Christmas │ Justin Bieber │ Under the Mistletoe (Deluxe Edition) │└──────────────────────┴───────────────┴──────────────────────────────────────┘$amusingshowsimilarartist"OneRepublic"Artist to look up:  OneRepublic┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ Song            ┃ Artist      ┃ Album                                             ┃┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩│ Run             │ OneRepublic │ Human (Deluxe)                                    ││ Someday         │ OneRepublic │ Human (Deluxe)                                    ││ No Vacancy      │ OneRepublic │ No Vacancy - Single                               ││ RUNAWAY         │ OneRepublic │ RUNAWAY - Single                                  ││ Sunshine        │ OneRepublic │ Sunshine - Single                                 ││ I Ain't Worried │ OneRepublic │ Top Gun: Maverick (Music from the Motion Picture) ││ West Coast      │ OneRepublic │ West Coast - Single                               │└─────────────────┴─────────────┴───────────────────────────────────────────────────┘$amusingshowsimilaralbum"Human"Album to look up:  Human┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓┃ Album          ┃ Number of songs ┃┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩│ Human (Deluxe) │ 2               │└────────────────┴─────────────────┘TODO 📝Provide an option to choose which searched result is downloaded.Provide a command to show all songs in an album