Eliminar todas las canciones de una lista de reproducción de iTunes determinada usando Applescript

2

Estoy trabajando en un script para administrar mi lista de reproducción "en cola" en iTunes y quería una forma fácil y rápida de eliminar rápidamente todas las canciones en esa lista de reproducción.

Applescript parecía la mejor opción y creé un pequeño script ejecutable con un atajo de teclado. Sin embargo, no parece funcionar.

Esta es la parte relevante:

tell application "iTunes"
    repeat with t in tracks of playlist "queue"
        tell playlist "queue" to delete t
    end repeat
end tell

El problema es que no se eliminan todas las pistas, solo una parte de ellas. Al ejecutar el script varias veces, eventualmente, se eliminan todas las pistas de la lista de reproducción.

    
pregunta Francesco 15.07.2012 - 15:57

3 respuestas

4

He tenido exactamente el mismo problema. Hay más y más errores de AppleScript en cada versión de OS X.

Si solo quieres eliminar todas las pistas de una lista de reproducción, las expresiones simples como esta no parecen omitir ninguna pista y también son más rápidas:

tell application "iTunes"
    delete tracks of playlist "untitled playlist"
end tell

Si solo necesitas eliminar algunas pistas, algo como esto podría funcionar:

tell application "iTunes"
    repeat
        set tr to tracks of playlist "untitled playlist"
        if tr is {} then exit repeat
        repeat with t in tr
            delete t
        end repeat
    end repeat
end tell
    
respondido por el user495470 15.07.2012 - 16:18
0
  

El problema es que no se eliminan todas las pistas, solo una parte de ellas.

Dado que está eliminando las pistas a medida que las recorre, es posible que se confunda. Termina con aproximadamente la mitad del número de pistas, por lo que parece que está eliminando todas las demás.

  

tell playlist "queue" to delete t

Para el registro, el tell playlist "queue" to se está ignorando, por lo que es equivalente a decir delete t .

La respuesta de

@ user495470 es buena, pero esto también funciona para mí:

tell application "iTunes"
    delete of (every track of playlist "tmpList")
end tell
    
respondido por el Gray 13.01.2016 - 00:42
0

Tenga en cuenta que estos ejemplos solo eliminan la canción de la lista de reproducción y no del disco.

Esto me ha funcionado para hacer ambas cosas:

tell application "iTunes"
  set tr to tracks of playlist "a"
  repeat with t in tr
    set a to location of t
    set f to POSIX path of a
    delete t
    do shell script "rm " & quoted form of f
  end repeat
end tell
    
respondido por el ser 19.07.2017 - 17:49

Lea otras preguntas en las etiquetas