bambanah / deemix

GNU General Public License v3.0
97 stars 7 forks source link

Run as CLI tool #109

Closed FluffySpike8 closed 1 month ago

FluffySpike8 commented 2 months ago

Is it possible to run this as a CLI tool like the original deemix? This way it would be easier to use in scripts.

Thanks in advance 😄

bambanah commented 2 months ago

I've not personally run deemix as a CLI tool, how did you install it previously? Does this look like it? https://gitlab.com/RemixDev/deemix-py

This repo only contains the parts required for the web ui, and I don't believe there's a way to run it in a terminal. I'm happy to consider porting the python version to this repo, or see about making the existing code work in the command line.

FluffySpike8 commented 2 months ago

Yes, I did indeed use pip to install the "official" deemix CLI tool. This always used to work, but recently (mid august 2024 I think), it stopped working with spotify playlists. The conversion alwasy fails with: track_token_expire. I know that the official version is not maintained anymore, but the conversion does work in your GUI version.

If it is to much work to port it or not something you would use, then I will just start using the GUI version. For which I am gratefull that this works (Thank you). And maybe in the future when I have the knowledge I will make a pull request to add CLI.

bambanah commented 2 months ago

No worries at all! Spotify playlists are actually what prompted me to refactor the GUI, so I'll see what I can do for the python version. I probably won't be able to for a couple of weeks at least sorry, so if you need it in the meantime you might have to use the GUI version.

I'm not sure if it's the same bug in the pip version or how you would go about doing this, but I was able to work around the spotify bug in the gui by individually selecting the songs to download within the playlist. Might be worth a shot for now?

FluffySpike8 commented 2 months ago

Thanks, for the suggestion. I will probably use the GUI for now. Thanks for your time and work on this project.

bambanah commented 1 month ago

@FluffySpike8 What OS would you be using the CLI from (e.g. windows, linux, apple silicon etc.)? I've quickly spun up a CLI here which should hopefully work for your needs (very basic usage guide here). Let me know if you encounter any bugs with it while I work on polishing it a bit more, just wanted to get it in your hands early so you get to use it!

Once I've got it to a state I'm happy with, I'll look into publishing it to a package manager like winget, homebrew, AUR etc. which is partly why I'd like to know where you'd be using it.

FluffySpike8 commented 1 month ago

Thank you. I use both Windows and Linux, but I will probably mostly use it on Windows for now, since I use a special Linux distro. The Windows version works, so thanks again. When the downloading is done, it does take a while to completely finish (not sure what it is still doing, not so big of a deal).

The documentation is a bit wrong, the option -p is not the path to the config but the download path. For the config path the option --portable should be used. This creates the required configs if they do not exist yet.

The config file for deemix itself is called configconfig.json, is this intentional or should it be config.json. The folder structure is also a bit weird for the configs.

Thanks again, these are just some small things I noticed, if I would have the knowledge to fix this, then I definitely would.

I also did not expect a CLI so soon, really appreciate the work.

bambanah commented 1 month ago

Sorry for the delay! I've just published a new CLI version that should fix the issues you described. Mainly:

I've also updated the readme to match the command's --help output.

I'm going to close this issue now, but please open a new issue if you find any other bugs or have ideas for new features!