Imo, only services that require a VPN exit node should use a VPN exit node.
https://github.com/qdm12/gluetun
Is a well known VPN container that people use, and works with ProtonVPN.
I don't know anything about how to do this, but a cursory search for "gluetun qbitorrent docker" suggests that gluetun gets network: "host". Any container that has to use a VPN exit node gets network_mode: "service:gluetun". A depends_on: {gluetun details} style option will ensure that any service that should use a VPN exit node will not run unless gluetun is running.
Then it's getting the data out of the qbittorent container into whatever you are using as a media server.