Exemples d'utilisation de l'API

Table des matières

Prerequisites

– Ouvrez le document que vous souhaitez manipuler dans mimoLive.
– Assurez-vous que le document est dans un état finalisé afin que les points de terminaison de l’API, tels que Layers, ne changent plus. Veuillez noter que si vous supprimez une couche et que vous en ajoutez une à nouveau, cette couche aura un identifiant de couche différent lorsque vous interagirez avec elle via l'API. Cependant, réordonner les calques ou ajouter des variantes de calques ne changeront pas l'identifiant du calque.
– Activer le HTTP-Serveur dans les Préférences du Contrôle à Distance de mimoLive. Cochez l’option « Autoriser l’accès à distance au contrôle » :

9e0a2b0b 6a64 4093 b15b 24aa12dead32

Veuillez noter le numéro IP ou l'adresse IP avec le numéro de port de mimoLive pour une utilisation ultérieure lors du travail avec le HTTP API.

Manières de contrôler mimoLive à distance

Contrôler mimoLive avec des surfaces de contrôle à distance

La façon la plus efficace est de créer un personnalisé. Surface de contrôle à distance Pour votre document mimoLive, qui peut fonctionner sur un iPad, un iPhone, ou tout autre appareil doté d'un navigateur Internet.

Contrôler mimoLive avec PHP

Nous avons un script PHP d'exemple bien documenté sur GitHub :
https://github.com/boinx/mimoLive-HTTP-Démo

Contrôler mimoLive avec CURL

Pour contrôler mimoLive via HTTP vous pouvez utiliser la commande Bash « curl ». Pour que les commandes curl fonctionnent, vous devez trouver l'ID du document mimoLive que vous souhaitez manipuler.

Contrôler mimoLive avec une couche d'automatisation

Le couche d'automatisation peut effectuer quelques commandes simples pour déclencher des actions dans mimLive par leurs API Points de terminaison. Il dispose également d'une commande httpRequest() pour effectuer tout type de OBTENIR demander actions le HTTP API est capable de.

Contrôler mimoLive avec AppleScript

Actuellement, mimoLive ne prend pas en charge Apple Script nativement. Cependant, vous pouvez utiliser une solution de contournement pour contacter mimoLive : il existe une commande « do shell script » dans AppleScript qui vous permet d’exécuter des commandes Bash telles que « curl ». La section précédente explique comment créer une commande curl pour manipuler une certaine couche ou valeur de couche.

Pièges dans AppleScript

Dans AppleScript, il y a deux pièges lorsque l’on transfère une commande du terminal telle que « curl » vers la commande do shell script : 1. Tous les “ doivent être préfixés par un \ afin de permettre au parseur Apple-Script de savoir que ceux-ci ne sont pas les marqueurs de fin de la commande do shell script. Le \ est un caractère d'échappement qui indique au parseur d'ignorer le caractère suivant. 2. Si vous concaténez plusieurs parties de texte avec & alors ceci est une « liste de texte » pour AppleScript plutôt qu'un seul texte. La commande do shell ne fonctionnera pas avec « list of text » et par conséquent vous devez le convertir à nouveau en un seul texte avec le « as text » à la fin de votre texte de commande curl

Une fois que vous êtes satisfait de votre commande curl, vous devez l'envelopper dans une commande « do shell script » dans AppleScript :

*

Veuillez vous assurer de remplacer xxxxxxxxx par votre point de terminaison API de couche spécifique !

set layerAPIEndpoint to "xxxxxxxxx" -- in our example this would be "http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B"

set lowerThirdTitle to "Hello World!"
do shell script "curl -d '{\"input-values\":{\"tvGroup_Content__Title\":\"" & lowerThirdTitle & "\"}}' -H \"Content-Type: application/json\" -X PUT \"" & layerAPIEndpoint & "\"" as text

L'exemple AppleScript suivant montre comment activer une couche toutes les demi-heures, à l'heure pile : Cela pourrait être utile pour des superpositions publicitaires. Assurez-vous d'utiliser un calque qui s'éteint tout seul après un certain temps (par exemple, un Placer Layer avec une source vidéo non en boucle le fera).

*

Veuillez vous assurer de remplacer xxxxxxxxx par votre point de terminaison API de couche spécifique !

-- configure your Layer API Endpoint:
set layerAPIEndpoint to "xxxxxxxxx" -- in our example this would be "http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B"
-- repeat endlessly:
repeat
	-- get the seconds last in this hour
	set currentDate to current date
	set secondsToNextHour to 3600 - ((minutes of currentDate) * 60 + (seconds of currentDate))
	-- --------------------------------------------
	-- The following code snippet is useful only if you want to
	-- switch the layer live on half hours also.
	-- if you don't want this behaviour you can delete this part.
	-- --------------------------------------------
	-- check if we are currently in the first half of the hour
	if secondsToNextHour > 1800 then
		-- yes, we are in the first half of the hour, so only wait half the time
		set secondsToNextHour to secondsToNextHour - 1800
	end if
	-- --------------------------------------------
	-- wait until the time to trigger the layer
	delay secondsToNextHour
	-- set the specified layer to live:
	do shell script "curl \"" & layerAPIEndpoint & "/setLive\"" as text
	-- wait a couple of seconds to make sure we don't glitch in time
	delay 5
end repeat

Contrôle des éléments de l'interface utilisateur dans mimoLive

Obtenir un API Endpoint

Les points de terminaison de l'API sont essentiels pour cibler des éléments spécifiques dans votre document mimoLive. Pour une liste des points de terminaison API disponibles, veuillez vous référer à Points de terminaison de l'API.

Avant mimoLive 5.5, il était difficile d'obtenir l'identifiant du document et par exemple un identifiant de calque avec des commandes Terminal en parcourant de longs JSON données. Depuis mimoLive 5.5, c'est beaucoup plus facile :

