AppleScript para encontrar archivos por coincidencia exacta de nombre de una variable de Automator

Tengo un flujo de trabajo que obtiene el nombre de la pista de una sola pista en mi reproductor de mp3 y lo almacena en una variable. Luego uso esto en la acción Spotlight para encontrar esa pista en mi biblioteca de iTunes, pero la acción Spotlight da múltiples resultados cuando solo quiero la pista exacta, no todas las pistas que contienen el nombre.

Necesito alguna forma o un script para reemplazar esta acción. Todas las búsquedas dan comandos de Terminal que no entiendo o cómo usar con Automator.

ingrese la descripción de la imagen aquí

Aquí hay un applescript que encontré que funciona pero es realmente muy lento, golpea el Finder en cada ciclo. ¿Hay alguna manera de acelerar esto, mi biblioteca tiene más de 10,000 pistas? gracias _

Cargue su flujo de trabajo de Automator o publique enlaces a capturas de pantalla del mismo. Tenemos que ver lo que estás haciendo.
Parece que estás ejecutando un sistema Mac antiguo. ¿Tu versión de Automator tiene acciones de iTunes , específicamente una llamada Buscar pistas de iTunes ?
Hola, perdón por la respuesta tardía, sí, estoy usando Snow Leopard pero también tengo El Capitan, esa acción de iTunes tampoco usa variables. El ejemplo dado no es el peor, a veces para una pista dada obtengo de 6 a 10 resultados cuando el nombre exacto de la pista debería dar solo 1 resultado. Simplemente estoy tratando de crear una lista de reproducción de todas las pistas en mi mp3 player, que en este momento es 218 y todas esas pistas están en mi biblioteca. Necesito encontrar solo la pista que estoy buscando.

Respuestas (1)

No tengo Snow Leopard , por lo que estoy limitado en lo que puedo probar como viable para su sistema. Por lo tanto, tenga en cuenta que la siguiente solución se ideó y probó utilizando lo siguiente:

Información del sistema: versión de AppleScript : "2.7", versión del sistema : "10.13.5"

Dicho esto, ahora veo la razón por la que esto no debería funcionar en El Capitán . Podría funcionar en Snow Leopard , pero estoy menos seguro.

Mi solución propuesta es reemplazar su acción Automator con una acción:Spotlight Run AppleScript

Flujo de trabajo del automatizador

El código contenido en el Run AppleScriptes el siguiente:

    use framework "Foundation"
    
    property ca : a reference to current application
    
    
    on run {input, parameters}
        set MusicFolder to "/Volumes/Media/Music/iTunes/iTunes Music/Music/"
        
        set FileManager to ca's NSFileManager's defaultManager()
        set MusicFiles to (FileManager's subpathsAtPath:MusicFolder)'s ¬
            pathsMatchingExtensions:{"mp3", "m4a"}
        set [filename] to input
        set format to "SELF endswith " & ("/" & filename & ".mp3")'s quoted form & ¬
            " OR SELF endswith " & ("/" & filename & ".m4a")'s quoted form
        set filter to ca's NSPredicate's predicateWithFormat:format
        
        set matches to {}
        
        repeat with match in (MusicFiles's filteredArrayUsingPredicate:filter) #'
            set end of matches to POSIX file (MusicFolder & match as text) as alias
        end repeat
        
        return matches
    end run

Esto devolverá pistas con el nombre de archivo exacto proporcionado por la trackNamevariable en el flujo de trabajo. Por lo tanto, si hubiera configurado trackNamemi ejecución de prueba para "Everywhere I Go"(es decir, sin el anterior "04"), la búsqueda habría arrojado un resultado vacío.

Además, tenga en cuenta que es posible que tenga algunas pistas con nombres de archivo idénticos de diferentes carpetas/álbumes. Si hay dos archivos en carpetas diferentes, ambos llamados "01 Song.mp3", ambos archivos se devolverán en la búsqueda.