{"adoption": {"forks": 201, "observed_at": "2026-08-28T04:06:05.152593+00:00", "stars": 2012}, "canonical_url": "https://ross.abutalabs.com/products/iptv-checker", "card": {"archived": false, "artifact_type": "application", "description": "IPTV checker tool for Docker && CMD, check your playlist is available", "domain": ["media", "developer-tools", "self-hosted", "networking"], "enriched": true, "function": ["http-client", "developer-tools", "cli", "monitoring", "data-science"], "health_score": 96, "homepage": null, "language": "Makefile", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["zhimin-dev/iptv-checker"], "name": "zhimin-dev/iptv-checker", "platform": ["self-hosted", "cli", "cross-platform"], "pushed_at": "2026-07-24T03:25:18+00:00", "repo": "zhimin-dev/iptv-checker", "stars": 2012, "tags": ["iptv", "m3u-playlist", "m3u8", "playlist-validation", "ffmpeg", "epg", "stream-checker", "web-ui", "tauri", "automation", "docker", "web-server"], "topics": ["iptv-checker", "iptv-playlist", "iptv-m3u8", "iptv-m3u", "docker-image", "react", "rust", "tauri-app"], "urls": [], "use_cases": ["check if my iptv m3u playlist links are still working", "filter dead channels out of an m3u8 playlist", "periodically validate iptv sources and remove unavailable streams", "export only working ipv4 or ipv6 channels from a playlist", "run playlist quality checks automatically in ci/cd", "manage iptv playlist checks through a web dashboard"], "what_it_is": "A high-performance IPTV playlist checker that validates whether channels in M3U/M3U8/TXT playlists are available, deployable via Docker or CLI. It includes a web management UI, HTTP plus FFmpeg-based detection, scheduled background tasks, and export of working IPv4/IPv6 channel lists.", "when_to_avoid": ["you need to actually play or record IPTV streams rather than check availability", "you want a lightweight script without Docker or a web backend", "you need a full IPTV player or EPG viewer rather than a checker"], "when_to_choose": ["you need to validate large M3U/M3U8/TXT playlists and prune dead streams", "you want a self-hosted Docker service with a web UI and scheduled checks", "you need accurate results combining HTTP checks with FFmpeg stream verification", "you want to export cleaned playlists split by IPv4/IPv6 or resolution"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/iptv-checker", "repo": "zhimin-dev/iptv-checker", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.152593+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:01:03.751596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dcdd801d530419a7f56abc9706c7e94b1cdb6c6ceb109c634391faf6108aa73b", "fetched_at": "2026-08-28T04:06:05.152593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhimin-dev/iptv-checker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 94}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1660, "days_push": 40, "days_rel": 40, "gap_med": 20.5, "n_releases_24m": 21}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}