That is a plain ridiculous argument. Chromium and Safari can recognise plenty of invalid URLs and fix them up. It's obvious if you write an URL with a white space and it gets magically encoded into %20. Even VLC can (and needs to) do that. That does not make those URLs valid.
And we even checked in an earlier discussion that wget and curl don't even agree with one another on that topic.
Yes some softwares fix invalid URLs, but if the same URL got recognized in many different softwares but one, it definitely says something.
Which is why my following argument is to look at URL standards. There can be implementation differences and undefined behaviors, but when we have a standard, it's best to start from there.
The HTTP Standard doesn't specify any special level of encoding on the URL. The URI Standard only requires percent-encoding when it creates ambiguity. Those :, [ and ] characters in the Location URI doesn't create ambiguity for parsing it as an URI-reference component.
If you can't cite from some standard to prove the invalidity of the URL, then it seems to be a valid bug in VLC's URL parsing logic.
There is no such thing as level of encoding for an URL. The HTTP specification cannot require something that does not exist. Only individual URI components can be encoded or not, but Location is carrying a whole URL, not a single component.
A percent-encoding mechanism is used to represent a data octet in a component when that octet's corresponding character is outside the allowed set or is being used as a delimiter of, or within, the component.
You can either escape ONLY when the character creates parsing ambiguity, or you can escape WHENEVER you encounter an Reserved Character. That's what I meant by level of encoding. Both practice are valid according to the above standard.
What's important is, other popular networking software like Chrome, Safari, and curl, don't treat this URL as invalid, and works properly. Which is enough for us to ask for understanding why VLC behaves differently, and how can we make it support properly.
And this time VLC resognized the URL and is able to follow. This confirmed that it's a valid bug in VLC's URL parsing code, unless you can provide standard citations to prove the original URL was invalid.
It only confirms that it's caused by the brackets. Whether it's a bug in VLC or in the server is a matter of interpretation. (People like to think by bug-compatibility rather than specification, but that goes nowhere: you could blame nginx for breaking VLC or VLC for breaking nginx.)
Insofar as it does not really break anything, I don't really care. VLC already accepts : in the path part anyway.