Exportation video depuis iphoto
 
  • Moyenne : 0 (0 vote(s))
#16
alors ça m'intéresse, je t'en remercie. J'ai tout classé par événements, mais il est facile de tout glisser dans des albums distincts. Puis d'utiliser ton script, après je ne sais pas si c'est simple d'utilisation, car je ne suis un peu une brèle :roll:
#17
Dans un premier temps, pour qu'il fonctionne, il faut que les albums que tu veux exporter soient classés dans des dossiers, avec éventuellement des sous-dossiers. Les albums qui ne sont pas dans un dossier ne sont pas exportés par mon script (choix personnel, je peux le modifier mais pas tout de suite).
Pour illustrer le fonctionnement, par rapport à l'image ci-dessous, le résultat donnera un dossier "Famille" contenant un dossier par album (chacun contenant ses photos) et des sous dossiers pour "Anniversaires" et "Mariage". Idem pour les autres dossiers (Activité, Mer - Lac, etc...). Chaque dossier exporté portera le nom de l'album ou du dossier iPhoto correspondant.
Les "albums automatiques" comme la dernière importation, les photos signalées, etc... ne sont pas exportés, ni les "albums intelligents" (choix personnel également).
   

J'essaie de fournir le script dans l'après midi, je vais pas avoir le temps ce matin. Je t'expliquerai comment l'utiliser également.
[Image: banniere-bleu.png]
#18
Voici donc le script. Avant de l'utiliser, je te suggère de vérifier que tu as bien une sauvegarde complète de tes photos, bien que le risque soit limité, du fait que je n'utilise la base de bibliothèque iPhoto que pour lire des données.
Ca fonctionne très bien chez moi, mais si ça se trouve, ça peut poser des problèmes imprévisibles sur une version différente d'iPhoto. Et dans ce cas, mieux vaut avoir une sauvegarde Wink

