Löschen aller Songs in einer bestimmten iTunes-Wiedergabeliste mit Applescript

Ich arbeite an einem Skript, um meine "Warteschlangen"-Wiedergabeliste in iTunes zu verwalten, und wollte eine einfache und schnelle Möglichkeit, alle Titel in dieser Wiedergabeliste schnell zu löschen.

Applescript schien die beste Option zu sein, und ich erstellte ein kleines Skript, das mit einer Tastenkombination ausführbar war. Allerdings scheint es nicht zu funktionieren.

Das ist der relevante Teil:

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

Das Problem ist, dass nicht alle Tracks gelöscht werden, sondern nur ein Teil davon. Wenn Sie das Skript mehrmals ausführen, werden schließlich alle Titel in der Wiedergabeliste gelöscht.

Antworten (3)

Ich hatte genau das gleiche Problem. Es gibt mehr und mehr AppleScript-Bugs in jeder Version von OS X.

Wenn Sie nur alle Tracks in einer Playlist löschen möchten, scheinen einzelne Ausdrücke wie dieser keine Tracks zu überspringen und sie sind auch schneller:

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

Wenn Sie nur einige Tracks löschen müssen, könnte so etwas funktionieren:

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
Aus irgendeinem Grund funktioniert der Ausdruck "Titel der Wiedergabeliste löschen" bei mir nicht. Der Skripteditor gibt den Fehler „Jeder Titel der Wiedergabeliste „Nicht in der Bibliothek““ zurück, der die „Löschen“-Meldung nicht versteht
FYI: das "delete tracks of playlist "..."hat bei mir funktioniert.

Das Problem ist, dass nicht alle Tracks gelöscht werden, sondern nur ein Teil davon.

Da Sie die Spuren löschen, während Sie sie durchlaufen, kann es zu Verwirrung kommen. Es endet mit ungefähr der Hälfte der Anzahl von Spuren, so dass es so aussieht, als würde es alle anderen entfernen.

tell playlist "queue" to delete t

Fürs Protokoll, das tell playlist "queue" towird ignoriert, also ist dies gleichbedeutend damit, einfach zu sagen delete t.

@ user495470 Antwort ist gut, aber das funktioniert auch für mich:

tell application "iTunes"
    delete of (every track of playlist "tmpList")
end tell

Beachten Sie, dass diese Beispiele den Song nur aus der Wiedergabeliste und nicht von der Festplatte löschen.

Dies hat für mich funktioniert, um beides zu tun:

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