As a macOS user, I typically glue these dired things via dwim-shell-command (disclosure, I wrote that).
Not super tested, but I added dwim-shell-commands-macos-add-to-photos to dwim-shell-commands.el (the optional part of the package).
(defun dwim-shell-commands-macos-add-to-photos ()
"Add to Photos.app."
(interactive)
(dwim-shell-command-on-marked-files
"Add to Photos.app"
"osascript <>\"
end tell
EOF"
:silent-success t
:utils "osascript"
:on-completion (lambda (buffer process)
(if-let ((success (= (process-exit-status process) 0)))
(start-process "Open Photos" nil "open" "-a" "Photos")
(switch-to-buffer buffer)))))
- Select 1 or multiple photos from dired
- M-x dwim-shell-commands-macos-add-to-photos
ps. This also works on current buffer if you're viewing an image in a buffer.