I have a similar scriptlet that I use to open YouTube URLs in mpv, using just and wl-clipboard... I just copy the URL and press my G1 key (it has a keybind of just yt-paste attached) which launches the yt-paste snippet below, reads the url from the clipboard, parses it and passes it to mpv.
# Parse the clipboard for YouTube URLs and open them in mpv
yt-paste:
#!/usr/bin/env bash
YOUTUBE_URL_REGEX="^https:\/\/(www\.youtube\.com\/watch\?v=|youtu\.be\/)[a-zA-Z0-9_-]{11}"
YOUTUBE_PLAYLIST_URL_REGEX="^https:\/\/(www\.youtube\.com\/playlist\?list=)[a-zA-Z0-9_-]+"
YOUTUBE_SHORTS_URL_REGEX="^https:\/\/(www\.youtube\.com\/shorts\/)[a-zA-Z0-9_-]{11}"
# Youtube URL
if [[ "$(wl-paste)" =~ $YOUTUBE_URL_REGEX ]]; then
echo "Opening valid YouTube URL" >&2
notify-send --app-name="YT-Paste" --icon=mpv --transient "Opening YouTube URL"
mpv "$(wl-paste)"
# Youtube Playlist URL
elif [[ "$(wl-paste)" =~ $YOUTUBE_PLAYLIST_URL_REGEX ]]; then
echo "Opening valid YouTube Playlist URL" >&2
notify-send --app-name="YT-Paste" --icon=mpv --transient "Opening YouTube Playlist URL"
mpv "$(wl-paste)"
# Youtube Short URL
elif [[ "$(wl-paste)" =~ $YOUTUBE_SHORTS_URL_REGEX ]]; then
echo "Opening valid YouTube Shorts URL" >&2
notify-send --app-name="YT-Paste" --icon=mpv --transient "Opening YouTube Shorts URL"
mpv "$(wl-paste)"
# No Match
else
echo "Clipboard does not contain a valid YouTube URL" >&2
notify-send --app-name="YT-Paste" --icon=mpv --transient "Whoops!" "Clipboard does not contain a valid YouTube URL"
exit 1
fi