{"adoption": {"forks": 83, "observed_at": "2026-08-28T04:04:52.511984+00:00", "stars": 1491}, "canonical_url": "https://ross.abutalabs.com/products/episode-rename", "card": {"archived": false, "artifact_type": "cli-tool", "description": "电视剧/番剧自动化重命名工具, 一键批量改名. 可配合QBittorrent下载后自动重命名, 方便Emby自动刮削. 支持Windows, Linux, MacOS, Docker 和 群晖套件环境运行", "domain": ["media", "developer-tools", "files"], "enriched": true, "function": ["cli", "workflow-automation", "file-system"], "health_score": 45, "homepage": null, "language": "Python", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Nriver/Episode-ReName"], "name": "Nriver/Episode-ReName", "platform": ["windows", "python", "cli", "self-hosted"], "pushed_at": "2025-05-19T03:10:03+00:00", "repo": "Nriver/Episode-ReName", "stars": 1491, "tags": ["tv-shows", "anime", "batch-rename", "qbittorrent", "emby", "jellyfin", "media-server", "synology", "scraping-metadata", "automation", "linux", "macos", "docker"], "topics": ["automation", "rename", "scraper", "qbittorrent", "python3", "docker", "synology", "python", "windows", "linux", "macos", "command-line", "command-line-tool", "rename-script"], "urls": [], "use_cases": ["batch rename tv episode files for emby", "automatically rename anime downloads from qbittorrent", "rename episodes so jellyfin can scrape metadata", "bulk rename tv shows on synology nas", "normalize episode filenames for tiny media manager", "right-click batch rename episodes on windows"], "what_it_is": "A command-line tool that batch-renames TV show and anime episode files into standardized naming conventions for media servers like Emby, Jellyfin, and Tiny Media Manager. It can be triggered automatically by qBittorrent after downloads complete and runs on Windows, Linux, macOS, Docker, and Synology.", "when_to_avoid": ["you need a graphical interface - this is CLI-only with no UI", "your files are not inside a Season-style directory (e.g. 'Season 1', 's1')", "you cannot tolerate the tool deleting non-conforming jpg/png/nfo/torrent files in target folders"], "when_to_choose": ["you download TV/anime via qBittorrent and want automatic renaming on completion", "you run Emby/Jellyfin and need standardized filenames for proper scraping", "you want a lightweight CLI tool that works across Windows, Linux, macOS, Docker, and Synology"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/episode-rename", "repo": "Nriver/Episode-ReName", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "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:04:52.511984+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.511984+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:32.822732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d09d5785e3befb18ad7f65f4f82ea7d21b2341dbda82785908ab2568ec8918", "fetched_at": "2026-08-28T04:04:52.511984+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Nriver/Episode-ReName"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 22, "longevity": 100, "rhythm": 40}, "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": 1779, "days_push": 471, "days_rel": 485, "gap_med": 5, "n_releases_24m": 4}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}