Online CasparCG.config validator - check your config file

Hi all,

We often have issues here and on Github that are related to invalid config files and users often mistakenly use sections of the examples at the end of config file.

I put together a simple online validator for CasparCG config files. You can drag-and-drop the file on the textarea or copy paste in your config to have it validated. You can also run examples of invalid and valid configs.

CasparCG config file validator

For now it validates XML, verifies that only known tags are used, checks if user is using example code, verifies values of some tags (video-mode, log-level, protocols). Summary with the number of channels and configured outputs is printed if the config is valid.

The validation is all contained within a single HTML file. Source is here: GitHub: hreinnbeck/casparcg-config-validator. All ideas and contributions to the validator would be greatly appreciated.

Cheers,
Hreinn

13 Likes

Thank you! really nice and helpful!!!

1 Like

This is AMAZING! Great effort for all users. Thanks for that!

1 Like

Thanks.

On a side note: I’m a bit embarrassed I didn’t think of it at the start, but since it’s all contained within the single HTML file, it will actually run locally in a browser, so could in the future simply be included with CCG downloads.

2 Likes

Just did some updates. Now validates just about all possible tags. Without any further ideas or notes, I’d say this is complete for the moment.

1 Like

This is really cool! Thanks for making the effort

1 Like

Struggling to enable NDI output. Please help!

Please explain, what you already tried and, at least post your caspar.config (using the </> button to format).

Hi hreinnbeck,

I tried to validate a simple config that I think has only 1 channel but the validator reports there’s 2 channels found…

<?xml version="1.0" encoding="utf-8"?>

<configuration>
    <paths>
        <media-path>media/</media-path>
        <log-path>log/</log-path>
        <data-path>data/</data-path>
        <template-path>template/</template-path>
    </paths>
    <lock-clear-phrase>secret</lock-clear-phrase>
    <channels>
        <channel>
            <video-mode>1080i5000</video-mode>
            <consumers>
            <decklink>
                <device>1</device>
                <embedded-audio>true</embedded-audio>
            </decklink>
            </consumers>
        </channel>
    </channels>
    <controllers>
        <tcp>
            <port>5250</port>
            <protocol>AMCP</protocol>
        </tcp>
    </controllers>
    <amcp>
        <media-server>
            <host>localhost</host>
            <port>8000</port>
        </media-server>
    </amcp>
</configuration>

result:

Config passed XML validation
First tag is: <configuration>
Found: paths
Found: paths->media-path with value: media/
Found: paths->log-path with value: log/
Found: paths->data-path with value: data/
Found: paths->template-path with value: template/
Found: lock-clear-phrase with value: secret
Found: channels
Found: channels->channel
Found: channels->channel->video-mode with value: 1080i5000
Found: channels->channel->consumers
Found: channels->channel->consumers->decklink
Found: channels->channel->consumers->decklink->device with value: 1
Found: channels->channel->consumers->decklink->embedded-audio with value: true
Found: controllers
Found: controllers->tcp
Found: controllers->tcp->port with value: 5250
Found: controllers->tcp->protocol with value: AMCP
Found: amcp
Found: amcp->media-server
Found: amcp->media-server->host with value: localhost
Found: amcp->media-server->port with value: 8000
This config has:
2 channel(s)
0 screen consumer(s)
0 system audio output(s)
1 decklink output(s)
0 bluefish output(s)
0 newtek-ivga output(s)
0 ndi output(s)
0 ffmpeg output(s)
Validation finished!

How should I interpret this?

Thank You.

You only have one channel.

Just a counting error, if there was only one channel it would count the elements of the channel (video-mode and consumers = 2). I’ve fixed it.

Ah, that’s it. Ok. :slight_smile:

Thank You.