{"id":50891341,"url":"https://github.com/queukat/animeta-nexus","last_synced_at":"2026-06-15T21:02:14.989Z","repository":{"id":356807919,"uuid":"1234123844","full_name":"queukat/animeta-nexus","owner":"queukat","description":"TVDB-powered metadata intelligence and reconstruction workflow for anime libraries","archived":false,"fork":false,"pushed_at":"2026-05-09T20:26:05.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-09T22:13:19.717Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/queukat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-09T19:27:28.000Z","updated_at":"2026-05-09T20:25:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/queukat/animeta-nexus","commit_stats":null,"previous_names":["queukat/animeta-nexus"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/queukat/animeta-nexus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queukat%2Fanimeta-nexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queukat%2Fanimeta-nexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queukat%2Fanimeta-nexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queukat%2Fanimeta-nexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/queukat","download_url":"https://codeload.github.com/queukat/animeta-nexus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queukat%2Fanimeta-nexus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34379915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-15T21:02:14.055Z","updated_at":"2026-06-15T21:02:14.983Z","avatar_url":"https://github.com/queukat.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- public-repo-status --\u003e\n\u003e Status: Active metadata tooling. Issues are open for reproducible bugs and focused improvements.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/metadata_command_surface.svg\" alt=\"AniMeta Nexus metadata command surface\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAniMeta Nexus\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eStop browsing empty episode pages. Start owning your metadata.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A TVDB-powered metadata intelligence layer for anime libraries: Signal\n  Acquisition, Placeholder Suppression, Continuity-Aware Context Assembly,\n  Semantic Reconstruction, Review Governance, and Contribution-Ready\n  Distribution in one controlled recovery system.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://queukat.github.io/animeta-nexus/\"\u003eView Command Center\u003c/a\u003e ·\n  \u003ca href=\"#run-the-demo\"\u003eRun Demo\u003c/a\u003e ·\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e ·\n  \u003ca href=\"docs/PRESENTATION_DOCTRINE.md\"\u003eDoctrine\u003c/a\u003e ·\n  \u003ca href=\"docs/OPERATING_ROADMAP.md\"\u003eRoadmap\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://queukat.github.io/animeta-nexus/\"\u003e\u003cstrong\u003eLive Metadata Command Center\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## The Metadata Problem\n\nAnime libraries are full of invisible friction.\n\nEmpty episode titles. TBA placeholders. Missing summaries. Half-localized seasons.\nRecords that exist technically, but fail the moment someone tries to browse them.\n\nAniMeta Nexus treats missing metadata as operational debt: something to detect,\nreconstruct, review, and ship through a repeatable workflow.\n\n## The Recovery System\n\nAniMeta Nexus does not simply translate strings.\n\nIt deploys a multi-stage metadata recovery system: Signal Acquisition,\nPlaceholder Suppression, Continuity-Aware Context Assembly, Semantic\nReconstruction, Review Governance, and Contribution-Ready Distribution.\n\nEvery record moves through a controlled lifecycle:\n\n```text\nSignal Acquisition -\u003e Void Detection -\u003e Source Intelligence -\u003e Continuity Pack -\u003e Reconstruction Core -\u003e Review Gate -\u003e Distribution Rail\n```\n\n## Not Translation. Metadata Reconstruction.\n\nGeneric translation turns one string into another.\n\nAniMeta Nexus turns noisy metadata fragments into structured episode intelligence.\nBefore anything reaches the generation provider, the pipeline:\n\n- removes placeholder garbage;\n- selects the strongest source signal;\n- considers source-language hints;\n- groups episodes into continuity-aware batches;\n- preserves existing valid metadata;\n- applies database-friendly writing rules;\n- prepares output for review, export, or contribution.\n\nThe result is not a raw translation dump. It is localized, concise,\nmedia-library-ready metadata with a visible chain of custody.\n\n## Core Capabilities\n\n**Metadata Signal Acquisition Array**  \nSummons the strongest source picture around a TVDB series: series payloads,\nseason payloads, episode ordering, translation flags, aliases, and language\nsignals.\n\n**Metadata Void Cartography Engine**  \nMaps the blank zones of a library before users fall into them: empty titles,\nmissing summaries, weak records, and half-localized episode pages.\n\n**Placeholder Suppression Firewall**  \nPrevents TBA, TBD, punctuation-only, numeric-only, and otherwise useless\nmetadata debris from contaminating the reconstruction layer.\n\n**Source Intelligence Layer**  \nRanks source material by strength instead of blindly trusting the first field\nreturned by an API.\n\n**Series Continuity Engine**  \nPackages neighboring episode and season signals so recurring titles, numbering,\nand naming patterns stay coherent across the batch.\n\n**Context-Aware Metadata Reconstruction Core**  \nTransforms cleaned, contextualized source material into native, review-ready\nepisode titles and summaries.\n\n**Non-Destructive Governance Layer**  \nProtects already-valid metadata and authorizes reconstruction only where recovery\nis actually needed.\n\n**Review-First Publishing Gate**  \nForces generated output through inspection before export or TVDB contribution\nworkflows.\n\n**Metadata Command Center**  \nGives operators instant visibility into recovery progress, placeholder\nelimination, status distribution, before/after examples, and quality gates.\n\n**Contribution-Ready Distribution Rail**  \nPrepares reviewed records for downstream JSON, review pages, sidecar exports,\nor controlled TVDB-backed contribution workflows.\n\n## Run The Demo\n\nThe public demo does not require TVDB credentials, model credentials, network\naccess, or private runtime files.\n\nInstall the local package surface:\n\n```powershell\npython -m pip install -e .\n```\n\nRegenerate the Command Center:\n\n```powershell\nanimeta command-center --refresh-demo-data\n```\n\nThis regenerates:\n\n- `docs/demo/source_signal_corpus.json`\n- `docs/demo/reconstruction_core_output.json`\n- `docs/demo/command_center_report.json`\n- `docs/index.html`\n- `docs/assets/metadata_command_surface.svg`\n- `docs/assets/recovery_workflow_rail.svg`\n\nThe showcase includes a recovery funnel, placeholder elimination metrics, a\nlanguage bridge, before/after episode cards, status distribution, quality gates,\nand a roadmap.\n\nRun the local safety check:\n\n```powershell\nanimeta doctor\n```\n\n## Presentation Doctrine\n\nAniMeta Nexus describes capabilities by the domain of chaos they control.\n\nDo not frame the system as a pile of helpers. Frame it as a coordinated control\nsystem:\n\n- not an API fetcher, but **Metadata Signal Acquisition**;\n- not a TBA check, but **Placeholder Suppression Firewall**;\n- not a prompt, but **Localization Policy Engine**;\n- not logs, but **Operational Telemetry**;\n- not an HTML report, but **Metadata Command Center**;\n- not a push script, but **Contribution-Ready Distribution Rail**.\n\nThe implementation can stay practical. The presentation should make every\ncapability enter the stage with a name, a role, and a domain.\n\n## Local Runtime\n\nThe runtime pipeline is included as local operational machinery. It is designed\nfor configurable target-language metadata workflows, while this public repository\nkeeps demo data synthetic and secret-safe.\n\nInstall runtime dependencies:\n\n```powershell\npython -m pip install -e .\npython -m playwright install chromium\n```\n\nGenerate records for one TVDB series through the CLI command surface:\n\n```powershell\nanimeta reconstruct `\n  --series-id 12345 `\n  --target-lang \u003ctvdb_language_code\u003e `\n  --target-language-name \"\u003cLanguage\u003e\"\n```\n\nPush reviewed checkpoint records through the optional browser workflow:\n\n```powershell\nanimeta push `\n  --checkpoint-file animeta_nexus/metadata_reconstruction_ledger.json `\n  --target-lang \u003ctvdb_language_code\u003e\n```\n\nUse `--push` only when records have been reviewed and the target TVDB pages are\nappropriate for contribution. Do not treat generated metadata as permanent public\nmetadata without review.\n\n## Configuration\n\nDemo mode needs no credentials.\n\nReal discovery, generation, or contribution workflows may require:\n\n```env\nTVDB_API_KEY=\nOPENAI_API_KEY=\nTVDB_USERNAME=\nTVDB_PASSWORD=\nTVDB_PIN=\nOPENAI_MODEL=\nTARGET_LANGUAGE=\nTARGET_LANGUAGE_NAME=\n```\n\nUse `.env.example` as a template. Never commit real credentials, browser session\nfiles, cookies, runtime queues, or private processing logs.\n\n## Architecture\n\n```text\nProduct Surface\n  README.md\n  pyproject.toml\n  docs/index.html\n  docs/assets/*\n  docs/demo/*\n\nDemo Generation\n  scripts/generate_metadata_command_center.py\n\nRuntime Pipeline\n  animeta_nexus/\n    cli.py\n    metadata_command_center.py\n    metadata_reconstruction_core.py\n    operational_metadata_ledger.py\n    runtime_environment.py\n    tvdb_contribution_rail.py\n\nPrivate Local State\n  .env\n  animeta_nexus/metadata_reconstruction_ledger.json\n  animeta_nexus/tvdb_browser_session_state.json\n  animeta_nexus/contribution_processed_ledger.txt\n  logs/\n  browser_profiles/\n```\n\n## Public Demo, Private Operations\n\nThe public showcase ships with a deterministic demo corpus.\n\nThe same workflow can be used locally for larger TVDB metadata recovery batches,\nbut runtime queues, browser sessions, credentials, cookies, and private\nprocessing logs are intentionally excluded from the repository.\n\nWhat you see here is the product surface. What stays local is the operational\nmachinery.\n\n## Ecosystem\n\nAniMeta Nexus is designed for workflows around TVDB-backed anime metadata and\nlocal media-library curation.\n\nIt can be extended toward:\n\n- generic JSON exports;\n- review HTML pages;\n- NFO-style sidecars for Jellyfin/Kodi/Emby-like workflows;\n- Plex/tinyMediaManager-adjacent metadata workflows;\n- controlled TVDB contribution flows;\n- configurable target-language policies.\n\nThis project does not claim official partnership with TVDB, Jellyfin, Plex,\nKodi, Emby, or tinyMediaManager.\n\n## Operational Safety\n\n- Demo generation never reads private runtime files by default.\n- Generated records are staged before export or contribution.\n- Existing valid target-language fields are preserved.\n- Placeholder debris is filtered before reconstruction.\n- Browser storage state, cookies, credentials, checkpoints, and logs are ignored.\n\n## Roadmap\n\nNear-term:\n\n- polished static showcase;\n- deterministic demo corpus;\n- cleaner CLI wrapper;\n- public/private runtime boundary;\n- better operational logs.\n\nNext:\n\n- generic JSON export;\n- review HTML;\n- batch reports;\n- NFO-style sidecars;\n- status-aware export.\n\nLater:\n\n- guided mode;\n- local review UI;\n- configurable target-language policies;\n- stronger provider abstraction.\n\nAnime libraries deserve better than blank cards and placeholder tombstones.\n## License\n\n\u003c!-- commercial-license-policy --\u003e\nThis project is licensed for non-commercial use under the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0.txt).\nCommercial use, resale, paid distribution, marketplace publication, SaaS hosting, or bundling into a paid product requires separate written permission from the author.\nProject names, logos, package identifiers, store listings, screenshots, and other branding assets are not licensed for use in forks or redistributed builds.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueukat%2Fanimeta-nexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqueukat%2Fanimeta-nexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueukat%2Fanimeta-nexus/lists"}