Please note it doesn't work for me yet, but below my steps so far hoping it helps someone. I tried it with X11 instead of Wayland.
Also: You haven't specified your hardware, my answer might only help if you have intel graphics.
Check if HDCP is working: https://googlechrome.github.io/samples/hdcp-detection/
The kernel module mei_hdcp supports intel graphics and i915, see: https://www.kernel.org/doc/html/latest/driver-api/mei/hdcp.html)
The mei_hdcp driver acts as a translation layer between HDCP 2.2
protocol implementer (I915) and ME FW by translating HDCP2.2
negotiation messages to ME FW command payloads and vice versa.
You can get the info about your graphics card with lspci. In my case:
lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 640 (rev 06)
lspci -s 00:02.0 -vv | grep -i module
Kernel modules: i915
Ensure you have mei_hdcp module loaded:
lsmod | grep hdcp
mei_hdcp 24576 0
mei 135168 3 mei_hdcp,mei_me
Verify we use X11 and not wayland:
echo $XDG_SESSION_TYPE
x11
Set property for hdcp with xrandr for the connected screen(s) and verify:
xrandr --verbose | grep -wi connected
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm
xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"
xrandr --verbose | grep -iE "hdcp|content protection|(DP|HDMI)-|desire"
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm
HDCP Content Type: HDCP Type1
supported: HDCP Type0, HDCP Type1
Content Protection: Enabled
supported: Undesired, Desired, Enabled
To have those properties set persistently, one way is to create a file with this content:
cat /etc/X11/Xsession.d/96_enable_hdcp
xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"
You probably also need the intel hdcp service: https://github.com/intel/hdcp
The Intel(R) unified HDCP (High-bandwidth Digital Content Protection) is a user space implementation to prevent copying of digital audio & video content across digital display interfaces. It provides Linux user space implementation to enable the HDCP1.4 and HDCP2.2 protection for external digital display interfaces (HDMI/DP).
For ubuntu intel-hdcp is available as a package, I don't know if you need to build it manually for Arch Linux.
mei_hdcp
driver? See kernel.org/doc/html/latest/driver-api/mei/hdcp.html