[AppleScript] Lancer un enregistrement QT

Didjo

Membre actif
9 Novembre 2003
967
85
Paris
Bonjour bonjour !

Je débute totallement en AppleScript mais j'ai pas mal de connaissances HTML, PHP, AS, etc..., c'est pourquoi je m'essaye à l'AppleScript...

J'ai un peu consulter iscript.fr mais il n'est pas très riche en explications...

Alors ce que je veux faire c'est lancer QuickTime à une certaine heure, tout les jours, qu'il ouvre un nouveau document d'enregistremen audio et qu'il enregistre...

Pour ça j'ai déjà tapé ceci :

Bloc de code:
tell application "QuickTime Player"
    activate
    new audio recording
end tell
Ce qui ouvre QT et lance un fichier d'enregistrement, mais ne lance pas l'enregistrement...
J'ai vu que pour le lancer il y avait la fonction START mais je ne sais pas du tout commen l'utiliser...
Et surtout comment lancer ce script à une certaine heure...

Si vous pouviez m'aider... Merci ! :zen:
 
Didjo a dit:
Alors ce que je veux faire c'est lancer QuickTime à une certaine heure, tout les jours, qu'il ouvre un nouveau document d'enregistremen audio et qu'il enregistre...

Pour ça j'ai déjà tapé ceci :

Bloc de code:
tell application "QuickTime Player"
    activate
    new audio recording
end tell
Ce qui ouvre QT et lance un fichier d'enregistrement, mais ne lance pas l'enregistrement...
J'ai vu que pour le lancer il y avait la fonction START mais je ne sais pas du tout commen l'utiliser...
Et surtout comment lancer ce script à une certaine heure...

Si vous pouviez m'aider... Merci ! :zen:
Pour lancer un nouvel enregistrement de séquence :
Bloc de code:
tell application "QuickTime Player"
	activate
	new audio recording
	start recording 1
end tell
Pour lancer le script au moment voulu, enregistre-le en tant qu'application (sans écran de démarrage) et utilise iCal pour l'exécuter au jour et à l'heure désirés. ;)
 
Salut.

Après un ( new audio recording ) l'objet devient un ( recording ).
Et tu fais un ( start ) pour commencer l'enregistrement.
Bloc de code:
tell application "QuickTime Player"
	new audio recording
	tell front recording to start
end tell
Pour arrêter l'enregistrement, tu fais*: tell front recording to stop

Pour exécuter le script tous les jours, tu fais un événement dans l'application "iCal".

Pomme + I , pour ouvrir la fenêtre d'information.
Dans répéter, tu sélectionnes "Tous les jours".
Dans alarme, tu sélectionnes "Exécuter un script".
En dessous de "Exécuter un script " tu choisis ton script.
Après tu modifies le "15 minutes avant" à "0 minutes avant".

On peut le faire aussi avec l'application "Cronnix".:)
 
Salut,

novice en applescript, je cherche à faire de la capture de vidéo avec Quicktime.
Une capture de quelques secondes répétée à intervalles réguliers.

Est-ce que mon code (inspiré par celui du dessus) est juste.

Bloc de code:
tell application "QuickTime Player"
	new movie recording
	tell front recording to start
	duration (•)
	tell front recording to stop
	save new movie recording
	in file : /Users/monNOM/Movies/mondossier
	as : mov
end tell

Le (•) sur la ligne duration doit-il s'exprimer en secondes ou en images par secondes ?

Et sur la ligne as, comment faire une numérotation automatique afin de d'enregistrer plusieurs fichiers mov dans le même dossier ?


Dernier point, est-il aisé de faire en sorte qu'il tourne en tâche de fond, sans venir perturber le premier plan de l'écran ? Ainsi qu'une commande de répétition, je ne comprends pas bien le looping, à défaut je ferais un événement récurent dans iCal (6 fois par heure, ça peut se faire).



(…)Pour exécuter le script tous les jours, tu fais un événement dans l'application "iCal".

