If anyone wants a slightly less black and white solution to this, I’ve been running a sort of compromised version for a long time with a custom script. It will only cancel the stream once per day, per user, per device, i.e. it just becomes a nuisance/reminder rather than a restriction, a user can simply restart the stream and continue about their day - it makes it possible if someone actually needs to use a lower quality profile. It also has a whitelist feature to selectively allow some users to use lower quality profiles. It wouldn’t be hard to modify it to have an additional blacklist that will force the restriction, but I haven’t needed it for any of my users (just a niggly reminder is usually enough).
You’re welcome to download it from here. It’s setup with a /scripts folder in a docker container volume mount in mind (but can be modified in the script - should be obvious enough), and just calls the JBOPS kill_stream.py script ultimately so you need to have that in the folder too. it also requires you to put {datestamp} {user} {player} {session_id} as the script argument.
The only other differences I have (not that they are breaking changes) is I use ‘Quality Profile’ instead of ‘Stream Video Resolution’ and ‘Transcode Decision’ and just set that to ‘contains 720p’ (same end result I think). And then I also do a check for ‘WAN Bandwidth’ that it’s below about 2/3 of my total upload capability that I have set under Remote Access in Plex itself, as Plex will start enforcing transcodes once you get close to using up your full upload bandwidth, and it’s obviously pretty frustrating for users to have their streams cancelled in that scenario.
Most of the differences are useful for my setup being in Australia and having ■■■■■■ internet, both on my end or the client’s end, so probably not useful for everyone but you get the idea.