MacOS Photos – How to See Which Albums a Photo Is In

iosmacosphotos.app

Photos.app — I can't find a way to see in which albums a photo is in, neither on iOS or macOS.

This seems such a basic thing that should be there but I can't find how to do it.
When a photo is selected, I would expect an indication on whichever albums in the sidebar the photo is in.
At least show it on the info box on mac or info pane on iOS.

But right now I can't figure out if it should be there and I'm seeing a bug, the functionality isn't there, or if I'm too stupid to figure it out.

Best Answer

You can't, at least not out of the box. But there is an AppleScript described in https://robservatory.com/show-albums-a-given-photos-photo-has-been-added-to/ (or actually in https://discussions.apple.com/docs/DOC-9261) which solves the problem, kind of.

To use the script, paste it all into AppleScript Editor and save it as an application (or you can just run it in AppleScript Editor). In Photos, create a top-level album (I named mine Find Albums Photo Is In), and place the photo you want to know about into that album. Leave it selected, then run the AppleScript. You’ll see one dialog stating what photo is being used, then after a bit, you should see a results dialog

-- from https://robservatory.com/show-albums-a-given-photos-photo-has-been-added-to/
tell application "Photos"
    activate
    -- Add the photo you want to search for to a top level album as the first item in the album

    set resultcaption to "Searching for: "
    try

        set sel to selection
        if sel is {} then error "The selection  is empty" -- no selection

    on error errTexttwo number errNumtwo
        display dialog "No photos selected " & errNumtwo & return & errTexttwo
        return
    end try

    set imagename to "unknown filename"
    try
        set target to item 1 of sel -- the image to seach for
        tell target
            set imagename to the filename of target
        end tell
    on error errTexttwo number errNumtwo
        display dialog "Cannot get the filename of the first image: " & errNumtwo & return & errTexttwo
    end try
    set resultcaption to (resultcaption & imagename)
end tell

try
    display alert resultcaption buttons {"Cancel", "OK"} as informational giving up after 2
on error errText number errNum
    if (errNum is equal to -128) then
        -- User cancelled.
        return
    end if
end try
-- From Jacques Rioux's script:
tell application "Photos"
    -- set sel to selection
    if sel is {} then return -- no selection
    try
        set thisId to id of item 1 of sel
    on error errText number errNum
        display dialog "Error: cannot get the image ID" & errNum & return & errText & "Trying again"

        try
            delay 2
            set thisId to id of item 1 of sel
        on error errTexttwo number errNumtwo
            display dialog "Skipping image due to repeated error: " & errNumtwo & return & errTexttwo
            error "giving up"
            return
        end try --second attempt
    end try

    set theseNames to {}
    try
        set theseNames to name of (albums whose id of media items contains thisId)
    on error errText number errNum
        display dialog "Error: cannot get the albums" & errNum & return & errText & "Trying again"
        try
            delay 2
            set theseNames to name of (albums whose id of media items contains thisId)
        on error errTexttwo number errNumtwo
            display dialog "Skipping image due to repeated error: " & errNumtwo & return & errTexttwo
            error "giving up"
            return
        end try
    end try
end tell

if theseNames is not {} then
    set {oTid, text item delimiters} to {text item delimiters, return}
    set {t, text item delimiters} to {theseNames as string, oTid}
    -- return oTid
else
    set t to "No album"
end if
activate


set resultcaption to resultcaption & ", found it in these albums:
" & t as string
set the clipboard to resultcaption
display dialog resultcaption buttons {"OK"} default button "OK" -- you can press the Enter key or the return Key to close the dialog
return resultcaption -- léonie