Pomme + I , pour ouvrir la fenêtre d'information.
Dans répéter, tu sélectionnes "Tous les jours".
Dans alarme, tu sélectionnes "Exécuter un script".
En dessous de "Exécuter un script " tu choisis ton script.
Après tu modifies le "15 minutes avant" à "0 minutes avant".
(…)
 
J'ai tenté de compiler le code qui suit pensant qu'il m'indiquerait comment définir la durée de l'enregistrement et il a bloqué sur la parenthèse. Pareil avec les crochets.

Mon code n'est pas bon ?

Bloc de code:
tell application "QuickTime Player"
	new movie recording
	tell front recording to start
	duration (•)
	tell front recording to stop
	save new movie recording
	in file : /Users/monNOM/Movies/mondossier
	as : mov
end tell
 
je ne sais quasiment rien de applescript, mais il me semble que duration est une propriété et n'est pas en écriture mais en lecture seule.

Il faut je pense :
- connaitre l'heure actuelle lui ajouter la durée d'enregistrement voulue pour déterminer l'heure de fin d'enregistrement.
1 - lancer l'enregistrement (pas certain que cela fonctionne comme tu l'as écrit)
2 - vérifier si l'heure actuelle a dépassé l'heure limite (boucle avec temporisation pour pas que ça tourne en rond à toute allure)
3 - arrêter l'enregistrement
4 - passer à l'enregistrement.

ps : plutôt que réinventer la roue, il doit exister une petite application qui fait ça, non ?

ps2 : zut, j'ai pas laissé estomak répondre…
 
  • J’aime
Réactions: aCLR
je ne sais quasiment rien de applescript, mais il me semble que duration est une propriété et n'est pas en écriture mais en lecture seule.
Ok, voilà ce qui bloque. ;)
Il faut je pense :
- connaitre l'heure actuelle lui ajouter la durée d'enregistrement voulue pour déterminer l'heure de fin d'enregistrement.
1 - lancer l'enregistrement (pas certain que cela fonctionne comme tu l'as écrit)
2 - vérifier si l'heure actuelle a dépassé l'heure limite (boucle avec temporisation pour pas que ça tourne en rond à toute allure)
3 - arrêter l'enregistrement
4 - passer à l'enregistrement.
Le point 1 est juste, ça ne fonctionne pas du tout. :(
ps : plutôt que réinventer la roue, il doit exister une petite application qui fait ça, non ?
Je vais faire une petite recherche ;)
ps2 : zut, j'ai pas laissé estomak répondre…
Mais tu m'as bien aidé. ;)
 
Grâce à ce post, j'ai trouvé deux applications shareware à même de le faire.

EvoCam et Iris.

Je vais donc tester ça à défaut de faire un applescript…
 
Je viens d'en trouver une autre d'appli, BTVpro



Quand à l'applescript, ça avance. Avec le code suivant, j'appelle, j'ouvre et j'enregistre un fenêtre vidéo.


Bloc de code:
tell application "QuickTime Player"
	activate
	new movie recording
	tell front recording to start
end tell

Il faut encore que j'insère la durée et le stop.

:)
 
pour la durée, tu peux créer un timestamp avec un script shell

Bloc de code:
set dureeensecondes to 300
set heuredefin to (do shell script "date +%s") + dureeensecondes

on peut surement faire plus "propre" mais bon ça marche

il ne reste plus qu'à comparer heuredefin avec l'heure courante de façon cyclique (toutes les 10/15 s) pour déclencher la fin de l'enregistrement et la sauvegarde.
 
Bonjour,

Salut,

novice en applescript, je cherche à faire de la capture de vidéo avec Quicktime.
Une capture de quelques secondes répétée à intervalles réguliers.
Voici le script qui fait cela.
Bloc de code:
property dossierdestination : "/Users/monNOM/Movies/mondossier" -- le chemin du dossier doit être un dossier existant.

