Skip to content

Documentation du fichier config.appsport

Le fichier config.appsport décrit un projet AppSport : dossiers de travail, fichiers à dupliquer, variables à remplacer, connexion live output et options de fonctionnement.

Il sert à automatiser la préparation d'un direct : création de fichiers vMix ou Premiere Pro depuis des modèles, génération de chemins d'enregistrement, configuration du dossier LIVE, export local et pilotage vMix/CasparCG.

En V2.0.0, AppSport sert aussi de client de sortie : il se connecte localement à vMix ou CasparCG, puis peut recevoir des actions depuis l'interface web MY-LIVE-SPORT.

Télécharger AppSport

Téléchargement : AppSport

Le fichier .appsport est un fichier JSON. Il doit donc rester valide : guillemets doubles, virgules bien placées, chemins Windows échappés avec \\ si nécessaire.

Structure recommandée V2.0.0

Les nouveaux fichiers sauvegardés par AppSport utilisent les noms de clés suivants :

{
  "generator": false,
  "fileCopy": [],
  "html": {},
  "liveFolder": "LIVE",
  "sourceFolder": "SOURCE",
  "recordFolder": "D:\\",
  "replayFolder": {
    "sourcePath": "SOURCE\\Replay",
    "destinationPath": "D:\\Replay"
  },
  "websiteUrl": "https://app.mylivesport.fr",
  "vmixConfig": "SOURCE/vmix.config",
  "cacheFolder": "C:\\MY-LIVE-SPORT\\cache",
  "liveoutput": [],
  "group": false,
  "cacheFolderCopy": []
}

Les anciennes clés restent lues pour compatibilité, quelle que soit la casse ou les séparateurs :

Clé V2.0.0 recommandée Anciens noms encore acceptés
fileCopy copies
liveFolder Dossier_Live, dossier_live
sourceFolder Dossier_Source, dossier_source
recordFolder Dossier_Record, dossier_record
websiteUrl url
vmixConfig config_vmix
cacheFolder cache
liveoutput vMixSettings, vMixStting, VmixSetting, vMixSetting
group Trier, trier, groupe
cacheFolderCopy cacheCopies, copiesCache, copies_cache

Dans les objets internes, les nouveaux fichiers doivent utiliser les clés explicites :

Objet Clés recommandées Anciens noms encore acceptés
fileCopy[] sourcePath, destinationPath, replaceText source, destination, textReplacements, replacements
cacheFolderCopy[] sourcePath, destinationPath source, destination
replayFolder sourcePath, destinationPath source, destination

Champ déprécié : downloadOnly

downloadOnly, downloadonly et download_only sont dépréciés. Ces clés ne doivent plus être utilisées dans les nouveaux fichiers .appsport.

AppSport ne les expose plus dans l'interface et réécrit les fichiers sauvegardés sans cette clé. Pour gérer le comportement attendu, utilisez generator pour distinguer un projet source d'un projet généré/live, et liveoutput[0].software: "none" si aucun moteur local ne doit être piloté.

Réglages live output

Le bloc liveoutput définit le moteur de sortie contrôlé par AppSport. Il peut cibler vMix, CasparCG ou rester désactivé avec none.

Exemple vMix

"liveoutput": [
  {
    "software": "vmix",
    "electronTransport": "tcp",
    "IP": "127.0.0.1",
    "port": "8088",
    "httpPort": "8088",
    "tcpPort": "8099",
    "multiViewInput": 0,
    "previousProgram": -1,
    "previousPreview": -1,
    "refreshInterval": 10000,
    "reconnectDelay": 2000
  }
]

Exemple CasparCG

"liveoutput": [
  {
    "software": "casparcg",
    "IP": "127.0.0.1",
    "casparcgAmcpPort": "5250",
    "refreshInterval": 10000,
    "reconnectDelay": 2000
  }
]
Champ Rôle
software Moteur de sortie : vmix, casparcg ou none.
electronTransport Transport vMix utilisé par AppSport : tcp recommandé, http possible.
IP Adresse du poste vMix ou CasparCG. Utiliser 127.0.0.1 si AppSport tourne sur la même machine.
port Alias historique du port HTTP vMix.
httpPort Port API HTTP vMix, souvent 8088.
tcpPort Port API TCP vMix, souvent 8099.
casparcgAmcpPort Port AMCP CasparCG, souvent 5250.
multiViewInput Input vMix utilisé pour suivre le multi-view si le workflow le prévoit.
previousProgram / previousPreview Derniers états connus, conservés par AppSport.
refreshInterval Intervalle de rafraîchissement lorsque le moteur n'est pas encore connecté.
reconnectDelay Délai entre deux tentatives de reconnexion.

En mode navigateur distant, le navigateur ne contacte pas directement vMix ou CasparCG. Il sélectionne un client AppSport connecté au moteur de sortie, puis lui envoie les actions live.

Détail des clés

generator

  • Type : booléen recommandé (true ou false) ; valeurs historiques acceptées : "1", "0", 1, 0
  • Description : définit le mode du fichier .appsport.
Valeur Effet
false ou 0 Projet source : le bouton de génération de match reste disponible.
true ou 1 Projet généré/live : le bouton de génération est masqué et l'export live local est actif.

AppSport normalise cette valeur en interne pour conserver la compatibilité avec les anciens fichiers qui utilisaient "0" et "1".

fileCopy

  • Type : tableau d'objets
  • Description : liste les fichiers à copier depuis le projet source vers le dossier live.

Champs :

  • sourcePath : chemin du fichier modèle.
  • destinationPath : nom du fichier généré, avec placeholders possibles.
  • replaceText : dictionnaire optionnel de chaînes à rechercher/remplacer dans le fichier copié.

