I know firefox has the very useful “Copy clean Link” option in the context menu, but I would like a similar feature for copying links from any other software, like spotify for example. So I am looking for some software that hooks into the clipboard pipeline, and cleans any URL that gets added. I tried googling for something like it, but was completely unsuccessful. Does anyone have a clue how I might go about achieving this?

Thanks in advance :)

Edit: I found out about klipper’s actions, which provide the option to run a command when a string that matches a regex is added to the clipboard buffer. I am not sure how to properly use this though, so any help is appreciated!

  • enkers@sh.itjust.works
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    5 hours ago

    That’d be cool. Whenever I’m sharing a YT link, I’m always a bit suspicious of what info the youtu.be URL is hiding, so I paste it into a browser to get a clean URL.

    Maybe this is silly, but I’d be cool to do that automatically.

    • ivn@jlai.lu
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 minutes ago

      Well for youtube it’s quite easy, there are only 4 useful parameters that I can think of, the video id v, the playlist id list and index if it’s a playlist and the time t if you’re sending a specific time in the video. Everything else can be removed. Here’s what uBlock Origin with the AdGuard URL Tracking filter list:

      ! Youtube
      $removeparam=embeds_referring_euri,domain=youtubekids.com|youtube-nocookie.com|youtube.com
      $removeparam=embeds_referring_origin,domain=youtubekids.com|youtube-nocookie.com|youtube.com
      $removeparam=source_ve_path,domain=youtubekids.com|youtube-nocookie.com|youtube.com
      ||youtube.com^$removeparam=pp
      
  • JubilantJaguar@lemmy.world
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    4 hours ago

    You never define “clean”.

    To strip excess URL parameters (i.e. beginning “&”, almost certainly junk) if the clipboard buffer contains a URL and only a URL (Wayland only):

    if url=$(printf '%s' "$(wl-paste --no-newline | awk '$1=$1' ORS=' ')" | egrep -o 'https?://[^ ]+') ; then
      wl-copy "${url%%\&*}"
    fi
    
    • enkers@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      2 hours ago

      Edit: Oh, OP basically already said the same thing.

      I think it really depends on the website and even where you are on the website. For example, if you’re on YT, the watch?v=<b64_id> is probably not something you want to throw away. If you’re on a news site like imaginarynews.com/.../the-article-title/?tracking-garbage=<...> then you probably do. It’s just a matter of having “sane” defaults that work as most people would expect.

      • JubilantJaguar@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        52 minutes ago

        Sure, but my script only gets rid of the second and later parameters, i.e. ones with & not ?. Personally I don’t think I’ve ever seen a single site where an & param is critical. These days there few where the ? matters either, but yes YT is a holdout.

    • silly goose meekah@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      ·
      3 hours ago

      Fair enough, I haven’t given that too much thought myself until now. After playing around with Firefox’s URL cleaning, I realized there are some parameters I want to keep. So, by clean I mean removing all unnecessary parameters in the URL.

      For example, https://youtu.be/jNQXAC9IVRw would become https://youtu.be/jNQXAC9IVRw, but https://www.youtube.com/watch?v=jNQXAC9IVRw keeps it’s parameter, because it is necessary.

      I guess replicating the logic for deciding which parameters to keep is not trivial, so the easiest solution is probably just manually pasting links into firefox, and just copying them cleanly from there. Thanks for providing some code, though!

    • traches@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      Query parameters are junk? They have tons of legitimate uses, they’re one of the better places to keep state.

    • Flagstaff@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 hours ago

      It rarely ever does anything in my experience.

      Anyway, I built a URL-cleaning script in AutoHotkey, but that’s Windows-only; I, too, am on the hunt for a Linux equivalent. Maybe this could be done in SikuliX or Espanso, via a Python script, but I suck at Python so far.

      • cmnybo@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        It’s never worked for me either. The ClearURLs addon has a function to copy a clean URL and that works great though. It’s open source, so maybe someone could turn its cleaning function into a program that could be used for the clipboard.

        • Flagstaff@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 hour ago

          Hmm. Thanks, though I’m seeking universal /offline so if I get URLs in other platforms, I won’t have to turn to the browser to purge them of junk. Or maybe this could be converted into a standalone program…