crispy-iptv-tools 0.1.1

IPTV playlist utilities: filter, merge, dedup, normalize
Documentation
# crispy-iptv-tools

Reusable IPTV playlist utility crate for transformation, normalization, cleanup, and sorting.

## What This Crate Is

`crispy-iptv-tools` sits on top of `crispy-iptv-types` and provides the reusable data-munging operations that are common in IPTV ingestion pipelines.

## What It Provides

- deduplication
- filtering
- merging
- normalization
- sorting
- resolution detection helpers
- image and stream URL sanitization
- UDPXY helpers
- template application
- title and ID unification helpers

## Installation

```toml
[dependencies]
crispy-iptv-tools = "0.1.1"
```

MSRV: Rust `1.85`

## Quick Start

```rust
use crispy_iptv_tools::{deduplicate, DeduplicateStrategy};
use crispy_iptv_types::PlaylistEntry;

let items: Vec<PlaylistEntry> = Vec::new();
let _deduped = deduplicate(&items, DeduplicateStrategy::ByUrlHash);
```

## Typical Uses

- playlist cleanup
- normalization before import
- merging multiple provider feeds
- preparing playlists for export

## Related Crates

- `crispy-iptv-types`
- `crispy-m3u`

## Current Limitations

- utility coverage is intentionally focused on playlist operations; this crate is not a provider client
- caller still owns persistence and orchestration

## License

See `LICENSE.md` and `NOTICE.md`.