{"adoption": {"forks": 75, "observed_at": "2026-08-28T04:06:57.287241+00:00", "stars": 2509}, "canonical_url": "https://ross.abutalabs.com/products/kyoo", "card": {"archived": false, "artifact_type": "application", "description": "A portable and vast media library solution.", "domain": ["media", "self-hosted", "entertainment", "web-development"], "enriched": true, "function": ["streaming", "video-processing", "self-hosted", "http-server", "auth"], "health_score": 100, "homepage": "https://kyoo.zoriya.dev", "language": "TypeScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["zoriya/Kyoo"], "name": "zoriya/Kyoo", "platform": ["self-hosted", "browser", "cross-platform"], "pushed_at": "2026-08-26T21:58:53+00:00", "repo": "zoriya/Kyoo", "stars": 2509, "tags": ["media-server", "jellyfin-alternative", "plex-alternative", "transcoding", "ffmpeg", "movies", "tv-series", "anime", "metadata-scanning", "oidc", "helm-chart", "subtitles", "react-native", "hardware-transcoding", "video", "docker", "kubernetes", "web-server", "android"], "topics": ["mediabrowser", "ffmpeg", "next", "python", "react-native", "docker", "self-hosted", "golang", "jellyfin", "netflix", "plex"], "urls": [], "use_cases": ["self-host a movie and tv show library", "plex alternative i can run on my own server", "media server that doesn't need organized folder names", "stream my anime collection to my tv and phone", "serve videos with automatic quality switching", "host a jellyfin alternative with better metadata matching", "transcode my media library on the fly for remote viewing"], "what_it_is": "Kyoo is a self-hosted media server for movies, series, and anime, positioned as an alternative to Jellyfin and Plex. It automatically scans and identifies media without requiring folder structures or manual metadata edits, and provides dynamic transcoding, a web client, and mobile apps.", "when_to_avoid": ["You rely on a plugin ecosystem, since Kyoo deliberately has no plugin system and keeps everything built-in", "You need music, photo, or live TV support rather than video-only content", "You need offline downloads or watch-list syncing today, as these are not yet reimplemented in v5", "You prefer a long-stable, battle-tested server like Plex or Jellyfin over a younger project"], "when_to_choose": ["You want a self-hosted video library with zero folder-structure or naming requirements", "You need dynamic transcoding with adaptive bitrate streaming up to original quality", "You want built-in intro/credit detection, subtitle styling (ASS/SSA, PGS), and preview thumbnails without plugins", "You deploy on Kubernetes and want an official Helm chart with OIDC login support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kyoo", "repo": "zoriya/Kyoo", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "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:57.287241+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.287241+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:26:31.594179+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a121d80512ecc520aa1b1688283024bb7fee838418fd4a21dac64b38f472b47", "fetched_at": "2026-08-28T04:06:57.287241+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoriya/Kyoo"}, {"content_hash": "669140a23b316f62060a9c6fef2424f2bd83007c9a7354eb75f23d930e6d90f6", "fetched_at": "2026-08-29T10:08:50.431287+00:00", "kind": "homepage", "missing": false, "url": "https://kyoo.zoriya.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2587, "days_push": 7, "days_rel": 52, "gap_med": 123, "n_releases_24m": 4}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}