Remapping UVs to a partial hemisphere for texture mapping

I am trying to map a video to a partial hemisphere.

FULL HEMISPHERE

        const geo = new THREE.SphereGeometry( 
            10, 
            32,16, 
            0,Math.PI
        );       
        geo.rotateY(Math.PI);  

If I map a video to a perfect (180’) hemisphere it works fine:

PARTIAL HEMISPHERE

        const geo = new THREE.SphereGeometry( 
            10, 
            32,16, 
            0,Math.PI*2,
            0,((Math.PI/2)*0.8)
        );       
        geo.rotateX(-Math.PI/2);   

If I create a partial hemisphere (less that 180’) that requires thetaStart and thetaEnd of the sphere Geometry, the video is now mapping radially:

Is there an easy way to fix this?

Perhaps swapping the UV coordinates? (or just remapping them to any function you want…)

let uvs=geometry.attributes.uv.array;
for(let i=0;i<uvs.length;i+=2){
let swp=uvs[i]
uvs[i]=uvs[i+1];
uvs[i+1]=swp;
}