on run
	tell application "System Events" to exists process "QuickTime Player"
	if the result then tell application "QuickTime Player"
		close documents saving no
		quit
	end tell
	if (do shell script "/usr/bin/defaults read com.apple.quicktimeplayer CapturePreferenceDefaultSaveToLocation") is not dossierdestination then
		do shell script "/usr/bin/defaults write com.apple.quicktimeplayer CapturePreferenceDefaultSaveToLocation " & quoted form of dossierdestination
	end if
end run

on idle
	tell application "QuickTime Player"
		if not (exists recording 1) then
			new movie recording
			start first recording
			set duree to 60 -- durée de l'enregistrement en secondes, modifie le temps  selon vos besoins.
		else
			stop first recording
			close front document saving no
			set duree to 600 -- =10 minutes, temps d'attente en secondes avant de lancer un nouvel enregistrement, modifie le temps  selon vos besoins.
		end if
	end tell
	return duree
end idle

"Quicktime player" enregistre et numérote automatiquement le fichier .mov dans le dossier désiré, donc ce n'est pas nécessaire de le faire par script.

Enregistre le script comme application et tu coches "Rester en arrière plan", décoches "Ecran de démarrage".
La seule différence dans iCal est l'alarme : C'est "Ouvrir un fichier" au lieu de "Exécuter un script".

Oui, le script fonctionne en tache de fond sauf que l'application est au premier plan lors de son lancement.

La syntaxe fonctionne pour les dernières versions de Quicktime.
Pour une version plus ancienne, il se peut que la syntaxe
Bloc de code:
close front document saving no
, ne fonctionne pas, il faut le remplacer par close front movie saving no
 
Bonjour,


Voici le script qui fait cela.
Bloc de code:
property dossierdestination : "/Users/monNOM/Movies/mondossier" -- le chemin du dossier doit être un dossier existant.

on run
	tell application "System Events" to exists process "QuickTime Player"
	if the result then tell application "QuickTime Player"
		close documents saving no
		quit
	end tell
	if (do shell script "/usr/bin/defaults read com.apple.quicktimeplayer CapturePreferenceDefaultSaveToLocation") is not dossierdestination then
		do shell script "/usr/bin/defaults write com.apple.quicktimeplayer CapturePreferenceDefaultSaveToLocation " & quoted form of dossierdestination
	end if
end run

on idle
	tell application "QuickTime Player"
		if not (exists recording 1) then
			new movie recording
			start first recording
			set duree to 60 -- durée de l'enregistrement en secondes, modifie le temps  selon vos besoins.
		else
			stop first recording
			close front document saving no
			set duree to 600 -- =10 minutes, temps d'attente en secondes avant de lancer un nouvel enregistrement, modifie le temps  selon vos besoins.
		end if
	end tell
	return duree
end idle
:up: Ça marche à merveille :style:

Voilà une heure que cela tourne en tâche de font

Comme je souhaite enregistrer à intervalle fixe (15h00, 15h10, 15h20…), je pense qu'il faut pour une durée d'enregistrement de 10 secondes un intervalle de 590 secondes.

Parce que pour le moment, avec 600 secondes cela décale l'enregistrement de 10 secondes.

"Quicktime player" enregistre et numérote automatiquement le fichier .mov dans le dossier désiré, donc ce n'est pas nécessaire de le faire par script.
J'ai vu ;)

Enregistre le script comme application et tu coches "Rester en arrière plan", décoches "Ecran de démarrage".
La seule différence dans iCal est l'alarme : C'est "Ouvrir un fichier" au lieu de "Exécuter un script".

Oui, le script fonctionne en tache de fond sauf que l'application est au premier plan lors de son lancement.
Je ne passe pas par iCal.
Il fonctionne très bien comme cela. :zen:
La syntaxe fonctionne pour les dernières versions de Quicktime.
Pour une version plus ancienne, il se peut que la syntaxe
Bloc de code:
close front document saving no
, ne fonctionne pas, il faut le remplacer par close front movie saving no
J'ai la dernière version de QuickTime (version 7.5.5)

Merci beaucoup Mac_Jac :zen: ;)
:up: