GUIDE UTILISATEUR

Trackers

Relier le lecteur à un outil de suivi de production, y lire une playlist et y publier les notes de la revue : Bernard Engine, puis Kitsu, ftrack et Flow Production Tracking.

Un tracker de production tient la liste des plans, des versions et des tâches d'un film. Bernard Review peut y lire une playlist à revoir, puis y renvoyer les notes et les images annotées, plan par plan. Rien ne part tout seul : chaque échange est un clic, ou une commande d'un script.

Bernard Engine

Bernard Engine est l'outil de suivi de production d'AArts Lab, l'éditeur de Bernard Review ; c'est un produit distinct, vendu séparément, qui sera bientôt open source.

Dans cette version, Bernard Engine (coming soon) figure en tête de la liste Tracker de l'onglet Review Notes mais ne peut pas encore être choisi : la publication directe vers Bernard Engine arrive bientôt. En attendant, un pipeline relié à Bernard Engine échange avec le lecteur par la voie des scripts :

  • la playlist entre sous forme de fichier .bpl, dont chaque plan porte les identifiants du tracker (bloc x_tracking) ;
  • les notes sortent par l'export des notes, dont le fichier JSON rend ces identifiants plan par plan : chaque note retrouve sa version sans comparer de noms de fichiers.

Le détail est dans Intégrations.

Kitsu, ftrack et Flow Production Tracking

File > Tracker... ouvre la fenêtre Tracker. Elle flotte au départ et s'ancre comme tout autre panneau. Les appels au tracker tournent à part : le lecteur n'attend jamais le réseau, et Cancel arrête l'appel en cours.

La fenêtre Tracker avec un site Kitsu en cours de modification : adresse, e-mail, Remember et une règle de chemin.

Ajouter un site

Un site, c'est un tracker et votre compte dessus. Add demande le type, puis :

TypeChamps
Kitsul'adresse du site, votre e-mail, votre mot de passe
ftrackl'adresse du site, l'utilisateur API, la clé API
Flowl'adresse du site, le nom du script, la clé du script

Une infobulle sur chaque champ dit où le trouver : pour Flow, Admin > Scripts > + Script (la clé ne s'affiche qu'une fois, à la création du script : copiez-la alors) ; pour ftrack, My Account > API key ; pour Kitsu, l'e-mail et le mot de passe avec lesquels vous vous connectez au site.

Détails techniques Proxy, correspondances de chemins et de statuts, adresses et secrets

Pour tous : un proxy, un fichier d'autorité de certification pour un studio qui a la sienne, le Path map (un chemin du studio et ce qu'il devient sous Windows, Linux et macOS) et le Status map (les statuts du lecteur, pending, approved et not approved, et celui du tracker pour chacun).

L'adresse doit commencer par https:// ; http:// n'est accepté que vers ce poste lui-même (localhost), par exemple pour un tunnel SSH vers un tracker de test.

Les secrets. Le champ du mot de passe ou de la clé est masqué. Avec Remember coché, le secret va dans le magasin d'identifiants du système (Gestionnaire d'identification Windows, Secret Service sous Linux, trousseau macOS), et seulement une fois accepté par le tracker. Sans magasin, le panneau affiche stored without encryption : le secret va dans un fichier de votre profil lisible par vous seul. Un pipeline peut aussi le fournir par la variable BERNARD_TRACKER_<ID>_SECRET (le nom du site en capitales), qui l'emporte : le panneau affiche alors secret from the environment. Le fichier des sites, trackers.json, ne contient jamais de secret.

Save & Test garde le site et se connecte ; Test se reconnecte et affiche l'utilisateur reconnu, ou l'erreur ; Forget retire le site et son secret.

Charger une playlist

Choisissez le projet, puis la playlist ; un filtre raccourcit la liste. L'aperçu indique pour chaque plan où est son média : local (le chemin donné par le tracker), mapped (ce chemin, à travers le Path map) ou not local. Replace remplace la playlist, Append ajoute à la suite.

Un plan dont le média n'est pas sur ce poste est gardé avec ses identifiants et reste publiable ; il n'est jamais ouvert, exporté ni envoyé aux invités d'une séance, et la lecture continue le saute.

