{"id":51329491,"url":"https://github.com/poli0981/youtube-generator","last_synced_at":"2026-07-01T21:32:39.721Z","repository":{"id":357879071,"uuid":"1203928003","full_name":"poli0981/youtube-generator","owner":"poli0981","description":"YouTube Template Generated title and description.","archived":false,"fork":false,"pushed_at":"2026-06-15T12:29:31.000Z","size":2589,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T13:24:50.355Z","etag":null,"topics":["automatic","automation","html","rust","tauri-app","tool","typescript","youtube"],"latest_commit_sha":null,"homepage":"https://poli0981.github.io/youtube-generator/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/poli0981.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"poli0981","ko_fi":"skullmute","buy_me_a_coffee":"skullmute","patreon":"skullmute","custom":["paypal.me/DungDang212"]}},"created_at":"2026-04-07T14:19:28.000Z","updated_at":"2026-06-15T12:29:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/poli0981/youtube-generator","commit_stats":null,"previous_names":["poli0981/youtube-generator"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/poli0981/youtube-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli0981%2Fyoutube-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli0981%2Fyoutube-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli0981%2Fyoutube-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli0981%2Fyoutube-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/poli0981","download_url":"https://codeload.github.com/poli0981/youtube-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli0981%2Fyoutube-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35024359,"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-07-01T02:00:05.325Z","response_time":130,"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":["automatic","automation","html","rust","tauri-app","tool","typescript","youtube"],"created_at":"2026-07-01T21:32:38.285Z","updated_at":"2026-07-01T21:32:39.701Z","avatar_url":"https://github.com/poli0981.png","language":"TypeScript","funding_links":["https://github.com/sponsors/poli0981","https://ko-fi.com/skullmute","https://buymeacoffee.com/skullmute","https://patreon.com/skullmute","paypal.me/DungDang212"],"categories":[],"sub_categories":[],"readme":"# 🎮 YTDescGen\n\n**YouTube Gameplay Description Generator** — an offline-first template engine for Gameplay No Commentary YouTube channels.\n\nGenerate YouTube titles, descriptions, and tags in six languages with one click. Save channel, rig, and game presets to skip repetitive data entry. Works in the browser (GitHub Pages), as a ~8 MB native desktop app (Windows / macOS / Linux), or as an installable Android APK — all from one Tauri 2 codebase.\n\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)\n[![Node](https://img.shields.io/badge/node-%E2%89%A522-brightgreen)](./docs/DEVELOPMENT.md)\n[![Latest release](https://img.shields.io/github/v/release/poli0981/youtube-generator?include_prereleases)](https://github.com/poli0981/youtube-generator/releases)\n[![Last commit](https://img.shields.io/github/last-commit/poli0981/youtube-generator)](https://github.com/poli0981/youtube-generator/commits)\n\n---\n\n## What is YTDescGen\n\nYTDescGen is a single-purpose template engine. It does **one** job: turn a small set of structured fields (video type, game name, genres, rig, social links, content warnings, …) into a publish-ready YouTube title + description + tag set.\n\nIt doesn't talk to the YouTube API. It doesn't upload anything. It doesn't track you. There is no server. State lives in your browser's `localStorage` (web) or your OS application-data directory (desktop) — and nowhere else.\n\nBuilt for the gameplay no-commentary niche — especially horror / scary games — by someone running the [@SkullMute](https://www.youtube.com/@SkullMute) channel who got tired of pasting the same boilerplate into every video. Released under Apache 2.0 in case it's useful to anyone else.\n\n## Features\n\n- **20 video types** — Full Gameplay, Part, Boss Fight, Boss No-Hit, Ending, Speedrun, 100%, DLC, NG+, Challenge, Side Quest, Secret, Comparison, Guide, Mods, Collectibles, Livestream, Gacha Quest, Demo, Demo Part.\n- **6 UI languages** — English, Vietnamese, Japanese, Spanish, Korean, Chinese. *(VI authored by a native speaker; JA / ES / KO / ZH AI-translated — see [DISCLAIMER.md](./DISCLAIMER.md).)*\n- **40+ game genres** — across action, RPG, FPS, horror, soulslike, indie, simulation, fighting, and more.\n- **248 content-warning IDs** across 12 groups — spoilers, photosensitive/VFX, audio, dialogue/language, phobias (incl. color phobias), mental health, social phenomena, internet/digital life, sensitive themes (incl. method-specific death/violence and suggestive imagery), horror-specific, playstyle, and gameplay disclosure (mods / cheats / glitches / guide-assisted / educational purpose). Sets viewer expectations before they hit play.\n- **Profile system** — save channel / social / rig info once, reuse across every video.\n- **Game presets** — save game name + store links once, reuse across the entire part series.\n- **Snapshot templates** — save full-form configurations and recall in one click.\n- **Smart tag generation** — combines genre pool, platform, quality tier, multilingual hooks, and trending terms; auto-dedup and 500-char-limit aware.\n- **Character counters** — real-time limits for title (100), description (5000), tags (500).\n- **Batch mode** — generate metadata for all parts of a series in one pass.\n- **Cross-post captions** — a dedicated **Social** tab re-packages the same YouTube source into short-form captions for **TikTok** (4,000-char), **Instagram Reels**, and **Facebook Reels** — title, rig, content warnings, copyright, thanks, and hashtags (game + genre + curated per-platform popular tags). Single + bulk modes, per-platform character limits with smart overflow trimming, and JSON import/export.\n- **Desktop app** — Windows, macOS \u0026 Linux native binaries via Tauri (~8 MB).\n- **Android app** — installable, sideloadable `.apk` built from the same Tauri 2 codebase. **Requires Android 11+** (tested 11–16; real-device test on Android 12). Grab it from [Releases](https://github.com/poli0981/youtube-generator/releases) and enable \"Install unknown apps\" to sideload.\n- **Mobile-responsive web** — drawer navigation, touch-sized controls, iOS-safe text-input behavior. Tested down to 360 × 640.\n- **100% offline** — no server, no telemetry, no account. See [PRIVACY.md](./PRIVACY.md).\n\n## Quick Start\n\n```bash\ngit clone https://github.com/poli0981/youtube-generator.git\ncd yt-desc-gen\nnpm install\nnpm run dev        # web dev server at http://localhost:5173\n```\n\nDesktop build (Windows / macOS / Linux):\n\n```bash\nnpm run tauri:build\n# Output: src-tauri/target/release/bundle/{msi,deb,dmg,app}\n```\n\nAndroid build (`.apk`) — requires the Android SDK + NDK + a JDK:\n\n```bash\ncargo tauri android init          # one-time; generates src-tauri/gen/android\ncargo tauri android build --apk\n# Output: src-tauri/gen/android/app/build/outputs/apk/universal/release/\n```\n\nSee [`docs/PACKAGING.md`](./docs/PACKAGING.md#android-apk-packaging) for the SDK/NDK setup and signing steps.\n\nFull development setup, IDE config, and troubleshooting: see [`docs/DEVELOPMENT.md`](./docs/DEVELOPMENT.md). Vietnamese version: [`docs/i18n/vi/DEVELOPMENT.md`](./docs/i18n/vi/DEVELOPMENT.md).\n\n## Use Cases\n\n- **Gameplay no-commentary channels** — the primary target. Default templates assume no voice-over and lean on visual hooks, music attribution, and timestamps.\n- **Horror / scary-game channels** — the content-warning system is especially deep here (analog horror, liminal spaces, pursuit / chase, entity / SCP-style, body horror, etc.).\n- **Demo / Early Access playthroughs** — dedicated video types and language-patch / game-version disclosure fields.\n- **Speedrunners and 100% completionists** — playstyle disclosures, run-type metadata, and difficulty fields.\n- **Solo creators tired of copy-paste** — profiles and presets exist specifically to eliminate repetitive data entry.\n\n## Privacy \u0026 Offline-First\n\nNothing leaves your device. No analytics, no telemetry, no tracking. The web version stores your work in `localStorage`; the desktop version stores it in the OS application-data directory. Clearing site data (web) or uninstalling the app (desktop) wipes everything. Full details in [PRIVACY.md](./PRIVACY.md).\n\n## Tech Stack\n\nReact 18 · TypeScript (strict) · Vite 8 · Tailwind CSS 3 · Zustand · i18next · Tauri 2 (Rust stable).\n\nArchitecture overview: [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md).\n\n## Documentation\n\n| Document | What's in it |\n| --- | --- |\n| [Development Guide](./docs/DEVELOPMENT.md) | Toolchain, IDE setup, build commands, troubleshooting. *(Also: [Vietnamese](./docs/i18n/vi/DEVELOPMENT.md).)* |\n| [Architecture](./docs/ARCHITECTURE.md) | Layer model, data flow, engine design. |\n| [Features](./docs/FEATURES.md) | Full feature matrix. |\n| [Content Inventory](./docs/CONTENT-INVENTORY.md) | Every video type, genre, and content warning the editor surfaces. *(Also: [Vietnamese](./docs/i18n/vi/CONTENT-INVENTORY.md).)* |\n| [Roadmap](./docs/ROADMAP.md) | Development phases. |\n| [Tech Spec](./docs/TECH-SPEC.md) | Implementation details and configs. |\n| [i18n Guide](./docs/I18N.md) | Adding new locales. |\n| [Packaging](./docs/PACKAGING.md) | Tauri desktop + Android release builds and signing. |\n| [Contributing](./CONTRIBUTING.md) | PR process, commit conventions, auto-ignore rules. |\n| [Security](./SECURITY.md) | Reporting vulnerabilities. |\n| [Privacy](./PRIVACY.md) | Data handling (TL;DR: none). |\n| [Disclaimer](./DISCLAIMER.md) | AI-assistance and translation-quality disclosure. *(Also: [Vietnamese](./docs/i18n/vi/DISCLAIMER.md).)* |\n| [Terms of Use](./TERMS.md) | Acceptable use and license compliance. |\n| [Code of Conduct](./CODE_OF_CONDUCT.md) | Contributor Covenant v2.1. |\n| [Maintainers](./MAINTAINERS.md) | Who runs this. |\n| [Third-Party Notices](./THIRD_PARTY_NOTICES.md) | Dependency attribution. |\n| [Changelog](./CHANGELOG.md) | Per-release notes. |\n\n## Contributing\n\nPRs welcome — read [CONTRIBUTING.md](./CONTRIBUTING.md) first. Native-speaker corrections to AI-translated locales (JA / ES / KO / ZH) are especially appreciated.\n\n## License\n\nLicensed under the **[Apache License 2.0](./LICENSE)**. See [`NOTICE`](./NOTICE) for the copyright statement and [`THIRD_PARTY_NOTICES.md`](./THIRD_PARTY_NOTICES.md) for dependency licenses.\n\n## AI Disclosure\n\nThis project was co-authored with **Anthropic's Claude Code (model 4.7 Opus, 1M-context variant)**. Source code, locale translations, documentation, and CI workflows were generated or edited with AI assistance, then reviewed by the human maintainer (`@poli0981`) before being committed. See [DISCLAIMER.md](./DISCLAIMER.md) for the full disclosure.\n\n## Channel \u0026 Socials\n\nReference channel and maintainer links:\n\n- **YouTube**: [@SkullMute](https://www.youtube.com/@SkullMute)\n- **X / Twitter**: [@SkullMute0011](https://x.com/SkullMute0011)\n- **Bluesky**: [skullmute0011.bsky.social](https://bsky.app/profile/skullmute0011.bsky.social)\n- **Mastodon**: [@skullmute1122@mastodon.social](https://mastodon.social/@skullmute1122)\n- **Discord** (project / repo): [join](https://discord.gg/2aNR3aVt)\n- **Discord** (gaming): [join](https://discord.gg/kDM9GMu5vm)\n- **Steam**: [profile](https://steamcommunity.com/profiles/76561199544666292/)\n- **Patreon / Ko-fi**: `skullmute`\n- **Telegram**: `@SkullMute0011` (bot: `@my_skull_bot`)\n- **Email** (security \u0026 private contact): `lopop05905@proton.me`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoli0981%2Fyoutube-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoli0981%2Fyoutube-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoli0981%2Fyoutube-generator/lists"}