Pinterest URL Normalizer for Elixir

Copy Markdown View Source

Parse, classify, and normalize Pinterest URLs without network requests. The package uses an exact Pinterest host allowlist and rejects lookalike domains, credentials, non-HTTPS URLs, encoded paths, and non-standard ports.

Installation

Add pinterest_url_normalizer to your dependencies:

def deps do
  [
    {:pinterest_url_normalizer, "~> 0.1.1"}
  ]
end

Usage

PinterestUrlNormalizer.normalize(
  "https://www.pinterest.co.uk/pin/example--123456789/?utm_source=test"
)
# "https://www.pinterest.com/pin/123456789/"

Supported URL classes are Pin, pin.it short link, profile, board, and Ideas. This package does not download media or make network requests. For a browser tool that handles the next image step, use the Pinterest image downloader.

MIT licensed.