Les aperçus. Rien n'est téléchargé au chargement. Quand des plans ne sont pas sur ce poste, une question suit le chargement : 3 shots are not on this machine (4.5 MB). (3 plans ne sont pas sur cette machine). Download All (tout télécharger) les récupère dans l'ordre de la playlist, un à la fois, seulement quand rien ne joue, et chaque plan se joue dès qu'il est arrivé ; Later (plus tard) ne télécharge rien. Quand Kitsu, ftrack ou Flow héberge le média, un bouton Download preview récupère aussi un plan dans votre profil, où il est gardé 7 jours par défaut (Edit > Preferences... > Cache & Performance > Keep downloaded previews (days)). Un aperçu de plus de 2 Go est refusé. Pour Flow, c'est le film déposé sur la Version (le champ Uploaded Movie, sg_uploaded_movie ; un autre nom se règle avec la clé uploaded_movie des champs du site) : il ne sert que si le chemin de la Version (Path to Movie, Path to Frames, à travers le Path map) n'est pas sur ce poste.

Open in Bernard Review depuis Flow

Les installeurs enregistrent le lien bernardreview:// (Windows : sous le Software\Classes de l'installation, retiré par la désinstallation ; Linux : le type x-scheme-handler/bernardreview de l'entrée de bureau du lecteur). Un administrateur Flow ajoute l'entrée une fois, dans Flow : Admin > Action Menu Items, un nouvel élément avec l'URL bernardreview://flow, les Entity Types Version et Playlist, et le titre Open in Bernard Review (Flow ajoute ses propres données à l'adresse ; rien d'autre à régler). Un clic droit sur des versions ou sur une playlist montre alors l'entrée ; le navigateur demande une fois s'il peut ouvrir Bernard Review.

  • Une version cliquée : les versions affichées sur la page s'ouvrent, dans leur ordre, sur celle cliquée. Plusieurs sélectionnées : seulement celles-là. Une playlist : la playlist entière.
  • Le lien ouvre le lecteur, ou va au lecteur déjà ouvert. Le site doit être un site réglé ici (File > Tracker..., la même adresse) : un lien d'un autre site est refusé avec son nom, et rien n'est envoyé nulle part. Les versions sont relues par votre propre connexion, avec le secret déjà gardé ; sans lui, le lecteur dit de vous connecter une fois dans File > Tracker....
  • Avec une playlist vide, les plans sont chargés tout de suite. Sinon la fenêtre Tracker les montre avec Replace et Append, comme une playlist choisie là (Replace prévient pour les plans ouverts à la main). Un plan dont le média n'est pas sur ce poste a Download preview, comme ci-dessus.
  • De l'adresse, seuls le site, le type d'entité et les ids sont gardés ; votre identifiant Flow et la page d'où vient le lien ne sont écrits nulle part.

Depuis Kitsu. L'entrée de Kitsu est une custom action (la page Custom Actions du menu administrateur), montrée seulement quand des tâches sont sélectionnées (pages Shots, Assets...), pas sur la page Playlists. Kitsu envoie la sélection dans un formulaire caché, qu'une adresse bernardreview:// ne peut pas porter : l'URL de la custom action est une petite page relais, qui en fait bernardreview://kitsu?entity_type=Task&selected_ids=<les tâches>&project_id=<le projet>&server_hostname=<l'hôte de votre Kitsu> et ne garde rien (elle doit retirer l'e-mail que Kitsu ajoute). Chaque tâche sélectionnée s'ouvre sur sa dernière preview, dans l'ordre de la sélection, sur la première ; le reste est comme pour Flow (un site Kitsu réglé ici, Replace / Append, Download preview). La page relais : le serveur relais de Bernard Review en proposera une ; un studio qui veut l'héberger lui-même prend tools/kitsu_relay.py (un seul fichier, bibliothèque standard de Python) : lancé par n'importe quel serveur WSGI derrière votre adresse HTTPS (son application), ou seul pour l'essayer (python kitsu_relay.py --host 127.0.0.1 --port 8765). Elle voit passer l'e-mail et les ids des tâches que Kitsu envoie, n'en garde ni n'en journalise aucun, vérifie chaque id comme un id Kitsu et le serveur comme un nom de site, et répond aussitôt par le lien. Puis, dans Kitsu, une nouvelle custom action : Name Open in Bernard Review, URL l'adresse https de la page, Entity type All, AJAX décoché.

Depuis ftrack. Une action ftrack n'est pas une adresse : quand vous ouvrez le menu Actions sur une sélection, ftrack demande à un programme qui tourne sur votre ordinateur ce qu'il propose. Ce programme est tools/ftrack_action.py (un seul fichier) : aucun droit d'administrateur, rien n'est ajouté au site ftrack, mais l'entrée n'apparaît que dans votre menu Actions et seulement pendant qu'il tourne. Lancez-le avec ftrack Connect (comme un plugin à part, bernard-review/hook/ftrack_action.py, dans le dossier des plugins de Connect ou dans un dossier listé dans FTRACK_CONNECT_PLUGIN_PATH, puis relancez Connect), ou seul : python ftrack_action.py avec FTRACK_SERVER, FTRACK_API_USER (votre nom d'utilisateur ftrack, le même que dans File > Tracker...) et FTRACK_API_KEY (votre clé d'API personnelle) définis, et l'API Python de ftrack installée (ftrack-python-api). Open in Bernard Review est alors proposé sur des versions (une ou plusieurs : seulement celles-là, dans l'ordre de la sélection, sur la première) et sur une liste de versions ou une séance de revue (toute entière, comme une playlist choisie dans la fenêtre Tracker). Le clic ouvre bernardreview://ftrack?entity_type=Version&selected_ids=<les versions>&server_hostname=<l'hôte de votre ftrack> sur cet ordinateur ; le reste est comme pour Flow (un site ftrack réglé ici, Replace / Append, Download preview). Le programme ne garde ni ne journalise rien, vérifie chaque id comme un id ftrack et le serveur comme un nom de site, et ne met ni votre nom d'utilisateur ni votre clé dans le lien. ftrack n'envoie que la sélection, jamais les versions affichées autour : une version cliquée ouvre celle-là.

Linux, l'installeur .sh. Les paquets DEB et RPM sont pris en compte par le bureau tout de suite. Après le .sh, lancez une fois : update-desktop-database ~/.local/share/applications (l'entrée de bureau copiée là), puis xdg-mime default bernardplayer.desktop x-scheme-handler/bernardreview.

Publier les notes

La section Publish, qu'ouvre aussi File > Publish Notes to Tracker..., liste les plans qui ont une note ou au moins un dessin. Seuls ceux chargés depuis le site connecté peuvent être cochés.

  • Chaque note commence par Reviewer: suivi de votre nom, puis la note du plan, puis un repère [f1042] 00:00:43:10 par image annotée, avec le numéro et le timecode que montre l'onglet Review Notes ([f1042] seul sans timecode). Note text montre ce texte exact avant tout envoi.
  • Chaque image annotée est jointe en PNG, avec l'étalonnage du plan et les dessins.
  • Publish status met aussi à jour le statut de chaque plan, à travers le Status map ; décoché par défaut. Quand un site est testé (Save & Test, Test Again), le lecteur lit les statuts que ses versions acceptent ; un Status map vide est alors rempli à partir d'eux (pending -> Pending Review, approved -> Approved, not approved -> un statut de refus si le site en a un), et vous pouvez le changer sous Edit. Un statut que le site n'a pas n'est jamais envoyé : la note part quand même, et le rapport dit quel statut manque et où le choisir ou le créer.
  • Dry Run montre les requêtes sans rien écrire.
  • Publish... demande confirmation, puis rend compte plan par plan : publié, sauté ou en échec, avec la raison. Une note déjà publiée et inchangée est sautée avec le badge Already published : publier deux fois ne crée jamais une deuxième note.

Publish (N) et Finish review

En haut de l'onglet Review Notes (et, en Essential, à côté de la pastille du tracker), Publish (N) apparaît quand un tracker est connecté : N est ce qui n'est pas encore parti, une note avec ses dessins ou un statut changé seul. Il ouvre la fenêtre de publication avec Publish status coché ; il est grisé à 0.

  • Statuts envoyés seuls. Un plan décidé sans note ni dessin envoie son statut seul, jamais une note vide, et une seule fois : il repart seulement si son statut change. Un statut changé sur une note déjà publiée part seul aussi.
  • Finish Review apparaît dès que chaque plan est Approved ou Not Approved. En Essential, Next Shot devient Finish Review sur le dernier plan, et un bandeau le propose dès la dernière décision. En Complete, il est à côté de Publish (N), grisé avec le nombre de plans encore sans décision.
  • Il enregistre la playlist, publie les plans décidés avec leur statut, puis dit ce qui est parti (Review published: N notes, M statuses) avec Close Player (par défaut) et Keep Working.
  • Si le tracker refuse ou ne répond pas, rien ne se ferme et tout reste enregistré : la fenêtre dit ce qui a échoué, avec Retry. Ce qui est déjà parti n'est pas renvoyé.
  • Sans tracker, Finish review enregistre, puis propose l'export des notes : HTML ou Not Now.

Les mêmes opérations existent en commandes pour les scripts (tracker-sites, tracker-connect, tracker-publish...) : voir API Python et IPC. Aucun secret ne passe par ces commandes.

Pour aller plus loin : le manuel complet, partie 6.6 (Help > User Guide).