upload-prepare — upload-prepare install upload-prepare, biLangGen, community, upload-prepare install, ide skills, youtube upload preparation, upload-prepare validation, upload-prepare checklist, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Ideal for Media Management Agents requiring precise YouTube upload validation and preparation capabilities. upload-prepare is a skill that prepares and validates everything for YouTube upload, creating a comprehensive checklist for user verification.

Features

Creates comprehensive checklist for user verification
Validates project existence in `proj` context
Supports activation triggers like 'prepare upload' and 'validate for youtube'
Detects project name from user or context
Generates checklist for YouTube upload preparation

# Core Topics

smoreg smoreg
[0]
[0]
Updated: 3/8/2026

Agent Capability Analysis

The upload-prepare skill by smoreg is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance. Optimized for upload-prepare install, youtube upload preparation, upload-prepare validation.

Ideal Agent Persona

Ideal for Media Management Agents requiring precise YouTube upload validation and preparation capabilities.

Core Value

Empowers agents to validate YouTube uploads without actual upload, creating comprehensive checklists for user verification, utilizing protocols like HTTP for metadata analysis and checklist generation in formats like CSV or JSON.

Capabilities Granted for upload-prepare

Validating video metadata before upload
Generating pre-upload checklists for content creators
Automating YouTube upload preparation for developers

! Prerequisites & Limits

  • Does not support actual YouTube upload
  • Requires project name or context detection
  • Limited to YouTube platform
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

upload-prepare

Install upload-prepare, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

Upload Prepare - YouTube Upload Preparation & Validation

Overview

Prepare and validate everything for YouTube upload without actually uploading. Creates comprehensive checklist for user verification.

Activation Triggers

  • "prepare upload"
  • "check before upload"
  • "validate for youtube"
  • "upload checklist"
  • "готовь к загрузке"
  • "проверь перед аплоадом"

Workflow

Step 1: Identify Project

  1. Get project name from user or detect from context
  2. Verify project exists in projects/ directory
  3. Load project metadata from SQLite database
bash
1# Check project exists 2ls projects/{project_name}/ 3 4# Get meta from DB 5sqlite3 projects/{project_name}/project.db "SELECT key, value FROM meta;"

Step 2: Validate Languages

  1. Read source and target language from project meta
  2. Read 2-3 translations from MIDDLE of the book (not beginning!)
  3. Display translations for user to verify correct language
bash
1# Get total sentences 2sqlite3 projects/{project_name}/project.db "SELECT value FROM meta WHERE key='total_sentences';" 3 4# Read translations from middle (e.g., sentences 100-102) 5sqlite3 projects/{project_name}/project.db "SELECT sentence_idx, text FROM sentences WHERE lang='{target_lang}' LIMIT 3 OFFSET 100;"

Step 3: Validate Files

Check all required files exist:

bash
1# Video output 2ls -lh projects/{project_name}/video/output.mp4 3 4# Background image 5ls -la projects/{project_name}/video/background.* 6 7# Timeline with wordcards 8head -30 projects/{project_name}/audio/timeline.json | grep -E "(wordcard_start|wordcard_duration)" 9 10# Wordcard audio files 11ls projects/{project_name}/audio/wordcards/ | head -5

Step 4: Verify Wordcards

  1. Check timeline.json contains wordcard_start and wordcard_duration fields
  2. Play one wordcard audio from middle of book for verification
bash
1# Check timeline has wordcard data 2grep -c "wordcard_start" projects/{project_name}/audio/timeline.json 3 4# Play wordcard from middle (user listens) 5afplay projects/{project_name}/audio/wordcards/0000100_combined.mp3

Step 5: Find Thumbnail

  1. Determine language pair from project (e.g., ru_en, ru_es-latam)
  2. Check thumbnails/{lang_pair}/ directory for matching thumbnail
  3. If not found, generate using thumbnail generator
