{"adoption": {"forks": 237, "observed_at": "2026-08-28T04:08:33.795496+00:00", "stars": 4049}, "canonical_url": "https://ross.abutalabs.com/products/llplayer", "card": {"archived": false, "artifact_type": "application", "description": "The media player for language learning, with dual subtitles, AI-generated subtitles, real-time translation, and more!", "domain": ["education", "machine-learning"], "enriched": true, "function": ["speech-recognition", "ocr", "nlp", "video-processing", "llm-inference"], "health_score": 94, "homepage": "https://llplayer.com", "language": "C#", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["umlx5h/LLPlayer"], "name": "umlx5h/LLPlayer", "platform": ["windows"], "pushed_at": "2026-07-19T12:20:10+00:00", "repo": "umlx5h/LLPlayer", "stars": 4049, "tags": ["media-player", "language-learning", "whisper", "dual-subtitles", "real-time-translation", "yt-dlp", "wpf", "subtitle-generation", "natural-language-processing", "video", "desktop"], "topics": ["asr", "whisper", "yt-dlp", "csharp", "language-learning", "media-player", "ocr", "player", "video", "video-player", "wpf", "flyleaf", "llm", "ollama"], "urls": [], "use_cases": ["watch videos with dual subtitles for language learning", "generate subtitles automatically with whisper from any video", "translate subtitles in real time while watching", "convert bitmap subtitles to text with OCR", "look up words in subtitles instantly", "play online videos with yt-dlp and generate subtitles", "study japanese or other languages with video subtitles"], "what_it_is": "LLPlayer is a Windows media player built for language learning, featuring dual subtitles, AI-generated subtitles via Whisper ASR, real-time translation, and OCR of bitmap subtitles. It integrates yt-dlp for online video playback and supports word lookup, subtitle search, and LLM-based context-aware translation.", "when_to_avoid": ["you need a cross-platform player (Windows/WPF only)", "you just want a lightweight general-purpose media player without subtitle tooling", "you need offline playback without GPU or translation engines configured"], "when_to_choose": ["you need dual-language subtitles that never overlap", "you want AI-generated or OCR subtitles during playback", "you want integrated translation and word lookup for language study", "you want to stream online videos with subtitle features"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/llplayer", "repo": "umlx5h/LLPlayer", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "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:08:33.795496+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:33.795496+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:41.366617+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e845d074f9aba898572b5c244a389b3d29c7ab6259b720fa3a1b9f78b57fe33b", "fetched_at": "2026-08-28T04:08:33.795496+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umlx5h/LLPlayer"}, {"content_hash": "8c0330998c5eed50d674d5792f61070b9362cd8ae6a245b132ffc8c6a10c6ab1", "fetched_at": "2026-08-29T09:16:01.035633+00:00", "kind": "homepage", "missing": false, "url": "https://llplayer.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 41, "rhythm": 80}, "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": 579, "days_push": 45, "days_rel": 136, "gap_med": 4, "n_releases_24m": 12}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}