Voilà, une fois les recommandations d'usage terminées, nous pouvons commencer.
Pour exécuter le script, tu as plusieurs possibilités :
  • Passer par l'éditeur AppleScript (dans Applications/Utilitaires, bien pour l'utiliser rarement, ou pour le modifier)
  • Passer par le Terminal (même endroit, mais peu d'intérêt dans ton cas je pense)
  • Passer par un service Automator (plus pratique pour l'exécuter régulièrement)
Editeur AppleScript :
Cet utilitaire, qui se trouve dans Applications/Utilitaire, te permet d'éditer des scripts AppleScript (ouais, en même temps, vu son nom, ça peut paraître logique).
Tout ce que tu as à faire, c'est de copier tout le code ci-dessous et de le coller dans la fenêtre de l'éditeur. Ensuite, tu peux le lancer en cliquant sur le logo "play" vert (ou par le raccourci Cmd+R). Je crois qu'iPhoto doit être ouvert avant (j'ai pas essayé de le lancer avec iPhoto fermé...).
Pour un usage ultérieur, tu peux enregistrer le fichier, et le rouvrir plus tard avec le même utilitaire.
L'avantage de l'éditeur est qu'en cas de problème, il peut te fournir de précieuses informations quant à l'erreur qui a pu se produire.
L'inconvénient est que l'intégration à iPhoto est pas terrible (enfin...inexistante quoi :mrgreen: ).
Service Automator :
L'avantage de passer par un service Automator, c'est que tu peux faire appel au script directement depuis iPhoto (menu iPhoto --> Services --> Le nom du service).
Pour créer le service, il faut que tu ouvres Automator (dans Applications), et que tu choisisses "Service" au démarrage de l'application. Ensuite, à gauche de la fenêtre, dans la catégorie "Actions", il faut aller dans "Utilitaires" et double cliquer sur l'action "Exécuter un script AppleScript".
Dans la zone centrale de la fenêtre, tu dois avoir un cadre intitulé "Exécuter un script AppleScript" qui est apparu. Tu peux coller le code ci-dessous juste en dessous de la ligne (* Your script goes here *). Ensuite, en haut de cette zone centrale, tu peux voir des menus déroulants. Dans le premier ("Réceptions du service"), il faut sélectionner "pas d'entrée". Dans le second ("en ordre"), il faut sélectionner "autres" et choisir iPhoto dans la fenêtre qui s'affiche. Le troisième ("l'entrée est") doit être grisé, et la case à cocher "La sortie remplace le texte sélectionné" doit être décochée. Ensuite, il te suffit d'enregistrer le service sous le nom que tu souhaites, et il devrait automatiquement apparaître dans le menu d'iPhoto.

Si tu as des questions ou des problèmes, n'hésites pas !

[code]
tell application "iPhoto"
-- Choose the export folder
set rootFolder to choose folder with prompt "Select the folder where export files…"
-- Get root albums from iPhoto
set rootAlbums to local root albums
-- For each root album
repeat with currentLevel1Album in rootAlbums
--Check if type of album is "folder album" (in my library, all albums are in a root folder)
if (type of currentLevel1Album is folder album) then
-- Presumed folder path
set level1FolderPath to (rootFolder as string) & (name of currentLevel1Album) & ":"
-- If the folder doesn't already exist
if (not FolderExists(level1FolderPath) of me) then
-- Create folder for the root album, in the root folder and get its path
set level1FolderPath to CreateFolder(rootFolder, name of currentLevel1Album) of me
end if
-- Browse recursively the root album to retrieve all its children
BrowseAlbum(currentLevel1Album, level1FolderPath) of me
log level1FolderPath
end if
end repeat
end tell

-- Function to check if the file pointed by filePath exists
-- Returns true or false
on FileExists(filePath)
tell application "System Events"
if exists file filePath then
return true
else
return false
end if
end tell
end FileExists

-- Function to check if the folder pointed by folderPath exists
-- Returns true or false
on FolderExists(folderPath)
tell application "Finder"
if exists folder folderPath then
return true
else
return false
end if
end tell
end FolderExists

-- Function to create a folder called folderName, at the location folderPath.
-- Returns the complete path of the new folder.
on CreateFolder(folderPath, folderName)
tell application "Finder"
make folder at folderPath with properties {name:folderName}
end tell
set completePath to folderPath & folderName & ":"
return completePath as string
end CreateFolder

-- Function to browse recursively an iPhoto album.
-- The album iPhotoAlbum is browsed. If it has children, each child is browsed recursively. Otherwise, all files in the album are exported.
on BrowseAlbum(iPhotoAlbum, parentFolder)
tell application "iPhoto"
-- Get children of the album
set albumChildren to children of iPhotoAlbum
-- For each child
repeat with albumChild in albumChildren
-- Presumed folder path
set albumFolder to (parentFolder as string) & (name of albumChild) & ":"
-- If album folder doesn't already exist
if (not FolderExists(albumFolder) of me) then
-- Create album folder
set albumFolder to CreateFolder(parentFolder, name of albumChild) of me
end if
-- If type of album is folder (it has children), browse it recursively
if (type of albumChild is folder album) then
BrowseAlbum(albumChild, albumFolder) of me
else
-- Else, export photos in the album folder
-- For each photo in the album
repeat with currentPhoto in photo of albumChild
-- If the file pointed by "original path" exists (this is the path where the file was originally imported in iPhoto)
-- Get the original path and convert it into an acceptable format for a shell script
-- This test is necessary for video files, that are not pointed by "image path" (a thumbnail is pointed instead)
if (FileExists(original path of currentPhoto) of me) then
set sourcePath to original path of currentPhoto
set sourcePath to POSIX path of sourcePath
set sourcePath to quoted form of sourcePath
else
-- Else, if the original path doesn't exist, get the file at "image path".
set sourcePath to image path of currentPhoto
set sourcePath to POSIX path of sourcePath
set sourcePath to quoted form of sourcePath
end if
set targetPath to POSIX path of albumFolder
set targetPath to quoted form of targetPath
-- For debug, log the command in the AppleScript Editor console
--log "cp " & sourcePath & " " & targetPath
-- Copy the current file
tell current application to do shell script "cp " & sourcePath & " " & targetPath
end repeat
end if
end repeat
end tell
end BrowseAlbum
[/code]
[Image: banniere-bleu.png]
#19
Alors, ça fonctionne ?
[Image: banniere-bleu.png]
#20
Salut Pilou74,
Je viens de tester ton script, et c'est absolument ce que je cherchais !
Je réalisais le même boulot mais à la main !

Merci pour le boulot et le partage
#21
Pas de quoi Wink
Je ne l'ai pas encore testé sous Yosemite, et j'ai vu qu'il y avait quelques problèmes de lenteurs avec les grosses bibliothèques, donc je pense qu'il est perfectible, mais je vais attendre la sortie du nouveau « Photos » pour reprendre tout ça.
En tous cas, content que ça rende service Wink
[Image: banniere-bleu.png]
#22
Bonjour,
Je rencontre le même problème et je serais intéressée par ton script, je crois....

Sinon, le problème a-t-il été résolu?
Merci
#23
Bonjour,
après avoir recherché longtemps une réponse à ce problème, j'ai découvert cette proposition de script. Très bon script, merci.
J'ai cependant trouvé la réponse dans iPhoto. Le problème est associé à certains formats de video comme mp4. Pour que l'export ce passe bien il faut retailler la longueur de la video. Cela se fait :
- en double-cliquant sur la video dans iPhoto
- puis lorsqu'elle est en lecture, cliquer sur l'engrenage dans la barre de lecture
- choisissez "raccourcir" la video
- puis réinitialiser la longueur

Et voila, la video est prête pour un export classique via le menu "exporter" de iPhoto en mode "original" ou "actuel"

Bon export
« Sujet précédent | Sujet suivant »

Utilisateur(s) parcourant ce sujet : 1 visiteur(s)




Atteindre :