kartik-venugopal / aural-player

An audio player for macOS, inspired by Winamp.
MIT License
732 stars 43 forks source link

Request: Drag&Drop enhancements | command line option #50

Closed zpete closed 9 months ago

zpete commented 1 year ago

First of all: great player - almost exactly what I was looking for.

Some things I suggest for making it even better:

  1. would be nice to provide a certain area within the main window where you can drag&drop a folder and/or file(s) onto to replace the current playlist with. Sometimes I just want to listen to files from a folder, so I would like to drop that folder onto Aural and have that folder (and only that folder) played back instantly. Another workflow could be holding down the option key while dropping the folder or file.
  2. integrate into Finder's "Open With" context menu for folders. So in Finder, right-clicking on a folder, then select "Open With" should provide Aural as an option. Action within Aural should also be replacing the current playlist with the files from the folder as well instead of appending it.
  3. same stuff, but via command line: provide the option to hand a folder/file(s) to play in Aural via the command line. Something like /Applications/Aural.app/Contents/MacOS/Aural <path/to/folder>. This should include a check if Aural is already running (so don't open another Aural instance) and replace the current playlist with. With the command line option it would also be possible to create custom actions via Automator/Shortcuts ...

Thanks again for that great player!

kartik-venugopal commented 1 year ago

Hi @zpete , thank you so much for the great feedback !

This is all really useful, I think. About your point number 2, I tried researching a way to implement it but was not able to find a way ... I already thought about it.

The command-line option is also something I thought of but didn't want to invest the effort as I was not sure if someone would find it useful ... but now you have mentioned that it would be useful, so I will look into implementing it.

BTW, please note that I am spending limited time on this project at the moment due to some personal stuff but I will try to grant your wishes when I get back to it !

Cheers ! Kartik

zpete commented 1 year ago

Thanks @kartik-venugopal for your kind reply.

I was able to get point number 2 kind of working myself. What I did was editing Aurals' info.plist and add this snippet to the CFBundleDocumentTypes array:

                <dict>
            <key>CFBundleTypeName</key>
            <string>folder</string>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.folder</string>
            </array>
        </dict>

After restarting lsregister and Finder via /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain user -domain local -domain system && killall Finder Aural is now included within "Open With" when I right-click a folder. The files from that folder are added to the current playlist and playback is started.

Thanks! pete

kartik-venugopal commented 1 year ago

That's good to know ! I added that XML snippet just like you did but did not restart lsregister or Finder ... will try that out !

kartik-venugopal commented 1 year ago

Hi @zpete ,

I have pretty much finished working on your suggested points 1 and 2. Watch out for the upcoming release v3.13.0.


Number 1 works as you intended (you can drag/drop onto most of the player window's area), and in addition, I have added a preference (that can be adjusted under Aural > Preferences > Playlist) that affects the behavior when dragging / dropping files or folders from Finder into Aural - both the main window and the playlist window. This way, users can decide the behavior they want instead of being stuck with one.

The above mentioned setting offers 3 modes:


I also tried to implement your point 2 with the XML snippet and your terminal command ... unfortunately, it didn't work. Furthermore, some of my apps stopped working, which required a system restart (Big Sur). Even if it did work, since it involves a manual user action to activate it, it would not be a feasible solution. So, it will require more research. If you figure out a way to make it work without any user actions (programmatic actions are okay) and without any potential problems, let me know !

I also added a preference similar to the one for drag/drop. This one is for the "Open With" from Finder. Again, you can decide the behavior, the only difference being that hybrid mode is not available (the option key cannot be pressed when you do Open With).


Finally, regarding point 3, I tried to open Aural.app as it is, passing in a folder URL. It worked. The only thing is - currently, you cannot dynamically set the playlist behavior (append or replace) at open time via the CLI. It would rely on the preference setting mentioned above.

./Aural.app/Contents/MacOS/Aural /Users/kven/Music/Dld

Of course, it keeps the Terminal prompt waiting while Aural is running, so it is not very smart. If you run it with &, then you may end up with multiple instances of the process. This could be improved in a future version. I will look into it and see the best way to do this.


For the new preference setting, see the below image:

Screenshot 2023-01-23 at 10 38 40 PM
kartik-venugopal commented 1 year ago

Released in v3.13.0.

Feel free to try it out and close the issue if you are satisfied. Let me know if you run into issues.

Cheers !

zpete commented 1 year ago

Thank you sooo much @kartik-venugopal . Really appreciate your work! The Drag&Drop-Implementation is immensely useful! I'll try to find out more about point 2 ...

kartik-venugopal commented 1 year ago

Thanks for letting me know, Pete !

BTW, I wanted to let you know that I've been working hard on getting a command line interface developed for Aural. I had to research ways to perform inter-process communication so that my CLI app can talk to the main Aural app. I found a pretty simple way to do it (CFMessagePort, if you're wondering).

So now, it will be able to do a LOT more than you requested:

Coming soon, hopefully !

kartik-venugopal commented 9 months ago

Hi, I am shelving the command line features for now. Closing this issue since the main requested feature has been released.