Tout d'abord, copiez le mimoLive. HTTP base du serveur URL À partir de la section Contrôle à distance de la fenêtre des préférences de mimoLive (voir la capture d'écran ci-dessus). Ouvrez un éditeur de texte (par exemple TextEdit d'Apple) et collez le contenu du presse-papiers dans un nouveau document texte. Veuillez vous assurer qu'il y a Non barre oblique inversée à la fin de la URL! Le résultat devrait ressembler à ceci :

http://172.28.30.202:8989

Dans la fenêtre du document mimoLive, avec votre souris, vous pouvez effectuer un clic droit (ou Ctrl-clic, ou clic à deux doigts) sur l'objet d'intérêt (par exemple une couche, une source, un bouton de contrôle de couche) pour obtenir un menu contextuel. Il y a un élément de menu qui vous permet de copier le API Point de terminaison au presse-papiers macOS pour l'utiliser dans votre mimoLive API projet.

bc6c7e19 e991 48a0 a9b8 b56d690f19b4

Il est parfois important d'aborder une variante de couche spécifique plutôt que la couche en général. Si vous faites un clic droit sur le paramètre d'une couche, vous verrez qu'il y a différents. API points de terminaison pour soit la couche actuelle en direct ou la variante de couche spécifique:

6120370f a575 43db 891b ef3a91d5aec5

Retourne dans ton éditeur de texte et colle le texte que tu viens de copier. API Point de terminaison après le HTTP Base serveur URL. Maintenant le URL dans votre navigateur de texte devrait ressembler à ceci:

http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B

Ceci est le final. API Point de terminaison pour accéder à une couche dans votre document. Dans cet exemple 458706932 est l'identifiant du document et BA868701-8131-49CB-8EDD-8C7E6E7CD60B est l'identifiant spécifique d'une certaine couche dans ce document.

Le clic droit sur certains éléments de l'interface utilisateur pour faire apparaître un menu contextuel permettant d'obtenir le point de terminaison API spécifique fonctionne pour ce qui suit :

  • Sources
  • Couches
  • Variantes de couche
  • Paramètre de couche
  • Destinations de sortie
  • Ensembles de calques
Capture d'écran 2024 10 08 à 10.19.00

Example: Switching ON and ÉTEINT une couche

Avec le récupéré API Point de terminaison pour une couche donnée : vous pouvez l'activer et le désactiver avec les commandes suivantes du terminal.

*

Veuillez vous assurer de remplacer xxxxxxxxx par le point de terminaison de l'API de l'étape précédente !

curl xxxxxxxxx/setLive
curl xxxxxxxxx/setOff
curl xxxxxxxxx/toggleLive
# our example will look like this:
curl http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive
*

Les URLs fonctionnent également dans un navigateur Internet.

Ces URL (sans la commande « curl ») peuvent également être placées dans la barre d'adresses d'un navigateur Internet. Une fois que vous appuyez sur la touche Entrée, le navigateur appellera le serveur HTTP de mimoLive et exécutera la commande que vous avez spécifiée. Si vous avez des données JSON que vous devez envoyer au point de terminaison de l'API, vous pouvez également ajouter ceci à l'URL. Voir ci-dessous « Conversion d'une commande cURL avec des données JSON vers une URL HTTP pour des requêtes HTTP simples ».

Un moyen facile d'obtenir l'URL HTTP complète pour basculer l'état en direct d'une couche entre activé et désactivé est d'effectuer un clic droit sur le bouton Live de la couche pour faire apparaître un menu contextuel et de sélectionner « Copier l'URL pour définir la couche en direct ». Cela copiera l'URL dans le presse-papiers pour votre utilisation. Sur la capture d'écran, vous pouvez voir le menu contextuel du bouton Live d'une couche de bandeau inférieur.

Capture d'écran 2024 10 08 à 10.13.16

Example: Changing a Value of a Layer

– Tous les paramètres d'une couche peuvent être définis via le HTTP API. Vous devez trouver la clé correcte afin de définir une nouvelle valeur. Dans notre exemple, nous allons définir le titre d'un Couche du tiers inférieur avec la clé tvGroup_Content__Title. Parce que nous devons envoyer la nouvelle valeur dans un JSON fichier à le HTTP serveur avec un METTRE la commande curl devient un peu encombrée.

*Veuillez vous assurer de remplacer xxxxxxxxx par votre couche spécifique. API Point de terminaison !

curl -d '{"input-values":{"tvGroup_Content__Title":"My new title"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxx"

Un moyen rapide d'obtenir une URL HTTP complète pour déclencher la mise à jour d'une propriété de couche est de faire un clic droit sur le nom de la propriété, ce qui fait apparaître un menu contextuel, et de sélectionner « Copier l'URL pour changer ‘…..’ ». Cette commande du menu copie une URL HTTP dans le presse-papiers, qui, lorsqu’elle est appelée (par exemple dans un navigateur Internet), définira la propriété à sa valeur actuelle. En examinant l'URL, vous pouvez déterminer quelle partie de celle-ci doit être modifiée pour envoyer vos propres données à cette propriété. Sur la capture d'écran, vous pouvez voir le menu contextuel pour copier l'URL afin de modifier le sous-titre d'une couche Lower Third.

Capture d'écran 2024 10 08 à 10.05.39
http://127.0.0.1:8989/api/v1/documents/xxxxxxxxxxxx/layers/yyyyyyyyyyyy/variants/zzzzzzzzzzzz?include=data.attributes.input-values&fields[input-values]=tvGroup_Content__Subtitle&update=%7B%22input-values%22:%7B%22tvGroup_Content__Subtitle%22:%22mimoLive%20User%22%7D%7D

La nouvelle valeur dans l'URL doit être encodée en URL !

Dans cet exemple, l'espace entre « mimoLive » et « User » est encodé comme %20.

Bonnes pratiques

Collection d'utiles API Commandes pour que vous exploriez

Réglage du RTMP URL et clé de diffusion d'une destination de diffusion en direct :

curl --data '{"data": { "attributes": {"settings": {"rtmpurl":"rtmp://mystreaminghost.com", "streamingkey":"MYTOTALLYSECRETSTREAMKEY"} } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/xxxxxxxxx/output-destinations/yyyyyyyyyyyyy

Paramétrage du nom de fichier et du chemin de la destination de sortie d'un File Writer

curl --data '{"data": { "attributes": {"settings": { "location": "~/Destktop/Recordings", "filename": "MyGreatShow %year-%month-%day-%hour-%minute.%extension" } } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/xxxxxxxxxxxx/output-destinations/yyyyyyyyyyyy

Réglage de la source vidéo d'une couche Placer.

yyyyyyyyyyyyyyy sera le identifiant universel unique de la source vidéo. (par ex. CCAF4418-367A-415F-AD25-6536C3EF3512)

xxxxxxxxxxxxx sera le API Le point de terminaison de la certaine variante de couche. (e.g. http://172.28.30.202:8989/api/v1/documents/2014814935/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/variants/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)

curl -d '{"input-values":{"tvIn_VideoSourceAImage":"yyyyyyyyyyyyy"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Régler le volume d'un calque qui possède une molette de volume audio.

Avec cette commande curl, vous pouvez modifier le volume audio d'un calque qui possède une molette de réglage audio (comme le Placer couche). La valeur « volume » peut prendre des valeurs de 0,0 à 1,0.

xxxxxxxxxxxxx sera le API endpoint of the layer (e.g. http://10.101.2.2:8989/api/v1/documents/13195157/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B)

curl -d '{"volume": 0.5}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Définir la couleur d'un calque d'arrière-plan

xxxxxxxxxxxxx sera le API Le point de terminaison de la certaine variante de couche. (e.g. http://172.28.30.202:8989/api/v1/documents/2014814935/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/variants/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)

curl -d '{"input-values":{"tvGroup_Appearance__Color_1":{"red": 1.0, "blue": 0.5, "green": 0, "alpha": 0.5}}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Effacement du chemin du fichier de la source vidéo Dernier enregistrement

Dans votre Dépôt source, tu peux avoir un Dernière source d'enregistrement qui donnera accès au dernier enregistrement que n'importe quelle destination de sortie d'enregistrement sur fichier annoncera. Dans une application kiosque, il sera nécessaire d'effacer le dernier chemin d'enregistrement afin que le prochain utilisateur de la station ne puisse pas consulter l'enregistrement de l'utilisateur précédent. Avec ce qui suit commande de la couche d'automatisation Vous pouvez effacer ces informations à partir de la dernière source d'enregistrement :

httpRequest(http://127.0.0.1:8989/api/v1/documents/2014814935/sources/2014814935-413AC0A3-AC43-4A7D-A228-6D0181BF1476?update=%7B%22filepath%22%3A%22%22%7D)

Storing JSON Données dans le Document mimoLive

Avec le point de terminaison « datastores », vous pouvez stocker tout type de données dans le document mimoLive afin de les conserver lors du rechargement du document. Vous devez utiliser un «METTREdemande d'enregistrer les données et unOBTENIRdemande de le relire. Vous pouvez stocker n'importe quel type de données; toutefois, dans cet exemple, nous en stockons. JSON Données parce que cela semble être un cas d'utilisation très courant. Si vous voulez stocker des données différentes, vous devez ajuster le paramètre -H en conséquence.

Commande curl pour stocker des données:

curl —data '{"myData1": 1.5, "myData2":"Some text"}' -H "Content-Type: application/json" -X PUT http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1

Commande cURL pour lire les données retournées :

curl -X GET http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1

Mettre à jour le chemin du fichier source d'une source de fichier multimédia.

Vous pourriez vouloir échanger le film qui est diffusé ou remplacer une publicité affichée par un Source du fichier média. Cela peut être fait avec une commande de mise à jour effectuée sur la source API point de terminaison.

Assurez-vous que le mode de référence du fichier de la source média est réglé sur « Absolut Path ». Obtenir le API Point de terminaison pour cette source en cliquant avec le bouton droit dessus dans la colonne de gauche et en sélectionnant « Copier la source » API Point de terminaison vers le presse-papiers Créez un URL de la forme suivante :

http://127.0.0.1:8989/api/v1/documents//sources/?update={"filepath":""}

Assurez-vous d'encoder le JSON données dans le URL obtenir un valide URL qui peut être utilisé dans une commande curl comme ceci :

curl -X GET http://127.0.0.1:8989/api/v1/documents/1748069974/sources/1748069974-334DA2E4-DFF3-4225-8F4A-D09D40A6BD5D?update=%7B%22filepath%22:%22~/Desktop/Screen%20Recording%202022-07-27%20at%2012.18.23.mov%22%7D

*Veuillez noter que vous pouvez utiliser le « ~ » au début du chemin d'accès au fichier pour faire référence au répertoire personnel de l'utilisateur actuel.

Convertissant un CURL commande avec JSON Données à un HTTP URL pour simple HTTP Requests

Parfois, il n’est possible d’envoyer qu’un simple HTTP requête à mimoLive plutôt que d'utiliser une commande curl, par exemple dans le cas d'applications d'automatisation tierces ou de la couche d'automatisation de mimoLive elle-même. Cela nécessite de convertir le bloc de données de la commande curl pour faire partie de la URL. Vous pouvez le faire comme suit :

Supposons que nous ayons la commande curl suivante :

curl --data '{"data": { "attributes": {"settings": {"rtmpurl":"rtmp://mystreaminghost.com", "streamingkey":"MYTOTALLYSECRETSTREAMKEY"} } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110

Tu prendrais le HTTP part premier :

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110

Ajouter ?update= à cela:

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=

Obtenir tous les —chaîne de données et supprimez tous les espaces inutiles:

{"data":{"attributes":{"settings":{"rtmpurl":"rtmp://mystreaminghost.com","streamingkey":"MYTOTALLYSECRETSTREAMKEY"}}}}

Encode ceci à son URL forme par L'échappement des caractères non conformes à l'URL. (e.g. using https://www.urlencoder.org/)

%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D

Enfin, mets tout cela. après le ?mise à jour= comme ceci :

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D

Maintenant, vous pouvez utiliser ceci. URL dans un simple HTTP demande.

Votre retour

Comment évalueriez-vous votre expérience avec cette fonctionnalité de mimoLive® ?

Manuel de l'utilisateur : Mises à jour récentes

Guide d'installation de mimoLive

Découvrez comment télécharger, installer et activer mimoLive sur votre Mac. Ce guide vous explique comment décompresser l’application, la déplacer dans votre dossier Applications et saisir votre clé de licence. Cela vous rappelle également de connecter vos comptes. Une fois configuré, vous êtes prêt à explorer les puissantes fonctionnalités de production vidéo en direct de mimoLive.

Lire la suite »

Introduction

mimoLive est un logiciel polyvalent de production vidéo en direct conçu pour les utilisateurs Mac, permettant la création de flux en direct de qualité professionnelle, de diffusions et de présentations. Ce manuel offre des conseils complets, proposant des instructions étape par étape et des éclairages pour aider les utilisateurs — qu'ils soient débutants ou professionnels expérimentés — à optimiser leur expérience avec le logiciel. Il couvre les exigences système, les procédures d'installation et les conseils de navigation pour assurer une installation et un fonctionnement sans accroc.

Lire la suite »

Choisir la langue

[sélecteur de langue]