• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Automatisierung applescript

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
Hi ich hab ne kurze Frage,

unsere Uni stellt immer Vorlesungen als Video zum Download bereit was sehr angenehm ist. Jetzt wollte ich es so machen, dass er die Video Dateien automatisch runterlädt (das geht zum Glück jetzt schon) und mir dann in ein Ipod Format konvertiert, dass ich mir dann morgens auf mein Ipod ziehe und dann schauen kann.

Weiß jemand wie ich das mit Apple Script automatisieren kann? Also sobald praktisch dateien in einem Ordner X abliegen (nach dem Download), er diese DAteien in das Konvertierungstool einlädt und konvertiert und dann nach Itunes kopiert?

geht das mit Applescript?
Weiß jemand wie?

vielen Dank & Gruß
Arti
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Das kannst du mit den „Ordneraktionen“ (im Finder > Kontextmenü > Mehr > Ordneraktionen konfigurieren) machen; damit kannst du überwachen, wann der Inhalt eines Ordners geändert wird und dann AppleScripts ausführen.

Apple liefert schon ein paar fertige Aktionen mit, an denen du dich orientieren kannst. Schau mal unter "/Library/Scripts/Folder Action Scripts".
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Wenn das Tool, welches du verwendest, scriptingfähig ist, dann kann man eine Ordner-Aktion starten. Was verwendest du denn? Ginge das nicht auch mit Quicktime (Pro)?


Edit: zu langsam.
 

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
zur Zeit benutze ich noch ffmpegx will aber umsteigen auf diesen Elgato Hardware Konvertierungs USB Stick. Soweit ich gehört habe lässt sich das Teil über Apple Script steuern:
"Turbo.264 installiert eine QuickTime™ Komponente, die beschleunigte Exporte aus anderen Applikationen ermöglicht. Darüber hinaus lässt sich Turbo.264 per AppleScript steuern." (von der Herstellerseite)

wie ich es aber genau anstelle keine Ahnung...ist das kompliziert?

vielen dank
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Wie dieses Script dann im Einzelnen aussehen muss, wird man sehen. Aber es ist schonmal gut, dass das Tool scriptbar ist.

Edit: Da ffmpegX aber CLTools verwendet, ließe sich über Ordner-Aktion ein Shell-Script starten, nehme ich mal an.

Man hängt dem Ordner ein Apple-Script an, welches ein Shell-Script startet. Dieses wiederum enthält die Kommandozeile, welche auch ffmpegX für das Kodieren verwendet - und spätestens hier wirds haarig.
 

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
hmm jetzt ist die Frage wie komplex das für mich ist, also ich bin bestimmt kein vollhorst aber ich hab damit halt noch nie was gemacht... wie fange ich damit an? Ist das komplex? Ist das aufwendig?
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Mit dem Tool, das du kaufen willst, denke ich nicht, dass das schwierig wird. Mit ffmpegX dagegen schon.
 

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
jo das tool ist schon so gut wie gekauft. Die frage ist jetzt im nächsten Schritt, wie gehts weiter? Wo kann man sich einlesen, oder viel besser so ein Tool herbekommen? Ist das komplex?

danke schonmal für die Antworten
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Hier im Hersteller-Support-Forum würde ich anfangen, dann natürlich in den Handbüchern und später über Trial&Error. Google hilft sicher auch weiter. Oder das Forum hier. ^^

Ob das komplex ist, kann dir nur jemand sagen, der das schonmal gemacht hat =)

I.d.R. sind aber scriptingfähige Programme recht dankbar.
 

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
in welchen handbüchern? von dem stick? muss man da programmieren oder geht das über klick und save? also so vba für arme?...

danke
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Schau dir mal das Programm „Script Editor.app“ an, welches bei dir auf der Platte sein müsste. Damit wird's gemacht. Handbücher vom Stick, richtig.


Edit: Hier im letzten Post des Supportforums findet man ein schönes Beispiel-Script, welches man freilich noch anpassen müsste.

Und hier hat jemand ein Script für ffmpeg veröffentlicht.

Mit anderen Worten, da findet man schon was. Leider bin ich jetzt nicht gerade ein Apple-Script-Guru, aber da lässt sich sicher was machen.
 
Zuletzt bearbeitet:

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
hmm die benutzen für die beispiele alle EyeTV. DAs will ich aber gar nicht benutzen sondern einfach nur simpel (hoffe ich)

ein ordner den ich selbst anlege und dann:

wenn in ordner ne datei liegt, dann benutze ffmpegx und konvertiere file und stecke es dann in itunes.

kann man das damit machen?

kann mir da bitte jemand weiterhelfen?

vielen dank
 
Zuletzt bearbeitet:

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
ich habe jetzt mal versucht den code auf der seite im scripteditor einzupasten und zu komplilieren:

(* AppleScript: video - Convert to H264.scpt

Converts items dropped into target folder (e.g. by Transmission) to H.264 files for Apple TV, using Turbo.264
Copies encoded items to iTunes' Movies library
Stores converted items in a folder that SuperDuper! ignores, so encoding can continue during SD backup
Pauses for SuperDuper to complete backup before copying files to iTunes
Trashes the original and the encoded items, leaving only the copy of the newly encoded item in iTunes
No longer (Opens Lostify as reminder to edit tags)
*)

-- GLOBALS
property converted_items_folder : "Macintosh HD:Users:minckster:Movies:Turbo.264 Converted Items:"
property movies_folder : "Macintosh HD:Users:minckster:Music:iTunes:iTunes Music:Movies:"

-- MAIN
on adding folder items to this_folder after receiving these_items

-- Ensure that all of the items have finished copying into folder
repeat with f in these_items
set old_size to 0
set new_size to -1
-- When new_size equals old_size, it means the copy is complete because the size hasn't changed.
repeat while new_size is not equal to old_size
-- Get the file size.
set old_size to size of (info for f)
delay 4
-- Sample the size again after delay for comparison.
set new_size to size of (info for f)
end repeat
end repeat

-- Add files to Turbo.264's encoding queue one-by-one and encode them en masse
wait_until_turbo264_idle()
tell application "Turbo.264"
repeat with i from 1 to the count of these_items
set this_item to item i of these_items
try
add file this_item with destination converted_items_folder exporting as AppleTV
-- Adding them all at once with these_items didn't work, hence the repeat loop
on error errMsg number errNum
display dialog "Error adding " & this_item & " to encoding queue. (" & errMsg & " " & errNum & ")"
end try
end repeat
try
encode with no error dialogs
on error errMsg number errNum
display dialog "Error encoding. Turbo.264 error code: " & lastErrorCode & " (" & errMsg & " " & errNum & ")"
end try
end tell
wait_until_turbo264_idle()
tell application "Turbo.264" to quit

-- Add the newly encoded items to iTunes, open them in Lostify, and delete them and delete the original items
repeat with i from 1 to the count of these_items
-- Determine paths and filenames
tell application "Finder"
try
set this_item to item i of these_items
set this_extension to name extension of this_item
set this_filename to text 1 through -((count this_extension) + 2) of (get name of this_item)
if exists file (converted_items_folder & this_filename & ".m4v") then
set new_item to converted_items_folder & this_filename & ".m4v"
set itunes_item to movies_folder & this_filename & ".m4v"
else if exists file (converted_items_folder & this_filename & ".mp4") then
set new_item to converted_items_folder & this_filename & ".mp4"
set itunes_item to movies_folder & this_filename & ".mp4"
else
error "Cannot find converted item. Is its extension m4v or mp4?" number -128
end if
on error errMsg number errNum
display dialog "Error determining paths and filenames. (" & errMsg & " " & errNum & ")"
end try
end tell

-- Add encoded item to iTunes. Delete temporary items.
add_to_itunes(new_item)
try
--tell application "Lostify" to open itunes_item
tell application "Finder"
delete new_item
delete this_item
end tell
on error errMsg number errNum
display dialog "Error deleting temporary files. (" & errMsg & " " & errNum & ")"
end try
end repeat

display alert "Successfully completed AppleScript 'Convert to H264'" giving up after 15
end adding folder items to


-- FUNCTIONS
to add_to_itunes(new_item)
wait_until_SuperDuper_idle()
try
tell application "iTunes" to add new_item to playlist "Library"
on error errMsg number errNum
display dialog "Error adding " & new_item & " to iTunes library. (" & errMsg & " " & errNum & ")"
end try
return
end add_to_itunes

on wait_until_turbo264_idle()
tell application "Turbo.264"
repeat while isEncoding
delay 15
end repeat
end tell
return
end wait_until_turbo264_idle

on wait_until_SuperDuper_idle()
tell application "System Events"
repeat while exists process "SDCopy"
delay 30
end repeat
end tell
return
end wait_until_SuperDuper_idle

bekomme aber nur die Fehlermeldung es wurde "Zeilenende" erwartet, aber ein "Klassenname" wurde gefunden.

was mache ich falsch? müsste er mich jetzt nicht fragen, wo bei mir auf der platte Turbo h.264 liegt und so weiter?

danke für ein feedback
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
Das:
Code:
-- FUNCTIONS
to add_to_itunes(new_item)
wait_until_SuperDuper_idle()
try
tell application "iTunes" to add new_item to playlist "Library"
on error errMsg number errNum
display dialog "Error adding " & new_item & " to iTunes library. (" & errMsg & " " & errNum & ")"
end try
return
end add_to_itunes

