{"adoption": {"forks": 293, "observed_at": "2026-08-28T04:03:36.631452+00:00", "stars": 1107}, "canonical_url": "https://ross.abutalabs.com/products/iptv-tool", "card": {"archived": false, "artifact_type": "application", "description": "IPTV工具箱， Docker🐳部署，支持EPG管理、直播源管理、台标管理，兼容DIYP/百川、超级直播及xmltv格式。", "domain": ["media", "self-hosted"], "enriched": true, "function": ["http-server", "api-framework", "caching", "scheduling", "proxy"], "health_score": 79, "homepage": "https://hub.docker.com/r/taksss/php-epg/", "language": "PHP", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["taksssss/iptv-tool"], "name": "taksssss/iptv-tool", "platform": ["self-hosted"], "pushed_at": "2026-08-17T04:58:34+00:00", "repo": "taksssss/iptv-tool", "stars": 1107, "tags": ["iptv", "epg", "m3u", "xmltv", "live-sources", "channel-logos", "diyp", "tvbox", "php", "automation", "docker", "linux", "web-server"], "topics": ["diyp", "epg", "iptv", "xmltv-epg-data", "php", "docker", "docker-compose", "icon", "logo", "tv", "iptv-m3u", "iptv-sources", "iptv-tools"], "urls": [], "use_cases": ["generate xmltv epg matching my m3u playlist", "manage iptv live sources and merge txt and m3u playlists", "serve epg for diyp or baichuan apps", "manage tv channel logos with fuzzy matching", "proxy and speed-test iptv streams", "schedule automatic epg updates in docker"], "what_it_is": "A self-hosted IPTV toolbox deployed via Docker that manages EPG (electronic program guide) data, live source playlists (TXT/M3U), and channel logos. It serves DIYP/Baichuan, Super Live, and XMLTV formats with channel matching, speed testing, proxying, and access control.", "when_to_avoid": ["you need a full IPTV player or streaming server rather than EPG/source management", "you want a managed cloud service instead of self-hosting", "your stack is not Docker/Linux based"], "when_to_choose": ["you run IPTV players like DIYP, Baichuan, Super Live, or tvbox and need EPG/logos", "you want to aggregate, validate, and proxy M3U/TXT live source playlists", "you need a lightweight Docker-deployed EPG server with xmltv output"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/iptv-tool", "repo": "taksssss/iptv-tool", "role": "main", "score": 68}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "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:03:36.631452+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.631452+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:44:05.642851+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01f6a56c695ffde0c44db5f23cc8eff6d71d875ce417cb75e5bb28128afd3cdc", "fetched_at": "2026-08-28T04:03:36.631452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taksssss/iptv-tool"}, {"content_hash": "26ca90977ddd453fa0670bad3028f8f715c66178863e115d5cbf51d262c4f411", "fetched_at": "2026-08-29T12:47:35.078062+00:00", "kind": "homepage", "missing": false, "url": "https://hub.docker.com/r/taksss/php-epg/"}, {"content_hash": "caaa1889270949b0dec2cbfb5347bb93a8ce064a44aa2d73201285962d9a5c39", "fetched_at": "2026-08-29T12:47:35.087273+00:00", "kind": "site_page", "missing": false, "url": "https://docs.docker.com/docker-hub"}, {"content_hash": "aeada2272712c65d65bbe6316fb255dd367d06dcbaa36f1c83e4fc89b72d17e9", "fetched_at": "2026-08-29T12:47:35.091846+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/docs"}, {"content_hash": "05ab59b2bc29b60c273ffb38071500937debca57192a252fd6efb0b1d08c33ad", "fetched_at": "2026-08-29T12:47:35.094081+00:00", "kind": "site_page", "missing": false, "url": "https://www.docker.com/company"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 56, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 784, "days_push": 16, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 68, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}