bash
1# Find thumbnail in language-specific folder 2# Structure: thumbnails/ru_en/, thumbnails/ru_es-latam/ 3ls -la thumbnails/{source}_{target}/ | grep -i {project_base_name}

If thumbnail NOT found, generate it:

python
1# Quick one-liner to generate single thumbnail 2python3 -c " 3from pathlib import Path 4from video.thumbnail_variants import prepare_background, variant_13, load_fonts 5from PIL import ImageDraw 6 7fonts = load_fonts() 8img = prepare_background(Path('txt_source/{book_name}.png')) 9draw = ImageDraw.Draw(img) 10 11# For RU→EN use tgt_lang='ENGLISH' 12# For RU→ES-LATAM use tgt_lang='LATAM SPANISH' 13img = variant_13(img, draw, fonts, 14 author_en='{Author English}', 15 title_en='{Title English}', 16 src_lang='RUSSIAN', 17 tgt_lang='ENGLISH', # or 'LATAM SPANISH' 18 title_ru='{Название}', 19 author_ru='{Автор}' 20) 21img = img.convert('RGB') 22img.save('thumbnails/ru_en/{book_name}.png', quality=95) 23"

Batch generation (all books):

bash
1# Generate all thumbnails for specific language pair 2python3 scripts/generate_thumbnails.py thumbnails/ru_es-latam # default LATAM SPANISH

To add target language option to batch script, edit generate_thumbnails.py.

Step 6: Generate Metadata

Invoke youtube-metadata skill to generate title, description, tags:

Skill(skill: "youtube-metadata")

Follow youtube-metadata workflow to generate proper metadata.

Step 7: Build Upload Command

Construct the upload command (do NOT execute):

bash
1python3 scripts/youtube_upload.py upload {project_name} {thumbnail_path} --playlist "{playlist_name}"

Playlist selection:

  • RU → EN: --playlist "RU - EN"
  • RU → ES-LATAM: --playlist "RU - ES (LATAM)"
  • Other: ask user

Step 8: Display Checklist

Output comprehensive checklist for user:

============================================================
UPLOAD PREPARATION CHECKLIST
============================================================

PROJECT: {project_name}
LANGUAGES: {SOURCE} → {TARGET}

------------------------------------------------------------
FILES (clickable paths)
------------------------------------------------------------
[✓/✗] Video:      file://{full_video_path} ({size})
[✓/✗] Background: file://{full_background_path}
[✓/✗] Thumbnail:  file://{full_thumbnail_path}
[✓/✗] Timeline: {has wordcard data}
[✓/✗] Wordcards: {count} files

------------------------------------------------------------
LANGUAGE VERIFICATION (from middle of book)
------------------------------------------------------------
Sentence 100: "{source_text}"
Translation:  "{target_text}"

Sentence 101: "{source_text}"
Translation:  "{target_text}"

>>> Verify translations are in {target_lang}! <<<

------------------------------------------------------------
WORDCARD AUDIO
------------------------------------------------------------
[✓/✗] Timeline has wordcard timing
[✓/✗] Wordcard files exist
[PLAYED] Wordcard sample from sentence 100

------------------------------------------------------------
METADATA (use youtube-metadata skill format!)
------------------------------------------------------------
Title: [Bilingual][{SOURCE}→{TARGET}] {Author} - {Title}

Description:
🎧 AI-generated bilingual audio for passive language learning.
Each sentence: first {source_language}, then {target_language}.

⚠️ Neural TTS - minor errors possible. Premium voices coming soon.

📩 Want other languages or texts? Drop a comment!

#{hashtag1} #Bilingual #LanguageLearning #{hashtag2}

