{"adoption": {"forks": 318, "observed_at": "2026-08-28T04:05:16.101951+00:00", "stars": 1644}, "canonical_url": "https://ross.abutalabs.com/products/ksplayer", "card": {"archived": false, "artifact_type": "library", "description": "A video player for iOS、macOS、tvOS、visionOS , based on AVPlayer and FFmpeg, support HLG、HDR10、 HDR10+、Dolby Vision、Dolby Atmos、Text/Image subtitle.", "domain": ["media", "entertainment", "cross-platform"], "enriched": true, "function": ["video-processing", "audio-processing", "gui"], "health_score": 79, "homepage": "https://apps.apple.com/app/tracyplayer/id6450770064", "language": "Swift", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["kingslay/KSPlayer"], "name": "kingslay/KSPlayer", "platform": ["cpp"], "pushed_at": "2026-08-22T13:51:00+00:00", "repo": "kingslay/KSPlayer", "stars": 1644, "tags": ["video-player", "media-player", "ffmpeg", "avplayer", "swiftui", "dolby-vision", "dolby-atmos", "hdr", "subtitles", "visionos", "maccatalyst", "iptv", "streaming", "gpl-licensed", "video", "ios", "macos", "tvos", "swift"], "topics": ["swift", "ios", "macos", "ffmpeg", "avplayer", "swiftui", "tvos", "video-player", "visionos", "audio-player", "dolby", "dolby-atmos", "dolby-vision"], "urls": [], "use_cases": ["play mkv and avi files on iphone without converting", "video player with dolby vision and hdr10+ support on apple tv", "embed a video player in my swiftui ios app", "play 4k hdr videos with subtitles on mac", "stream videos from smb or webdav nas to apple vision pro", "iptv m3u8 live streaming player for ios", "video player with automatic subtitle downloads from opensubtitles"], "what_it_is": "KSPlayer is a Swift media playback framework for iOS, macOS, tvOS, visionOS, and Mac Catalyst built on AVPlayer and FFmpeg. It supports a wide range of video/audio codecs and formats including HLG, HDR10, HDR10+, Dolby Vision, Dolby Atmos, and text/image subtitles, and is also distributed as the TracyPlayer App Store app.", "when_to_avoid": ["you need an LGPL or permissively licensed player without paying for a commercial license - the default is GPL-3.0", "you target Android, Windows, or Linux - it only supports Apple platforms", "you need advanced features like AI subtitle generation, AV1 hardware decoding, or Blu-ray ISO playback on the free GPL tier"], "when_to_choose": ["you need a native Apple-platform player that handles formats AVPlayer alone cannot, like MKV, ISO, or BDMV", "you need HDR formats (HLG, HDR10, HDR10+, Dolby Vision) and Dolby Atmos support in an iOS/tvOS/visionOS app", "you want a Swift/SwiftUI player framework with FFmpeg-level codec coverage and subtitle support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ksplayer", "repo": "kingslay/KSPlayer", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "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:05:16.101951+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.101951+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:55.881182+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0872355a1f876bd6067750cf0ac15402866fff9cdb0d4ec0256858381d45b643", "fetched_at": "2026-08-28T04:05:16.101951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kingslay/KSPlayer"}, {"content_hash": "f8427b163aa99e933b2776e950dc66e037f3ec8e5fafd26427dac5a6fea9d897", "fetched_at": "2026-08-29T11:18:59.676770+00:00", "kind": "homepage", "missing": false, "url": "https://apps.apple.com/app/tracyplayer/id6450770064"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3024, "days_push": 11, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}