onthespot icon indicating copy to clipboard operation
onthespot copied to clipboard

feat: add cli utility

Open saikhurana98 opened this issue 2 years ago • 11 comments

Hey, First of all, thank you so much for creating this application. It's amazing what you've done here. It's by far the most advanced Spotify downloader I've seen. I know you're looking to refactor the code and make a newer ui but i would love a cli interface. I want to automate downloads therefore it would be awesome if there was a simple cli interface. just a basic one that takes in the "track id "and spilts out the mp3 file is perfect.

saikhurana98 avatar Oct 22 '22 23:10 saikhurana98

I would also like this feature. Configs could potentially be done in a config file or through arguments entered with command which would allow for full automation. Being able to have this run on a set schedule would help the hands-off functionality of my media server. An example could be onthespot.py -nogui -config.txt -link=spotifylink and in the config.txt would be lines like:

[email protected]
password1=123456
max_download_workers=1
parsing_account_sn=1
etc
etc

which would use the provided commands to download that Spotify link. If you don't want to use the config file, you could just run the command like: onethespot.py -nogui [email protected] -etc -etc

You could add addition accounts with account#, password# or something of the likes. They could potentially also be hashed in some way so they aren't stored in plain text.

One thing I would like to see is a setting to remove songs that aren't in your playlist. Can just be a simple toggle that checks the songs downloaded from the songs in the playlist, compares them with the songs that are currently stored on disk and removes the ones that do not belong. This could have issues if the songs are downloaded like author/album/song.mp3 but I'm sure there is an effective way to figure this out.

PassiveLemon avatar Oct 24 '22 21:10 PassiveLemon

I plan on doing this but it may take some time for refactoring and new code for cli support. Since the threads for downloading and all other depend on QThread an elegant cli can be difficult. CLI with same featureset of GUI can get some limitation like cli instance downloaing 'now playing' from desktop session and another instance downloading a playlist will almost fail.

I have some alternate plans to achieve automation and scripting with onthespot, maybe we can discuss how it should go on discord ?

casualsnek avatar Oct 25 '22 10:10 casualsnek

Discord link is currently invalid

PassiveLemon avatar Oct 25 '22 18:10 PassiveLemon

Discord link is currently invalid

I have updated it in readme ! Can you try now ?

casualsnek avatar Oct 26 '22 13:10 casualsnek

Yup, it works now.

PassiveLemon avatar Oct 26 '22 19:10 PassiveLemon

Hey,

I'd love to have a simple CLI functionality aswell. I want to run this on my server so that my PC doesn't need to be turned on while downloading.

Any chance i can get the testcode aswell? :-D

RandomLegend avatar Jun 12 '23 11:06 RandomLegend

Hey,

I'd love to have a simple CLI functionality aswell. I want to run this on my server so that my PC doesn't need to be turned on while downloading.

Any chance i can get the testcode aswell? :-D

A better rewrite of this project is planned and will probably add support for multiple user interface types. It will take a few weeks for me to start the rewrite as i'm currently busy due to academic works !

Sorry, i didn't get what you mean by testcode tho !

casualsnek avatar Jun 12 '23 17:06 casualsnek

Alright, are you planning on doing something docker-wise? Maybe even give it a quick and dirty webUI?

That would be astronomical!

RandomLegend avatar Jun 12 '23 17:06 RandomLegend

Alright, are you planning on doing something docker-wise? Maybe even give it a quick and dirty webUI?

That would be astronomical!

I have plans for a qt, commandline interface as well as http API too !

casualsnek avatar Jun 12 '23 17:06 casualsnek

Fantastic, thank you! :-)

RandomLegend avatar Jun 12 '23 17:06 RandomLegend

@casualsnek - Hey mate! Just wanted to stop by and ask if you have a eta for the rework? Or "atleast" for the CLI mode?

RandomLegend avatar Feb 25 '24 10:02 RandomLegend