{"adoption": {"forks": 2013, "observed_at": "2026-08-28T04:11:26.512151+00:00", "stars": 18266}, "canonical_url": "https://ross.abutalabs.com/products/videolingo", "card": {"archived": false, "artifact_type": "application", "description": "Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上配音，一键全自动视频搬运AI字幕组", "domain": ["media", "artificial-intelligence"], "enriched": true, "function": ["speech-recognition", "tts", "nlp", "machine-learning", "video-processing", "internationalization", "llm-inference", "gui"], "health_score": 96, "homepage": "https://docs.videolingo.io", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["Huanshere/VideoLingo"], "name": "Huanshere/VideoLingo", "platform": ["windows", "python", "self-hosted"], "pushed_at": "2026-08-23T15:23:27+00:00", "repo": "Huanshere/VideoLingo", "stars": 18266, "tags": ["subtitle-translation", "dubbing", "voice-cloning", "whisperx", "yt-dlp", "streamlit", "netflix-style-subtitles", "video-localization", "video", "localization", "natural-language-processing", "automation", "macos", "linux", "docker", "gpu"], "topics": ["ai-translation", "dubbing", "localization", "video-translation", "voice-cloning"], "urls": [], "use_cases": ["translate youtube videos into another language with subtitles", "add ai-generated dubbing with cloned voice to videos", "generate netflix-style single-line subtitles automatically", "localize video content for international audiences", "transcribe and align subtitles word-by-word", "batch translate video content for social media reposting"], "what_it_is": "VideoLingo is an all-in-one AI video translation, localization, and dubbing tool that produces Netflix-quality single-line subtitles with word-level alignment via WhisperX. It automates the full pipeline from YouTube download through NLP/LLM-based subtitle segmentation, multi-step translation, and cloned-voice dubbing via GPT-SoVITS, Azure, OpenAI, and other TTS providers.", "when_to_avoid": ["you need real-time or live-stream translation", "you want fully offline processing without any LLM API (though Ollama/Edge TTS is possible with reduced quality)", "you need multi-line or stylized subtitle formats", "you lack a GPU or API budget and need top-tier transcription/dubbing quality"], "when_to_choose": ["you want a one-click, end-to-end video translation and dubbing pipeline", "you need high-quality single-line subtitles that meet Netflix standards", "you want voice cloning dubbing with GPT-SoVITS or multiple TTS options", "you prefer a Streamlit UI with resumable, logged processing steps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/videolingo", "repo": "Huanshere/VideoLingo", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "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:11:26.512151+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.512151+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:02:05.786749+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4781f29b0850a881b4e63f225d7a44d07ed0e427702f448ae89ff9a3c67e517e", "fetched_at": "2026-08-28T04:11:26.512151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Huanshere/VideoLingo"}, {"content_hash": "ccd1dbb0934aa82ceb112a4dd128c57793703778e20f756200d09cbbfd16e2fc", "fetched_at": "2026-08-29T07:59:54.194375+00:00", "kind": "homepage", "missing": false, "url": "https://docs.videolingo.io"}, {"content_hash": "c5abcc28c4c7bc61557202d72cb188d18d317c18abd16dafb0b4053aa661ba8f", "fetched_at": "2026-08-29T07:59:54.203391+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/introduction"}, {"content_hash": "753c3088c8bb9d03440717f880d49bbc8999fc1878f0f37a6266dd2b0f03427f", "fetched_at": "2026-08-29T07:59:54.205556+00:00", "kind": "site_page", "missing": false, "url": "https://docs.videolingo.io/docs/start"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 53, "rhythm": 72}, "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": 754, "days_push": 10, "days_rel": 186, "gap_med": 1.0, "n_releases_24m": 43}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}