IPB

Bienvenue invité ( Connexion | Inscription )

> Apple script et iTunes, Insérer une image dans les fichiers mp3/m4a
Options
Tanguy
posté 15 Sep 2007, 09:59
Message #1


Nouveau Membre


Groupe : Membres
Messages : 5
Inscrit : 25 Feb 2002
Membre no 2 132



Bonjour
Autant le dire tout de suite : je débute en applescript huh.gif

Mon but :

Inclure à l'intérieur de chaque piste (fichier physique, pas bibliotèque itunes) un artwork (image) correspondant a un fichier .jpg présent sur mon disque
ex : Mettre dans toutes les pistes de l'album "dark side of the moon" l'image "dark side of the moon.jpg"

Ce qui marche : smile.gif

J'ai fait un scrip d'une 50aine de lignes qui cherche dans un dossier du disque une image "xxx.jpg" ou xxx correspond aux titres des albums de la selection courante des "tracks" dans itunes.
Ca toune dans un "repeat" et ca marche : je récupère la référence du fichier et ça marche (si je fais Tell Application "finder" / open vFileRef / End tell les images trouvées s'ouvrent bien)

Ce qui ne marche pas (que je ne sais pas faire) huh.gif

Pour chaque "track" courante (je suis dans une boucle) j'aimerais:

- charger l'image
- la mettre dans l' "artwork" de la track
(j'insite un peu : je veux que l'image soit inclue dans le fichier lui-même, PAS dans la bibliothèque itunes)

Est-ce que quelqu'un maitrise le sujet ?
Merci de votre aide.

Tanguy


----------
Ci-dessous le script en question...
(également en pièce jointe)
----------

global vFileRef
global vPictFolder
global vArtworkData
global vPictFullPath

global v_TrackSelection


tell application "Finder"

set vPictFolder to choose folder with prompt "Select the folder pl ease."

--set the vPictName to item 5 of v_PictNames -- ok
--set the vPicture to item 5 of v_PictItems -- ok
--set the vNbpict to count items of v_PictItems
--display dialog (vNbpict as string)

end tell


tell application "iTunes"
--activate
--set myPlaylist to library playlist
if selection is not {} then
set v_TrackSelection to a reference to selection

repeat with vTrack in v_TrackSelection

set vAlbumName to album of vTrack
set vAlbumArt to artworks of vTrack

set vAlbumpictName to vAlbumName & ".jpg"

tell application "Finder"
-- verifies if the file exists
if (exists file vAlbumpictName of folder vPictFolder) then
set vPictFullPath to (vPictFolder & vAlbumpictName)
set vFileRef to file vAlbumpictName of folder vPictFolder
open {vFileRef}
else
set vFileRef to empty reference
--display dialog ("The picture " & vAlbumpictName & " does NOT exist.")
end if
end tell

if vFileRef is not null then

(*
C'est ici que j'ai besoin d'aide :
J'ai une référence de fichier mais je ne sais pas quoi en faire :-(
-> Si la track a déjà un "artwork" je veux le remplacer par l'image
-> Si la track n'a pas d'artwork je veux le créer
(une tracj peut avoir plusieurs artwork ? c'est pas clair... je n'en veux qu'UN par track)
*)

end if

end repeat

else
display dialog ("select tracks first !")
end if

end tell

Ce message a été modifié par Tanguy - 15 Sep 2007, 09:59.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s) (1 - 5)
Guest_JackJr300_*
posté 16 Sep 2007, 18:49
Message #2





Guests






Bonjour smile.gif

C'est possible en AppleScript avec la classe «data» picture,. on ne peut pas utiliser le chemin de l'image JPEG.

Donc, il faut convertir le fichier JPEG au format PICT, et le lire avec (read as picture).

Voici le script, il convertit le JPEG en PICT dans un fichier temporaire, va effacer les artworks existants et va insérer l'image dans le fichier.
CODE

property tempfile : ((path to temporary items as string) & "itunespicturefile_temporaire.pict")
global vPictFolder

set vPictFolder to choose folder with prompt "Select the folder please."
tell application "iTunes"
    set v_TrackSelection to selection
    if v_TrackSelection is not {} then
        repeat with vTrack in v_TrackSelection
            set thisPict to my getpictData((get album of vTrack) & ".jpg")
            if thisPict is not "" then
                delete artworks of vTrack
                set data of artwork 1 of vTrack to (thisPict)
            end if
        end repeat
    else
        display dialog ("select tracks first !")
    end if
end tell

on getpictData(vAlbumpictName)
    tell application "Finder" to tell file vAlbumpictName of folder vPictFolder to if exists then
        set t_file to it as string
    else
        return ""
    end if
    do shell script "/usr/bin/sips -s format pict " & quoted form of POSIX path of t_file & " --out " & quoted form of POSIX path of tempfile
    return read (tempfile as alias) from 513 as picture
end getpictData

Go to the top of the page
 
+Quote Post
Tanguy
posté 17 Sep 2007, 18:29
Message #3


Nouveau Membre


Groupe : Membres
Messages : 5
Inscrit : 25 Feb 2002
Membre no 2 132



CITATION(JackJr300 @ 16 Sep 2007, 19:49) [snapback]2349552[/snapback]

Bonjour smile.gif

C'est possible en AppleScript avec la classe «data» picture,. on ne peut pas utiliser le chemin de l'image JPEG.

Donc, il faut convertir le fichier JPEG au format PICT, et le lire avec (read as picture).

(...)




Tour d'abord un GRAND merci d'avoir passé du temps et de m'avoir fourni un code qui fonctionne et qui fait très exactement ce dont j'avais besoin... ou presque.
Je ne sais pas si je peux me permettre d'abuser mais il y a quand même un truc que je pige pas, après avoir fait des essais.
Quand je fais un Drag&Drop d'image dans la zone "Drag Album artwork here" et que je glisse une image .jpg, c'est bien une image .jpg qui est insérée dans chaque fichier mp3 (je le vois a la taille de chaque fichier, qui s'incrémente grosso-modo de la taille de mon image (entre 13 et 15ko, ce qui est acceptable)
En revanche, insérer des PICTs, ça l'est beaucoup moins (75k cette fois).

N'est-il vraiment pas possible de reproduire le drag and drop par apple script ? ça me parait un peu étrange.

Bon, si la réponse est "non", je saurais m'en contenter et je renouvellerais quand même mon grand MERCI.
En revanche, je me passerai de coverflow sur mon ipod nano... :-( Tant pis. ce qui compte c'est la musique !
Un peu frustrant quand même :-)

Tanguy.

Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 18 Sep 2007, 03:29
Message #4





Guests






Bonjour smile.gif

CITATION(Tanguy @ 17 Sep 2007, 18:29) [snapback]2350823[/snapback]

Quand je fais un Drag&Drop d'image dans la zone "Drag Album artwork here" et que je glisse une image .jpg, c'est bien une image .jpg qui est insérée dans chaque fichier mp3
Oui, c'est bien ça.

CITATION(Tanguy @ 17 Sep 2007, 18:29) [snapback]2350823[/snapback]

N'est-il vraiment pas possible de reproduire le drag and drop par apple script ? ça me parait un peu étrange.
Non, parce que le dictionnaire AppleScript d' iTunes ne permet pas d'utiliser le chemin du fichier pour tagger un artwork.
CITATION( iTunes Dictionary @ 17 Sep 2007 , 18:29)
artwork n [inh. item] : a piece of art within a track
properties
data (picture) : data for this artwork, in the form of a picture


C'est Apple qui décide de ce qu'il met dans le dictionnaire Applescript d'iTunes..
Go to the top of the page
 
+Quote Post
Tanguy
posté 19 Sep 2007, 20:46
Message #5


Nouveau Membre


Groupe : Membres
Messages : 5
Inscrit : 25 Feb 2002
Membre no 2 132



OK, j'ai compris le principe du dico; il n'y a plus qu'a attendre qu'apple donne un nouveau point d'entrée donc pour pouvoir insérer des "jpeg" directement et non plus des "pict" (je présume que le dictionnaires est forcément à jour et qu'il n'y a aucue chance de tenter d'outrepasser ses directive ? (as JPEG PICTURE par exemple ? :-)

Bon, il me reste une ultime question (ensuite j'hiberne pour 6 mois)
Comment faudrait-il ecrire le script si le dossier ne contenait pas des .jpg mais des .pict directement ?
Je sens bien que l'appel a la ligne de commande du terminal serait superflue, mais je suis pas certain de savoir réécrire le script correctement tout seul.

Allez, une 'der des der" sur le sujet. Plutot que de quémander du poisson, j'aimerais plutot apprendre a pêcher. Existe-t-il des bon bouquins sur Apple-script (francais de pref, mais anglais ça ira aussi)... un conseil ?

Merci.

Tanguy
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 20 Sep 2007, 04:40
Message #6





Guests






Bonjour smile.gif

CITATION(Tanguy @ 19 Sep 2007, 20:46) [snapback]2354108[/snapback]

OK, j'ai compris le principe du dico; il n'y a plus qu'a attendre qu'apple donne un nouveau point d'entrée donc pour pouvoir insérer des "jpeg" directement et non plus des "pict" (je présume que le dictionnaires est forcément à jour et qu'il n'y a aucue chance de tenter d'outrepasser ses directive ? (as JPEG PICTURE par exemple ? :-)

J'ai essayé plusieurs méthodes, le copier/coller, as jpeg picture, prendre le artwork d'un autre track et le mettre directement dans le morceau sélectionné, aucune amélioration, le fichier grossit toujours à la même taille.. sad.gif

CITATION(Tanguy @ 19 Sep 2007, 20:46) [snapback]2354108[/snapback]

Bon, il me reste une ultime question (ensuite j'hiberne pour 6 mois)
Comment faudrait-il ecrire le script si le dossier ne contenait pas des .jpg mais des .pict directement ?

Comme ceci.
CODE

global vPictFolder
set vPictFolder to choose folder with prompt "Select the folder please."

tell application "iTunes"
    set v_TrackSelection to selection
    if v_TrackSelection is not {} then
        repeat with vTrack in v_TrackSelection
            set thisPict to my getpictData((get album of vTrack) & ".pict")
            if thisPict is not "" then
                delete artworks of vTrack
                set data of artwork 1 of vTrack to (thisPict)
            end if
        end repeat
    else
        display dialog ("select tracks first !")
    end if
end tell

on getpictData(vAlbumpictName)
    tell application "Finder" to tell file vAlbumpictName of folder vPictFolder to if exists then return read (it as alias) from 513 as picture
    return ""
end getpictData


CITATION(Tanguy @ 19 Sep 2007, 20:46) [snapback]2354108[/snapback]

Allez, une 'der des der" sur le sujet. Plutot que de quémander du poisson, j'aimerais plutot apprendre a pêcher. Existe-t-il des bon bouquins sur Apple-script (francais de pref, mais anglais ça ira aussi)... un conseil ?
Pour commencer ce site

Un livre en Français : ici

Et ce sujet pour d'autres liens. wink.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 4th April 2026 - 15:51