Les anciennes clés source, destination, textReplacements et replacements restent lues pour les projets existants. Les nouveaux fichiers sauvegardés par AppSport écrivent sourcePath, destinationPath et replaceText.

Exemple :

"fileCopy": [
  {
    "sourcePath": "SOURCE\\BASE-{{championship}}-V0.vmix",
    "destinationPath": "{{championship_code}}_{{day_code}}_{{home_nom_score_bug}}-{{away_nom_score_bug}}.vmix",
    "replaceText": {
      "ingest_{{championship}}_test": "ingest_{{championship}}_{{home_nom_score_bug}}",
      "<url>file:///C:/SOURCE/TEST.json</url>": "<url>file:///{{liveFolder}}\\export-vmix.json</url>"
    }
  },
  {
    "sourcePath": "SOURCE\\TEMPLATE RESUME {{championship}}.prproj",
    "destinationPath": "TEMPLATE RESUME {{championship}}.prproj"
  }
]

html

  • Type : objet
  • Description : valeurs injectées dans l'interface AppSport ou dans certains templates.

Exemple :

"html": {
  "com1_name": "Nom commentateur"
}

liveFolder, sourceFolder, recordFolder

  • Type : chaînes
  • Description : dossiers de travail du projet.
Clé Usage
liveFolder Dossier de travail du direct, souvent LIVE.
sourceFolder Dossier des modèles, médias et fichiers source, souvent SOURCE.
recordFolder Dossier d'enregistrement vidéo.

replayFolder

  • Type : objet
  • Description : dossiers utilisés pour les replays.
"replayFolder": {
  "sourcePath": "SOURCE\\Replay",
  "destinationPath": "D:\\Replay"
}

Les anciennes clés source et destination restent acceptées en lecture.

websiteUrl

  • Type : chaîne
  • Description : page ouverte par AppSport au chargement du projet. Elle peut pointer vers l'accueil MY-LIVE-SPORT, une liste de clubs, un match ou une page de contrôle.
"websiteUrl": "https://app.mylivesport.fr"

vmixConfig

  • Type : chaîne
  • Description : chemin vers le fichier de configuration vMix du projet.
"vmixConfig": "SOURCE/vmix.config"

cacheFolder

  • Type : chaîne
  • Description : dossier local de cache utilisé par AppSport pour les fichiers temporaires et certaines images générées.
  • Fallback : quand le client crée ou vérifie ce dossier, il ajoute automatiquement EMPTY.png, un PNG transparent utilisé comme image vide locale.

group

  • Type : booléen
  • Description : active le regroupement des joueurs dans les exports live output. Les joueurs de terrain sont regroupés, et le staff est replacé après les remplaçants configurés.
"group": true

cacheFolderCopy

  • Type : tableau d'objets
  • Description : dossiers à répliquer dans le cache si le projet en a besoin.

Champs :

  • sourcePath : dossier source à copier.
  • destinationPath (optionnel) : destination relative au cacheFolder. Les placeholders sont acceptés. Si ce champ est absent, AppSport copie vers le dossier de cache du championnat courant.

Les anciennes clés source et destination restent lues pour les projets existants.

"cacheFolderCopy": [
  {
    "sourcePath": "SOURCE\\Replay",
    "destinationPath": "{{championship_id}}\\Replay"
  }
]

Placeholders disponibles

Les fichiers .vmix, .prproj ou autres modèles peuvent contenir des placeholders remplacés par AppSport au moment de la génération.

Exemples courants :

  • {{day_code}}
  • {{home_nom_score_bug}}
  • {{away_nom_score_bug}}
  • {{championship}}
  • {{championship_code}}
  • {{recordFolder}}
  • {{liveFolder}}
  • {{sourceFolder}}
  • {{broadcast}}

Les anciens placeholders {{Dossier_Record}}, {{Dossier_Live}} et {{Dossier_Source}} restent acceptés pour les templates existants.

Gestion de projet dans AppSport

Nouveau projet

Le menu Fichier > Nouveau Projet ou le raccourci Ctrl+N crée une structure prête à l'emploi :

MonProjet/
├── cache/
├── source/
├── live/
├── record/
└── MonProjet.appsport

Le fichier .appsport généré contient déjà les dossiers du projet, l'URL MY-LIVE-SPORT, generator, group désactivé, et un bloc liveoutput vMix local.

Ouvrir un projet

Le menu File > Open project ou le raccourci Ctrl+O charge un fichier .appsport existant et recharge l'interface avec ses réglages.

Modifier les chemins et le live output

Utilisez Configuration > AppSport settings pour modifier les dossiers, Generator, le groupement, la connexion vMix/CasparCG, les ports et les règles de copie.

L'interface AppSport propose maintenant des éditeurs guidés pour :

  • fileCopy : sélection du fichier source, saisie de la destination et ajout de replaceText ;
  • cacheFolderCopy : sélection du dossier source et saisie de la destination de cache.

Le mode JSON avancé reste disponible pour les cas complexes, mais le format sauvegardé utilise les clés sourcePath, destinationPath et replaceText.

Bonnes pratiques

  • Valider le JSON avant un direct.
  • Utiliser les clés V2.0.0 recommandées dans les nouveaux fichiers.
  • Garder les anciens noms uniquement pour les projets historiques.
  • Organiser les modèles dans source/, les fichiers générés dans live/ et les enregistrements dans record/.
  • Tester la connexion live output depuis AppSport avant de piloter depuis un navigateur.
  • Garder port et httpPort alignés pour les anciens projets vMix.
  • Utiliser Aide > Envoyer les logs pour produire un diagnostic en cas de problème.