Pinterest URL Normalizer for Elixir

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.0"}
]
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 an online Pinterest downloader, use SavePinner.

MIT licensed.