1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Musik aus intelligenten Wiedergabelisten in normale Playlisten kopieren

Dieses Thema im Forum "OS X-Developer" wurde erstellt von goeste, 24.10.08.

  1. goeste

    goeste Jonagold

    Dabei seit:
    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 ;)
     
    #1 goeste, 24.10.08
    Zuletzt bearbeitet: 24.10.08
  2. goeste

    goeste Jonagold

    Dabei seit:
    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
     
    #2 goeste, 25.10.08
    Zuletzt bearbeitet: 25.10.08
  3. goeste

    goeste Jonagold

    Dabei seit:
    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
     
    #3 goeste, 25.10.08
    Zuletzt bearbeitet: 25.10.08
  4. goeste

    goeste Jonagold

    Dabei seit:
    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
     

Diese Seite empfehlen