{"adoption": {"forks": 140, "observed_at": "2026-09-03T02:15:17.456270+00:00", "stars": 1070}, "canonical_url": "https://ross.abutalabs.com/products/subtitle-translator", "card": {"archived": false, "artifact_type": "application", "description": "Translate a whole season of subtitles in one pass — .srt/.ass/.vtt/.lrc, 120+ languages, 27 LLM providers, timing untouched ｜ 整季字幕一次译完，时轴不动，支持 120+ 语言", "domain": ["media", "web-development", "developer-tools"], "enriched": true, "function": ["nlp", "machine-learning", "llm-inference", "cli", "developer-tools"], "health_score": 100, "homepage": "https://tools.newzone.top/en/subtitle-translator", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["rockbenben/subtitle-translator"], "name": "rockbenben/subtitle-translator", "platform": ["cli", "cross-platform", "browser"], "pushed_at": "2026-09-03T01:53:57+00:00", "repo": "rockbenben/subtitle-translator", "stars": 1070, "tags": ["subtitle-translation", "srt", "ass", "vtt", "lrc", "batch-translation", "bilingual-subtitles", "deepl", "llm-providers", "browser-based", "typescript", "natural-language-processing", "localization", "web-server"], "topics": ["srt", "subtitles", "ass", "lrc", "vtt", "batch-translation", "bilingual-subtitles", "subtitle", "subtitle-translator", "translation", "translator", "ai-translation", "llm", "cli", "web-app", "bilingual", "captions", "deepl", "desktop-app", "subtitle-translation"], "urls": [], "use_cases": ["translate a whole season of srt subtitles in one batch", "create bilingual subtitles for youtube or language learning", "convert srt to vtt or ass while translating", "translate subtitles without breaking timecodes", "batch translate vtt files into multiple languages at once", "translate lrc lyrics files with ai", "keep subtitle translation private in the browser"], "what_it_is": "A free, browser-based batch subtitle translation tool for .srt, .ass, .vtt, and .lrc files that strips timing locally and sends only dialogue to translation engines, preserving timelines. It supports 120+ languages via 8 traditional translation APIs and 27 LLM providers, with a CLI for headless scripting.", "when_to_avoid": ["you need to translate video audio directly rather than existing subtitle files", "you require server-side or API-based subtitle translation pipelines", "you need subtitle editing features beyond translation, like syncing or styling"], "when_to_choose": ["you need to translate many subtitle files at once without touching timing", "you want bilingual subtitle output with preserved alignment", "you prefer a privacy-focused tool that runs entirely in the browser", "you need support for many subtitle formats and multiple target languages in one pass"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/subtitle-translator", "repo": "rockbenben/subtitle-translator", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.456270+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:58:25.041036+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53eebb39b381d4ee552c7f8e8d5b5e36c7551ff9941915233971ce91c02b2bf4", "fetched_at": "2026-09-03T02:15:17.456270+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rockbenben/subtitle-translator"}, {"content_hash": "f2f6ddebbea093dabcacf43bd07c8b4cbf88de328cbf0e788188980454352055", "fetched_at": "2026-08-29T12:59:56.530262+00:00", "kind": "homepage", "missing": false, "url": "https://tools.newzone.top/en/subtitle-translator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 37, "rhythm": 88}, "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": 528, "days_push": 0, "days_rel": 2, "gap_med": 38, "n_releases_24m": 16}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}