• 0 Posts
  • 13 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle
  • 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