{"adoption": {"forks": 327, "observed_at": "2026-08-28T04:08:50.740150+00:00", "stars": 4468}, "canonical_url": "https://ross.abutalabs.com/products/mujing", "card": {"archived": false, "artifact_type": "application", "description": "一款通过电影、美剧或文档中的真实语境学习英语单词的应用，让您在原汁原味的情境中记忆词汇，提升学习效率。", "domain": ["education", "cross-platform", "desktop-applications"], "enriched": true, "function": ["nlp", "video-processing", "pdf", "gui", "developer-tools"], "health_score": 69, "homepage": "https://mujingx.com/", "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["tangshimin/MuJing"], "name": "tangshimin/MuJing", "platform": ["windows", "cross-platform"], "pushed_at": "2025-12-02T14:31:12+00:00", "repo": "tangshimin/MuJing", "stars": 4468, "tags": ["english-learning", "vocabulary", "contextual-learning", "subtitle-learning", "100ls-method", "spaced-repetition", "kotlin-multiplatform", "compose-desktop", "danmaku", "dictation", "natural-language-processing", "video", "macos", "desktop"], "topics": ["chinese", "english-learning", "kotlin-multiplatform", "compose-desktop"], "urls": [], "use_cases": ["learn english vocabulary from movies and tv shows", "generate word lists from video subtitles", "practice spelling with keyboard typing exercises", "study vocabulary with real video clip context", "follow the 100LS listening and shadowing method", "create vocabulary decks from pdf or text documents", "watch videos with bilingual subtitles and instant word lookup", "dictation tests to review difficult words"], "what_it_is": "MuJing (幕境) is a free, open-source desktop application for learning English vocabulary through real context from movies, TV shows, and documents. It generates personalized word libraries from MKV videos, subtitle files (SRT/ASS), or documents (PDF/TXT), and offers spelling practice, subtitle transcription, dictation tests, and danmaku-style word display during video playback.", "when_to_avoid": ["you need a mobile or web-based learning app", "you require cloud sync or spaced-repetition algorithms like Anki's scheduler", "you are learning languages other than English", "you need a Linux version, which is not currently supported"], "when_to_choose": ["you want to memorize English words in authentic context from films, shows, or documents", "you prefer a free, offline, privacy-respecting tool with all data stored locally", "you follow the 100LS method and need repeated listening and shadowing with subtitle navigation", "you want multi-sensory learning combining video clips, spelling, transcription, and dictation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mujing", "repo": "tangshimin/MuJing", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "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:50.740150+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.740150+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:37.722612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30a01e61ccd1f0f1f503a547c839ce8acdfe82f04bf5a7b3fe1ebcbbbc2e6b56", "fetched_at": "2026-08-28T04:08:50.740150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tangshimin/MuJing"}, {"content_hash": "f56ee446c8e1b5b93a8ed047059ad0e043d6aa7d2df19248eaddc7837d30f550", "fetched_at": "2026-08-29T09:07:13.826722+00:00", "kind": "homepage", "missing": false, "url": "https://mujingx.com/"}, {"content_hash": "c0b59ee9b9a7ef699cbeb0fa1c3330e528e6521a1e4285099d9d9e11af234f3d", "fetched_at": "2026-08-29T09:07:13.868057+00:00", "kind": "site_page", "missing": false, "url": "https://mujingx.com/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 92, "rhythm": 47}, "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": 1300, "days_push": 274, "days_rel": 274, "gap_med": 60.0, "n_releases_24m": 7}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}