{"adoption": {"forks": 79, "observed_at": "2026-08-28T04:03:30.483643+00:00", "stars": 1080}, "canonical_url": "https://ross.abutalabs.com/products/ytsubconverter", "card": {"archived": false, "artifact_type": "application", "description": "A tool for creating styled YouTube subtitles", "domain": ["media", "web-development"], "enriched": true, "function": ["video-processing", "file-system", "developer-tools"], "health_score": 97, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["arcusmaximus/YTSubConverter"], "name": "arcusmaximus/YTSubConverter", "platform": ["windows", "cross-platform"], "pushed_at": "2026-07-27T15:48:45+00:00", "repo": "arcusmaximus/YTSubConverter", "stars": 1080, "tags": ["subtitles", "youtube", "ytt", "srv3", "ass-subtitles", "subtitle-conversion", "karaoke", "video", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["convert ass subtitles to youtube srv3 format", "add bold italic and colored styling to youtube subtitles", "create karaoke timed lyrics for youtube videos", "position subtitles anywhere on a youtube video", "convert sbv subtitles downloaded from youtube to srt", "convert ttml subtitles to ytt for more styling features"], "what_it_is": "A desktop tool that converts subtitle files into YouTube's SRV3/YTT format, enabling styled subtitles with colors, fonts, positioning, and karaoke timing. It primarily converts .ass files (from Aegisub) to .ytt, and also supports .sbv to .srt and .ttml to .ytt conversions.", "when_to_avoid": ["you need subtitles for platforms other than YouTube", "you want a command-line or library API rather than a GUI tool", "you only need plain unstyled subtitles"], "when_to_choose": ["you upload videos to YouTube and need styled subtitles beyond the built-in editor", "you author subtitles in Aegisub and want them to look the same on YouTube", "you need karaoke timing, ruby text, or vertical text in YouTube subtitles"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ytsubconverter", "repo": "arcusmaximus/YTSubConverter", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "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:03:30.483643+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:30.483643+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:51:26.650801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5462cfa2ace8b4ef7c84164d3cce887a5fc98b368affdfedd816d594ea69845", "fetched_at": "2026-08-28T04:03:30.483643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arcusmaximus/YTSubConverter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "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": 2853, "days_push": 37, "days_rel": 53, "gap_med": 117.5, "n_releases_24m": 3}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}