Skip to content

📘 Documentation du fichier config.appsport

Ce document décrit la structure et les fonctions du fichier de configuration utilisé pour automatiser la duplication et la personnalisation de projets vMix, Premiere Pro, et autres fichiers liés à la production vidéo.

Grace à ce software vous pouvez utiliser un seul fichier de base (template) et le dupliquer en remplaçant automatiquement les variables par des valeurs spécifiques à chaque match ou événement sportif. De plus, il permet de donner accès à API vmix pour gérer les titres graphiques en temps réel.

🔧 Download software : AppSport

Attention : Ce fichier doit être au format JSON valide. Utilisez un validateur JSON en ligne comme jsonlint.com pour vérifier la syntaxe. Note : Les chemins de fichiers doivent être absolus ou relatifs au dossier de travail.

Les dossiers et fichiers doivent être placés comment indiqué dans la section Structure des fichiers.

🔧 Structure générale

{
  "generator": "0",
  "copies": [...],
  "html": {...},
  "Dossier_Live": "LIVE",
  "Dossier_Source": "SOURCE",
  "Dossier_Record": "D:\\",
  "Dossier_Replay": {...},
  "url": "...",
  "config_vmix": "...",
  "cache": "...",
  "VmixSetting": [...],
  "downloadonly": true,
  "copies_cache": [...]
}

🧹 Détail des clés

generator

  • Type : string
  • obligatoire : oui
  • Description : identifiant du générateur ou version (utilisé par un script pour déterminer le comportement attendu).

copies

  • Type : tableau d’objets
  • Description : liste des fichiers à copier et personnaliser.
  • Champs internes :

  • source : chemin du fichier source à copier.

  • destination : nom du fichier de destination, avec des variables à remplacer.
  • replacements (optionnel) : dictionnaire de chaînes à rechercher et à remplacer dans le contenu du fichier copié.

Exemple :

  "copies": [
    {
      "source": "SOURCE\\BASE-{{championship}}-V0.vmix",
      "destination": "{{championship_code}}_{{day_code}}_{{home_nom_score_bug}}-{{away_nom_score_bug}}.vmix",
      "replacements": {
        "ingest_{{championship}}_test": "ingest_{{championship}}_{{home_nom_score_bug}}",
        "<Filename>C:\\\\REC1\\\\capture.mp4": "<Filename>{{Dossier_Record}}\\2025-2026-{{championship_code}}-{{day_code}}-{{home_nom_score_bug}}-{{away_nom_score_bug}}-LIVE.mp4"
      }
    },
    {
      "source": "SOURCE\\TEMPLATE RESUME {{championship}}.prproj",
      "destination": "TEMPLATE RESUME {{championship}}.prproj"
    }
  ],

html

  • Type : objet
  • Description : données à injecter dans un template HTML ou pour une interface.
  • Exemple : { "com1_name": "Name COM" }

Dossier_Live, Dossier_Source, Dossier_Record

  • Type : chaînes (string)
  • Description : chemins de travail définissant où sont les dossiers LIVE, SOURCE, et enregistrements (Record).

#### Exemple : json "Dossier_Live":"LIVE", "Dossier_Source":"SOURCE", "Dossier_Record":"D:\\",

Dossier_Replay

  • Type : objet
  • Champs :

  • source : dossier source des replays

  • destination : dossier de destination des fichiers de replay

#### Exemple :

  "Dossier_Replay":
  {
    "source":"SOURCE\\Replay",
    "destination":"D:\\Replay"
  },

url

  • Type : chaîne
  • Description : API distante à interroger pour obtenir les informations de club ou de championnat.

#### Exemple :

  "url": "https://google.fr",

config_vmix

  • Type : chaîne
  • Description : chemin vers un fichier de configuration spécifique pour vMix.

#### Exemple :

  "config_vmix":"SOURCE/vmix.config",

cache

  • Type : chaîne
  • Description : chemin local pour stocker des fichiers de cache temporaires.

#### Exemple :

 "cache":"C:\\FFF National\\cache",

vMixSetting

  • Type : tableau d’objets
  • Description : paramètres de connexion et de contrôle pour vMix.
  • Champs :

  • IP

  • port
  • multiViewInput
  • previousProgram
  • previousPreview
  • refreshInterval

#### Exemple :

"vMixSettings": [
  {
    "IP": "127.0.0.1",
    "port": "8088",
    "multiViewInput": 0,
    "previousProgram": -1,
    "previousPreview": -1,
    "refreshInterval": 10000
  }
]

downloadonly

  • Type : booléen (true ou false)
  • Description : si true, les fichiers seront uniquement téléchargés sans traitement local.

#### Exemple :

"downloadonly": true

Trier

  • Type : booléen (true ou false)
  • Description : si true, les players seront trier par leurs numero.

#### Exemple :

"Trier": true

copies_cache

  • Type : tableau d’objets
  • Description : réplique le dossier Replay dans le cache si nécessaire.
  • Champs :

  • source : dossier à copié dans le cache.

#### Exemple

  "copies_cache": [
    {
      "source": "SOURCE\\Replay"
    }
  ]

🔀 Remplacement de variables

Les fichiers .vmix, .prproj ou autres peuvent contenir des placeholders (ex. {{championship}}) qui seront remplacés automatiquement par les valeurs définies dans le contexte d'exécution ou via les entrées utilisateur.

Exemples de placeholders :

  • {{day_code}}
  • {{home_nom_score_bug}}
  • {{away_nom_score_bug}}
  • {{championship}}
  • {{championship_code}}
  • {{Dossier_Record}}
  • {{broadcast}}

✅ Bonnes pratiques

  • Toujours valider le fichier JSON avec un validateur comme jsonlint.com.
  • Organiser les chemins avec des barres doubles \\ sur Windows.
  • Utiliser des noms de variables cohérents entre les templates et la configuration.