Tags: (from youtube-metadata skill, NO # symbols)
Playlist: {playlist}

------------------------------------------------------------
UPLOAD COMMAND (copy & run when ready)
------------------------------------------------------------
python3 scripts/youtube_upload.py upload {project_name} {thumbnail_path} \
  --title "[Bilingual][{SOURCE}→{TARGET}] {Author} - {Title}" \
  --playlist "{playlist}" \
  --privacy public

============================================================

Upload command flags:

  • --title — REQUIRED! Title in youtube-metadata format
  • --thumbnail — path to thumbnail image (positional arg)
  • --playlist — playlist name (RU - EN, RU - ES (LATAM), etc.)
  • --privacy — private/unlisted/public (use public for immediate publish)
  • --schedule — optional: "tomorrow", "tomorrow 14:00", "18:00", "+2h", or ISO datetime
  • --dry-run — preview without uploading
  • -y — skip confirmation

Optimal premiere times for language learning content:

  • Best days: Wednesday, Thursday, Friday
  • Best time: 10:00-14:00 (target audience timezone)
  • For RU→EN: 14:00 MSK (11:00 UTC) — catches both Russian and European learners
  • For RU→ES LATAM: 18:00 MSK (15:00 UTC, 12:00 Argentina) — catches LATAM afternoon

CRITICAL: Metadata MUST follow youtube-metadata skill format exactly:

  • Title: [Bilingual][{SOURCE}→{TARGET}] {Author} - {Title}
  • Author and Title MUST be in ENGLISH
  • Description: standard template from youtube-metadata skill
  • Tags: from youtube-metadata skill (NO hashtag symbols)

Quality Checklist

Before showing final checklist, verify:

  • Video file exists and size > 10MB
  • Background image exists
  • Thumbnail exists
  • Timeline contains wordcard_start fields (if wordcards enabled)
  • Wordcard audio files exist (if wordcards enabled)
  • Translations are in correct target language
  • Metadata generated via youtube-metadata skill
  • Upload command is valid

Anti-Patterns to Avoid

  • Don't execute the upload command
  • Don't skip language verification
  • Don't use translations from beginning (use middle of book)
  • Don't skip wordcard audio playback
  • Don't generate metadata manually (use youtube-metadata skill)

Example Execution

User: prepare upload nabokov_uzhas_ru_en

Claude:
Starting upload preparation for nabokov_uzhas_ru_en...

[Validates project exists]
[Reads meta: ru → en, 209 sentences]
[Reads translations from middle - sentences 100-102]
[Checks video: 192MB ✓] → file:///Users/.../video/output.mp4
[Checks background ✓] → file:///Users/.../video/background.png
[Checks thumbnail ✓] → file:///Users/.../thumbnails/ru_en/nabokov_uzhas.png
[Checks timeline: has wordcard_start ✓]
[Plays wordcard audio from sentence 100]
[Invokes youtube-metadata skill]
[Builds upload command]

============================================================
UPLOAD PREPARATION CHECKLIST
============================================================
[Full checklist output...]
============================================================

All checks passed! Review the checklist and run the upload command when ready.

Summary

This skill prepares everything for YouTube upload:

  1. Validates all files exist
  2. Verifies languages by checking translations from middle of book
  3. Confirms wordcards are included
  4. Generates metadata via youtube-metadata skill
  5. Builds upload command
  6. Displays comprehensive checklist

User makes final decision to upload.

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is upload-prepare?

Ideal for Media Management Agents requiring precise YouTube upload validation and preparation capabilities. upload-prepare is a skill that prepares and validates everything for YouTube upload, creating a comprehensive checklist for user verification.

How do I install upload-prepare?

Run the command: npx killer-skills add smoreg/biLangGen/upload-prepare. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for upload-prepare?

Key use cases include: Validating video metadata before upload, Generating pre-upload checklists for content creators, Automating YouTube upload preparation for developers.

Which IDEs are compatible with upload-prepare?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for upload-prepare?

Does not support actual YouTube upload. Requires project name or context detection. Limited to YouTube platform.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add smoreg/biLangGen/upload-prepare. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use upload-prepare immediately in the current project.

Related Skills

Looking for an alternative to upload-prepare or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI