• 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

Kleine Aufgabe: Wie kriege ich den Inhalt einer Playlist auf einen Server?

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Hallo!

Ich arbeite hier grade an was und brauche mal Hilfe. Ich will einen Script mache, der alle Dateien einer Playlist in einen Ordner kopiert und diesen Ordner dann per rsync an einen Server überträgt. Wie geht das?

Gruß

Philip
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Oder jetzt wird es einfacher:
Wie kann ich eine Dateiliste von Automator an ein eingebettets Script schicken?
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Das letzte bitte vergessen...
Kennt jemand vll. ne Lösung?
 

pete

Gast
Einfach die Playlist per drag and drop auf den Server ziehen.
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Ja ne ich will das ja automatisieren, aber ich bin der Lösung schon sehr nahe, ich werde das dann hier posten
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Zu einfach ;), aber das geht auch nicht, hatte auch schon was mit Automator, aber das ist halt nicht so einfach auf jedem System einzusetzen. Hier ein Lösungsansatz:

set ort to "Macintosh HD:Users:philipbrechler:Music:einkaeufe"
set liste to 0
tell application "iTunes"
copy location of tracks of playlist "Einkäufe" to liste
end tell
tell application "Finder"
make new alias file at ort to liste
end tell
tell application "Terminal"
activate
do script "rsync -varH Music/einkaeufe/ flurserver:/mnt/sda1/public/einkaeufe"
end tell
delay 5
tell application "System Events"
tell process "Terminal"
keystroke "pass"
keystroke return
end tell
end tell

Da ist nur ein kleines Problem: rsync folgt den aliasen nicht. Das heißt ich habe immer 0KB Dateien auf dem Server. Wie kann man Aliase in symlinks umwandeln und zwar auch gleich die 500 die hier angelegt werden?
 

pete

Gast
Ich habe mir gerade Dein Script angesehen.

Mal ganz langsam, von Anfang an. Was für eine Playlist meinst Du?

Bild_124.png
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Die Einkäufe Playlist die der Shop erstellt.
Ich frage ab welche Objekte da drin sind und welchen Pfad sie haben. Dann erzeuge ich einen Alias zu jeder Datei um nicht die ganzen Dateien noch mal extra in einen Ordner kopieren muss und dann gehts los mit rsync, nur der erkennt leider die Aliase nicht. Oder gibt es da noch was "einfacheres"? Ich will nur nicht, dass die Elemente immer wieder "überkopiert" werden. Und es soll auf jedem meiner Systeme hier eingesetzt werden.
 

philo

Roter Stettiner
Registriert
13.10.04
Beiträge
973
Die Einkäufe Playlist die der Shop erstellt.
Ich frage ab welche Objekte da drin sind und welchen Pfad sie haben. Dann erzeuge ich einen Alias zu jeder Datei um nicht die ganzen Dateien noch mal extra in einen Ordner kopieren muss und dann gehts los mit rsync, nur der erkennt leider die Aliase nicht. Oder gibt es da noch was "einfacheres"? Ich will nur nicht, dass die Elemente immer wieder "überkopiert" werden. Und es soll auf jedem meiner Systeme hier eingesetzt werden.

vielleicht muss du dem rsync auruf noch ne option mitgeben, die die aliase symlinks auflöst?

-K, --keep-dirlinks treat symlinked dir on receiver as dir
-l, --links copy symlinks as symlinks
-L, --copy-links copy the referent of all symlinks
--copy-unsafe-links copy the referent of "unsafe" symlinks
--safe-links ignore "unsafe" symlinks
-H, --hard-links preserve hard links

ist aber nur ne idee!
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Geht leider alles nicht. Hab ich alle schon probiert. Also entweder ich verwandel die Aliase in Symlinks oder ich mach es doch Automator, das könnte auch klappen, nur leider kapier ich nicht ob der die Dateien immer überkopieren würde
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Also das mit Automator klappt nicht ,da er den Server wohl nicht richtig findet oder bzw. anwendet. Sitze an einer anderen Lösung...
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Naja gut also hier eine Lösung, zwar ohne iSync und eigentlich trivial, aber vll. hilfts mal jemanden:

Das sorgt dafür, dass alle Tracks auf das angegebene Volume gesynct werden:

set liste to 0
tell application "iTunes"
copy location of tracks of playlist "Einkäufe" to liste
end tell
repeat with i from 1 to number of items in liste
set this_item to item i of liste
try
tell application "Finder"
copy file this_item to folder "MUSIK:Einkäufe"
end tell
end try
end repeat

Das sorgt dafür, dass, wenn neue Lieder da sind, die Playlist aktualisiert wird, allerdings löscht er die vorher. ich stelle das mal zur diskussin ;):

set itunes to 0
set Finder to 0
tell application "iTunes"
copy number of tracks of playlist "Alle Einkäufe" to itunes
end tell
tell application "Finder"
copy number of items of folder "MUSIK:Einkäufe" to Finder
end tell
if itunes is not Finder then
tell application "iTunes"
delete playlist "Alle Einkäufe"
set thePlaylist to (make new playlist)
set name of thePlaylist to "Alle Einkäufe"
add "MUSIK:Einkäufe" to playlist "Alle Einkäufe"
end tell
else
display dialog "Nichts zu tun!" buttons {"OK"} default button 1
end if