on wait_until_turbo264_idle()
tell application "Turbo.264"
repeat while isEncoding
delay 15
end repeat
end tell
return
end wait_until_turbo264_idle

on wait_until_SuperDuper_idle()
tell application "System Events"
repeat while exists process "SDCopy"
delay 30
end repeat
end tell
return
end wait_until_SuperDuper_idle
brauchste schonmal alles nicht, glaube ich. Aber ich rufe mal einen Scriptgott zu Hülfe!

Und unter
Code:
-- GLOBALS
property converted_items_folder : "Macintosh HD:Users:minckster:Movies:Turbo.264 Converted Items:"
property movies_folder : "Macintosh HD:Users:minckster:Music:iTunes:iTunes Music:Movies:"

musst du noch "Macintosh HD:Users:minckster:Movies:Turbo.264 Converted Items:" mit deinem entsprechenden Pfad anpassen, also den Usernamen ändern.
Genau wie bei "Macintosh HD:Users:minckster:Music:iTunes:iTunes Music:Movies:", sofern du diese Filme-Ordner benutzt.

(* AppleScript: video - Convert to H264.scpt

Converts items dropped into target folder (e.g. by Transmission) to H.264 files for Apple TV, using Turbo.264
Copies encoded items to iTunes' Movies library
Stores converted items in a folder that SuperDuper! ignores, so encoding can continue during SD backup
Pauses for SuperDuper to complete backup before copying files to iTunes
Trashes the original and the encoded items, leaving only the copy of the newly encoded item in iTunes

No longer (Opens Lostify as reminder to edit tags)
*)

Was ich oben fett gemacht habe, brauchen wir nicht, schätze ich.

Funktioniert folgendes:

Code:
(* AppleScript: video - Convert to H264.scpt

Converts items dropped into target folder (e.g. by Transmission) to H.264 files for Apple TV, using Turbo.264
Copies encoded items to iTunes' Movies library
Stores converted items in a folder that SuperDuper! ignores, so encoding can continue during SD backup
Pauses for SuperDuper to complete backup before copying files to iTunes
Trashes the original and the encoded items, leaving only the copy of the newly encoded item in iTunes
No longer (Opens Lostify as reminder to edit tags)
*)

-- GLOBALS
property converted_items_folder : "Macintosh HD:Users:minckster:Movies:Turbo.264 Converted Items:"
property movies_folder : "Macintosh HD:Users:minckster:Music:iTunes:iTunes Music:Movies:"

-- MAIN
on adding folder items to this_folder after receiving these_items

-- Ensure that all of the items have finished copying into folder
repeat with f in these_items
set old_size to 0
set new_size to -1
-- When new_size equals old_size, it means the copy is complete because the size hasn't changed.
repeat while new_size is not equal to old_size
-- Get the file size.
set old_size to size of (info for f)
delay 4
-- Sample the size again after delay for comparison.
set new_size to size of (info for f)
end repeat
end repeat

-- Add files to Turbo.264's encoding queue one-by-one and encode them en masse
wait_until_turbo264_idle()
tell application "Turbo.264"
repeat with i from 1 to the count of these_items
set this_item to item i of these_items
try
add file this_item with destination converted_items_folder exporting as AppleTV
-- Adding them all at once with these_items didn't work, hence the repeat loop
on error errMsg number errNum
display dialog "Error adding " & this_item & " to encoding queue. (" & errMsg & " " & errNum & ")"
end try
end repeat
try
encode with no error dialogs
on error errMsg number errNum
display dialog "Error encoding. Turbo.264 error code: " & lastErrorCode & " (" & errMsg & " " & errNum & ")"
end try
end tell
wait_until_turbo264_idle()
tell application "Turbo.264" to quit

?

-----------------------------------------------
PS: um den Code in so einem Rahmen darzustellen musst du [ CODE ]text..[ /CODE ] ohne Leerzeichen innerhalb der eckigen Klammern setzen.
 
Zuletzt bearbeitet:

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
danke schonmal für die Mühe,

ich bekomme wenn ich deinen code anpasse (als meinen pfadname ergänze) immernoch die fehlermeldung:

es wurde "Zeilenende" erwartet, aber ein "Klassenname" wurde gefunden.

und das wort "file" in dem code wird markiert.

wo liegt der fehler?

danke schonmal fürs Helfen

gruß
Julian
 

MrArtifex

Bismarckapfel
Registriert
03.02.08
Beiträge
147
hat jemand noch ne idee warum hier die fehlermeldung kommt?