total débutant applescript... besoin d'aide. |
Bienvenue invité ( Connexion | Inscription )
total débutant applescript... besoin d'aide. |
31 Dec 2013, 18:51
Message
#1
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
Bonjour,
j'aurais besoin, sur une série de fichiers vidéos, de mettre en "inutilisé" le canal droit audio. Manuellement, cela revient à ouvrir le fichier avec QT7 Player, à aller dans les propriétés de la séquence, à cliquer sur la piste son, puis à affecter le canal de droite à "inutilisé" au lieu de "droit". Si je dois le faire sur chaque fichier (genre plusieurs centaines) je ne vais jamais y arriver... alors je cherche à automatiser... mais je suis vraiment trop largué en applescript. Si quelqu'un a la bonté de vouloir me dépanner...? Toj' -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
1 Jan 2014, 11:44
Message
#2
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
il y a 2 possibilités pour résoudre ton problème : 1) utiliser Applescript avec des fonctions prévues: Celles-ci sont limités car Apple a restreint les propriétés modifiables dans les pistes (tracks). La grande majorité peut être lue, mais pas écrite. Par exemple le canal droit n'est pas accessible, mais la balance audio l'est. Voici donc un petit script qui, une fois le dossier sélectionné, va prendre chaque fichier ".mov" qui s'y trouve et mettre la balance audio à gauche. Le gros avantage est que ce script ne dépend pas de l'interface graphique de QuickTime. Si l'interface change, le script fonctionnera encore. Tu dois adapter les lignes 1 et 2 selon que ton application QuickTime Player 7 est dans ton dossier Applications ou Utilitaires. Dans mon cas, c'est dans Utilitaires, donc la première ligne est en commentaire avec des "--" devant. A toi d'adapter à ton cas. Code -- set QuickTime7 to (path to applications folder as text) & "QuickTime Player 7.app" set QuickTime7 to (path to applications folder as text) & "Utilities:QuickTime Player 7.app" set Mon_Dossier to choose folder with prompt "Sélectionner le dossier avec les fichiers à traiter" tell application "Finder" to set Mes_Fichiers to every file of folder Mon_Dossier whose name extension is in {"mov"} repeat with Ma_Video in Mes_Fichiers set FVid to Ma_Video as string tell application "QuickTime Player 7" tell application "Finder" to open file FVid using QuickTime7 try set Ma_Piste to (first track of front document whose kind is "Son") set sound balance of Ma_Piste to -128 -- met tout le son à gauche save front document end try close front document end tell end repeat 2) Si tu veux uniquement corriger le canal droit, qui n'est pas accessible en écriture directement en script, alors il faut simuler l'interface utilisateur en passant par System Events. Je précise que cette technique doit habituellement être utilisée en dernier recours, ...mais ici, pas le choix ! Tu dois, comme dans le premier script, adapter les 2 premières lignes à ton cas. Code -- set QuickTime7 to (path to applications folder as text) & "QuickTime Player 7.app" set QuickTime7 to (path to applications folder as text) & "Utilities:QuickTime Player 7.app" set Mon_Dossier to choose folder with prompt "Sélectionner le dossier avec les fichiers à traiter" tell application "Finder" to set Mes_Fichiers to every file of folder Mon_Dossier whose name extension is in {"mov"} repeat with Ma_Video in Mes_Fichiers set FVid to Ma_Video as string tell application "QuickTime Player 7" tell application "Finder" to open file FVid using QuickTime7 tell front document set show detailed movie info window to true tell application "System Events" tell process "QuickTime Player 7" -- balaye les pistes pour trouver celle du son "Piste Son" set Ma_Piste to -1 repeat with i from 1 to count of rows of table 1 of scroll area 1 of window 1 if value of text field 1 of row i of table 1 of scroll area 1 of window 1 is "Piste Son" then set Ma_Piste to i end if end repeat if Ma_Piste > 0 then select row Ma_Piste of table 1 of scroll area 1 of window 1 -- selectionne la piste audio click radio button 3 of tab group 1 of window 1 -- sélectionne l'onglet "Réglages audio" -- balaye les canaux pour trouver le "Droit" set Canal to -1 repeat with i from 1 to count of rows of table 1 of scroll area 1 of tab group 1 of window 1 get properties of row i of table 1 of scroll area 1 of tab group 1 of window 1 if value of pop up button 1 of row i of table 1 of scroll area 1 of tab group 1 of window 1 is "Droit" then -- click sur le pop up menu et sélectionne "Inutilisé" tell pop up button 1 of row i of table 1 of scroll area 1 of tab group 1 of window 1 click click menu item "Inutilisé" of menu 1 end tell end if end repeat end if -- si piste audio trouvée end tell -- process quicktime end tell -- system events end tell -- front document -- save front document close front document saving yes end tell end repeat J'ai mis plein de commentaires pour que tu puisses éventuellement modifier ce script. En principe, la fenêtre des propriétés QuickTime Player 7 n'a pas évoluée depuis des lustres et donc nous devrions avoir la même (donc les mêmes scroll area, tab, et autres menus ...) Attention, comme tu simules l'interface utilisateur, tu ne dois pas interagir avec ton mac pendant l'exécution de ce script !!! Je précise enfin que, dans les 2 cas, les fichiers sont supposés être des ".mov" (voir la restriction). Je force l'ouverture avec QuickTime Player 7 avec la ligne Tell Application "Finder" to open file..., mais si les fichiers ne sont pas des quickTime (par exemple des .dv ou autres), il faut corriger ajouter ses extensions et il faut gérer des "Enregistrer sous...". Bonne année à tous ! -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
1 Jan 2014, 16:08
Message
#3
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
Hello
d'abord mille mercis pour le temps que tu accordes à mon souci !!!! J'ai essayé les deux scripts.... Le premier fonctionne (j'ai eu une erreur au début mais j'ai vite compris que c'était parce que mon QT Player 7 est dans le dossier application et pas utilitaires...)... mais ca ne fait pas la sauce: ca modifie bien la balance, mais uniquement pour QT 7... si j'ouvre la video dans autre chose (y compris QT X) il s'en tamponne les alibofis. Néanmoins c'est déjà une piste ! Le second script, j'ai comme erreur: error "Erreur dans System Events : Il est impossible d’obtenir scroll area 1 of window 1 of process \"QuickTime Player 7\". Index non valable." number -1719 from scroll area 1 of window 1 of process "QuickTime Player 7" Il ouvre quicktime player, la première video et les propriétés de celle ci mais ca se bloque donc à ce niveau la. Et là, je suis trop nul sur les scripts pour y comprendre qq chose............. pour info, je suis sur OS 10.8.5, avec donc Applescript 2.2.4 et l'éditeur 2.5.1.... -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
1 Jan 2014, 16:42
Message
#4
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
L'erreur dans le second script est exactement la même que sur le premier.
Comme je l'avais indiqué, il faut que tu changes les lignes 1 et 2 pour adapter chez toi en fonction de là où est ton quickTime Player 7. La correction que tu as fait pour le 1 doit être aussi faite dans le script 2. -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
1 Jan 2014, 16:53
Message
#5
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
L'erreur dans le second script est exactement la même que sur le premier. Comme je l'avais indiqué, il faut que tu changes les lignes 1 et 2 pour adapter chez toi en fonction de là où est ton quickTime Player 7. La correction que tu as fait pour le 1 doit être aussi faite dans le script 2. en fait, je n'ai rien corrigé: j'ai juste déplacé mon QT7 Player dans utilitaire.... et cela a fonctionné pour le 1er. je dirais que le problème est ailleurs, puisqu'il trouve bien QT7 player et qu'il me le lance avec le premier fichier video ? non ? -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
1 Jan 2014, 18:06
Message
#6
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
L'erreur dans le second script est exactement la même que sur le premier. Comme je l'avais indiqué, il faut que tu changes les lignes 1 et 2 pour adapter chez toi en fonction de là où est ton quickTime Player 7. La correction que tu as fait pour le 1 doit être aussi faite dans le script 2. en fait, je n'ai rien corrigé: j'ai juste déplacé mon QT7 Player dans utilitaire.... et cela a fonctionné pour le 1er. je dirais que le problème est ailleurs, puisqu'il trouve bien QT7 player et qu'il me le lance avec le premier fichier video ? non ? alors en testant .... je me rends compte que le script fonctionne.... parfois. alors que je n'ai rien changé. il faut que QT 7 Player soit lancé, déjà. mais il semblerait qu'en insistant un peu, ca passe, donc je vais déjà tenter de lancer la chose sur des blocs de fichiers et je vais gagner un temps de malade !!!! donc, derechef MILLE MERCIS ! l'erreur reste: error "Erreur dans System Events : Il est impossible d’obtenir scroll area 1 of window 1 of process \"QuickTime Player 7\". Index non valable." number -1719 from scroll area 1 of window 1 of process "QuickTime Player 7" et je n'arrive pas bien à comprendre ce que je fais (ou pas) qui fait que ca marche .... (ou pas !) Ce message a été modifié par tojar - 1 Jan 2014, 18:23. -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
1 Jan 2014, 21:02
Message
#7
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Le script fonctionne chez moi. alors on va essayer de comprendre pas à pas.
On utilise donc le script N°2. Tu me dis que les documents s'ouvrent bien dans QT player 7. Donc je pense que tout va bien jusqu'à la ligne "Set Ma_Piste to -1" L'erreur que tu rencontres signifie que Applescript cherche, sans la trouver, la scroll area 1 de la fenêtre qui devrait être la fenêtre de propriété de la séquence. Je ne vois que 2 alternatives : la fenêtre ne s'ouvre pas ou alors elle ne contient pas cette scroll area 1 : Donc soit tu as un fichier vidéo d'un type spécial, soit tu n'a pas la même version QT7 (j'ai une version 7.6.6). Je penche plutôt pour un fichier spécial car tu indiques que cela fonctionne pour certains fichiers et pas pour d'autres. Lorsque tu lances et que tu as cette erreur sur un fichier, peux tu faire une copie écran de la fenêtre QT7 de propriété de ce fichier ? Cela m'aidera car j'ai fait tous les tests avec différents mov, mais cela fonctionne toujours. Ensuite ajoute dans le script, après la ligne "Set Ma_Piste to -1" l'instruction suivante : Code Get UI elements of window 1 Cette instruction nous donnera le contenu de la fenêtre (si la scroll area 1 n'existe pas, il doit bien y a voir autre chose !) Le résultat de cette commande sera affiché dans ton Editeur Applescript, dans l'onglet en bas "Evénements". quelque chose du genre : Code get every UI element of window 1 of process "QuickTime Player 7" --> {button 1 of window......... Tu m'envoies l'image de la fenêtre QT7 propriété de la séquence et le résultat du script. Cela va aider à comprendre ce qui ne fonctionne pas sur ton fichier en particulier. A+ -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
1 Jan 2014, 21:52
Message
#8
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
Le script fonctionne chez moi. alors on va essayer de comprendre pas à pas. On utilise donc le script N°2. Tu me dis que les documents s'ouvrent bien dans QT player 7. Donc je pense que tout va bien jusqu'à la ligne "Set Ma_Piste to -1" L'erreur que tu rencontres signifie que Applescript cherche, sans la trouver, la scroll area 1 de la fenêtre qui devrait être la fenêtre de propriété de la séquence. Je ne vois que 2 alternatives : la fenêtre ne s'ouvre pas ou alors elle ne contient pas cette scroll area 1 : Donc soit tu as un fichier vidéo d'un type spécial, soit tu n'a pas la même version QT7 (j'ai une version 7.6.6). Je penche plutôt pour un fichier spécial car tu indiques que cela fonctionne pour certains fichiers et pas pour d'autres. Lorsque tu lances et que tu as cette erreur sur un fichier, peux tu faire une copie écran de la fenêtre QT7 de propriété de ce fichier ? Cela m'aidera car j'ai fait tous les tests avec différents mov, mais cela fonctionne toujours. Ensuite ajoute dans le script, après la ligne "Set Ma_Piste to -1" l'instruction suivante : Code Get UI elements of window 1 Cette instruction nous donnera le contenu de la fenêtre (si la scroll area 1 n'existe pas, il doit bien y a voir autre chose !) Le résultat de cette commande sera affiché dans ton Editeur Applescript, dans l'onglet en bas "Evénements". quelque chose du genre : Code get every UI element of window 1 of process "QuickTime Player 7" --> {button 1 of window......... Tu m'envoies l'image de la fenêtre QT7 propriété de la séquence et le résultat du script. Cela va aider à comprendre ce qui ne fonctionne pas sur ton fichier en particulier. A+ alors je ne suis pas chez moi mais un élément de réponse: avant de bouger, j'ai fait plusieurs tests.... si je lance le script avec QT7 Player non lancé ou bien avec le QT7 player lancé par le script (genre si je relance le script), ca ne marche pas. Si je lance moi meme QT7 Player (par exemple via le menu "éléments récents"), ca marche.... néanmoins, je verrais de relancer la chose et de faire une copie d'écran dès que je reviens. merci à nouveau de ton temps. -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
5 Jan 2014, 19:43
Message
#9
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
hello
le boulot m'a un peu bouffé ces derniers jours..... mais voila le message d'erreur... Sans_titre.png ( 1.54 Mo ) Nombre de téléchargements : 12 message que je n'ai pas lorsque je lance le script avec QT ouvert. -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
10 Jan 2014, 22:27
Message
#10
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonsoir,
désolé pour le retard de la réponse...déplacement toute la semaine ! Merci pour l'écran d'erreur. Cette erreur provient du fait que le script s'attend, pour cette instruction, à avoir la fenêtre QT7 des propriétés en fenêtre de premier plan. Mais cela ne semble pas être le cas, bien que la fenêtre soit effectivement ouverte et visible. 1) lors de l'exécution du script, tu ne doit pas toucher ton clavier ou souris, car, comme je suis obligé d'utiliser la simulation clavier/souris, le script considère que c'est lui le seul utilisateur. Par exemple, lorsqu'il ouvre la fenêtre propriété, il va supposer ensuite qu'elle est au premier plan. Si tu clique ailleurs, il va exécuter ce qu'i devrait faire sur cette fenêtre,...sur une autre fenêtre. C'est visiblement le cas ici. 2) il se peut aussi que ce soient d'autres applications lancées simultanément qui cherchent à passer au premier plan. un façon de limiter cela est d'ajouter une ligne dans la boucle pour forcer QT à passer au premier plan (ce qui va limiter le risque, entre 2 itérations, d'une autres applications au 1er plan) Il faut ajouter une instruction "Activate" juste avant le "Set show detailed movie info window to true" Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
10 Jan 2014, 22:35
Message
#11
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 960 Inscrit : 6 May 2004 Lieu : under ze couette Membre no 18 500 |
Bonsoir, désolé pour le retard de la réponse...déplacement toute la semaine ! Merci pour l'écran d'erreur. Cette erreur provient du fait que le script s'attend, pour cette instruction, à avoir la fenêtre QT7 des propriétés en fenêtre de premier plan. Mais cela ne semble pas être le cas, bien que la fenêtre soit effectivement ouverte et visible. 1) lors de l'exécution du script, tu ne doit pas toucher ton clavier ou souris, car, comme je suis obligé d'utiliser la simulation clavier/souris, le script considère que c'est lui le seul utilisateur. Par exemple, lorsqu'il ouvre la fenêtre propriété, il va supposer ensuite qu'elle est au premier plan. Si tu clique ailleurs, il va exécuter ce qu'i devrait faire sur cette fenêtre,...sur une autre fenêtre. C'est visiblement le cas ici. 2) il se peut aussi que ce soient d'autres applications lancées simultanément qui cherchent à passer au premier plan. un façon de limiter cela est d'ajouter une ligne dans la boucle pour forcer QT à passer au premier plan (ce qui va limiter le risque, entre 2 itérations, d'une autres applications au 1er plan) Il faut ajouter une instruction "Activate" juste avant le "Set show detailed movie info window to true" Cordialement en fait, quand on lance QT7 player, il lance une fenetre qui annonce les sorties de film, des trucs comme ca et qui a une fnetre de propriétés qui n'a rien à voir... je pense que c'est ca qui le fait bugger. mais comme il me suffit de lancer QT7 avant... de fermer cette fenetre pour que ca marche, et bien j'ai pu contourner le souci. en tous les cas, mille mille mille mercis !!!! j'ai gagné un temps assez phénoménal !!! (et bonne année aussi !) -------------------- <= attention, cet individu est énervant, exécrable, hautain, prétentieux, professoral, d'un humour douteux et, de surcroit, disciple de courants de pensées qui sont dangeureuses pour notre bonne société francaise. hop.
|
|
|
11 Jan 2014, 07:59
Message
#12
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
Pour ne plus voir apparaître la fenêtre QT7 des annonces de films, il sufit d'aller dans QT7 / Préférences et dans le panneau Général, de décocher la case Autre : Afficher automatiquement le Guide du contenu. Si tu as gagné du temps (et sans doute appris un peu d'Applescript) , c'est un excellent début d'année ! Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
Nous sommes le : 29th March 2024 - 11:32 |