

Plex does this on its own. It’s one of the features they provide. The client/service knows when the server is local even though you go outside to make the initial connection. They go through a lot of trouble to do this. You connect externally it brokers the initial connection proxies date of back and forth to see if you can talk to each other directly, your client knows your server is now local and it switches over.
I don’t know if any other video hosting package that does this. Jellyfin certainly would not. I ‘think’ if you threw a tailscale in the middle, It would be able to do it without hair pinning as long as you were using a local exit node instead of tailnet. They’d still probably go through that local exit node.
Yup, there are few efficient ways to handle that, so anything that does it looks something like everything else that handles it.
Sadly, not many things handle it :)