• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Musik aus intelligenten Wiedergabelisten in normale Playlisten kopieren

goeste

Jonagold
Registriert
04.04.07
Beiträge
23
Hallöchen, ich bins wiedermal ;)

Ich wollte wissen, ob es ein skript gibt, welches nach dem anschliessen eines iPods (wird mit Automator realisiert siehe unten), Titel einer intelligenten Wiedergabeliste in eine gleichnamige normal Playliste kopiert und diese vorher löscht oder leert.

Hintergrund ist folgender:
Die int. WL holt sich die Lieder aus 3 anderen int. WL. da ich für int. WL eine Source (meine Bibliothek) brauche, und die wesentlich größer ist als mein iPod (Nano 8GB), holt sich die zu kopierende int. WL (begrenzt auf 7GB) eine Auswahl aus den zuvor erwähnten 3 int. WL.

Hier nocheinmal schematisch veranschaulicht:
* Bibliothek -> int.WL1 (alle Titel eines bestimmten Genres)

* int.WL1 -> int.WL2 (alle Titel nicht gespielt innerhalb der letzten 2 Monate aus int.WL1)

* int.WL1 -> int.WL3 (alle Titel mit Wertung zwischen 3 und 5 Sternen aus int.WL1)

* int.WL1 -> int.WL4 (alle Titel die weniger als 2x gespielt wurden aus int.WL1)

* int.WL2 + int.WL3 + int.WL4 -> int.WL5 (begrenzt auf 7 GB, Auswahl aus int.WL2, int.WL3 und int.WL4)
Realisieren würde ich das ganze mit Automator und der 'Check for Disk-Aktion', dass das Skript nur dann ausgeführt wird, wenn der iPod an den rechner angeschlossen ist. Der iPod aktualisiert sich deswegen NICHT automatisch und nur bestimmte Wiedergabelisten.

Ich würde mich über jeden hilfreichen Hinweis sehr freuen. Danke auch schonmal im voraus ;)
 
Zuletzt bearbeitet:

goeste

Jonagold
Registriert
04.04.07
Beiträge
23
Hat keiner mehr eine Idee?
Ich habe ja schon etwas ähliches gefunden:Aber nun möchte ich gerne, dass das Skript eine int.WL aus dem Automator übernimmt und die neu erstellte WL eben NICHT direkt auf den iPod schriebt, sondern in die iTunes Bibliothek. Desweiteren soll evt. überprüft werden, ob die zu erstellende WL schon existiert und wenn ja, dann soll die gelöscht oder geleert werden.


UPDATE:

Hier sind Screenshots wie ich mit den Ablauf im Automator vorstelle:
http://img185.imageshack.us/img185/6542/bild1bj6.png
http://img185.imageshack.us/img185/9338/bild2xi5.png

Nochmal ein bischen, ich hoffe, genauer erklärt:
Das skript soll Folgendes machen können:

Prüfe ob Wiedergabeliste mit Namen von Quell-int.Wiedergabeliste existiert
_____Wenn ja,
__________dann leere Wiedergabeliste oder lösche Wiedergabeliste und erstelle Wiedergabeliste mit Namen von Quell-int.Wiedergabeliste
__________sonst Wiedergabeliste mit Namen von Quell-int.Wiedergabeliste erstellen
_____ende wenn.
Befüllen der soeben erstellten Wiedergabeliste mit den Titeln der Quell-int.Wiedergabeliste

Wenn möglch soll das Skript dies für alle int.Wiedergabeliste wiederholen, die mit 'Station - ' beginnen.

UPDATE ENDE


Ich wäre wirklich sehr dankbar für jeden kleinen Denkanstoß, da ich nicht wirklich fit bin in AS...

Danke an alle die mir weiterhelfen ;)

goeste
 
Zuletzt bearbeitet:

goeste

Jonagold
Registriert
04.04.07
Beiträge
23
UPDATE

Mit Hilfe des oben genannten Scripts kann ich nun schon manuell (d.h. mit manueller Auswahl der int.WL) eine WL mit dem Inhalt einer ausgewählten int.WL erstellen.

Soweit so gut. Nun fehlt mir nur noch 2 Kleinigkeiten ;)

  1. die Abfrage, ob bereits eine WL mit dem Namen der ausgewählten int.Wl existiert, und diese gegebenenfalls leert bzw löscht.
  2. eine Routine, die die manuelle Auswahl überflüssig macht, in dem das Skript nur int.WL kopiert, die mit 'Station - ' beginnt.


Anbei der Code für meine bisherige Lösung, bei der jedoch noch die manuelle Auswahl der zu kopierenden int.WL und keine Abfrage drin ist.


Code:
updated...see below
 
Zuletzt bearbeitet:

goeste

Jonagold
Registriert
04.04.07
Beiträge
23
Fast geschafft....
Code:
tell application "iTunes"
    -- playlist auswählen die kopiert werden soll
    set copy_smartlist to name of every user playlist whose smart is true and name contains "Station - " -- nur bestimmte playlisten
    set name_of_smartlist to (choose from list copy_smartlist with prompt "Wähle eine Wiedergabeliste..." without multiple selections allowed) as string
    if name_of_smartlist is "false" then error number -128
    set source_smartlist to some user playlist whose smart is true and name is name_of_smartlist
    
    
    -- abfrage ob playlist schon existiert, dann erstellen bzw. leeren
    if (exists (some user playlist whose name is name_of_smartlist and smart is false)) then
        set new_playlist to (some user playlist whose name is name_of_smartlist and smart is false)
        delete new_playlist
    end if
    
    
    -- kopiere tracks von smartlist zu normaler playlist
    set new_playlist to (make new playlist at library with properties {name:name_of_smartlist})
    set source_tracks to (get a reference to file tracks of source_smartlist)
    repeat with i from 1 to count file tracks of source_smartlist
        try
            duplicate file track i of source_smartlist to new_playlist
        end try
    end repeat
end tell

Dank diesen Skriptes http://dougscripts.com/itunes/scripts/ss.php?sp=copysmarttoipod und einigen kleinen Modifikationen an meine Anforderungen kann ich nun int.WL automatisch in normale WL kopieren. Jedoch muss immernoch die Quell-int.WL manuell ausgewählt werden. aber da komme ich noch hinter, dass das auf von selber geht...

Wenn jemand eine Möglichkeit kennt/weiss damit das Skript in einer Schleife alle int.WL kopiert, die einen bestimment String im Namen haben, kann sich gerne bei mir melden.

LG
goeste