diff --git a/app.py b/app.py index 7a7ac8f..38ede9c 100644 --- a/app.py +++ b/app.py @@ -44,6 +44,7 @@ SCOPES = [ MASK = "********" MIN_FREE_GB = 2 LATIN_LANGS = {"en", "es", "fr", "de", "it", "pt", "nl", "sv", "no", "da", "fi", "pl", "cs", "ro", "hu", "tr", "id", "ms", "vi", "tl"} +REVIEW_MODES = ("advisory", "block", "off") GLOBAL_DEFAULTS = { "active_profile": "default", @@ -55,7 +56,7 @@ GLOBAL_DEFAULTS = { "vision_model": "llama3.2-vision", "ollama_timeout": 300, "gemini_api_key": "", - "veo_model": "veo-3.0-fast-generate-001", + "veo_model": "veo-3.1-fast-generate-preview", "aspect_ratio": "9:16", "target_seconds": 60, "clip_seconds": 8, @@ -67,6 +68,7 @@ PROFILE_DEFAULTS = { "channel_niche": "", "made_for_kids": False, "kids_manual_review": True, + "kids_llm_review": "advisory", "upload_category_id": "24", "privacy_status": "private", "trending_query": "", @@ -90,6 +92,16 @@ Include a gentle lesson or positive message such as kindness, sharing, curiosity Visuals are bright, colorful, calm, friendly animation in safe, cheerful settings, with no flashing or strobing light. """ +REVIEW_RULES = { + "violence": "violence, weapons, injuries, blood, death, or dangerous acts a child could copy", + "scary": "scary, creepy, or disturbing imagery or events", + "humans": "realistic humans or real children as characters", + "adult": "romance, kissing, alcohol, tobacco, drugs, or other adult themes", + "commercial": "brand names, real products, toys for sale, or product placement", + "contact": "asking viewers to comment, like, subscribe, share personal information, visit a website, or leave YouTube", + "negative": "bullying, meanness, or a message that teaches bad behavior", +} + KIDS_VEO_SUFFIX = ( " Child-friendly cartoon animation with cute non-human characters, soft bright colors, calm pacing, " "safe cheerful setting, nothing scary or dangerous, no realistic people, no logos, no flashing lights." @@ -102,7 +114,7 @@ Return JSON only: {"safe": true or false, "reason": "short explanation"}""" KIDS_BANNED = re.compile( r"\b(kill\w*|blood\w*|bleed\w*|guns?|knife|knives|swords?|weapons?|bombs?|murder\w*|dead|die|dies|dying|death|" r"scary|spooky|terrif\w*|horror|creepy|nightmare\w*|ghost\w*|haunt\w*|zombie\w*|demon\w*|devil\w*|bhoot|" - r"sexy|kiss\w*|beer|wine|drunk|cigar\w*|smok\w*|drugs?|vape\w*|hate)\b", + r"sexy|(?document.querySelector(s); @@ -155,9 +157,9 @@ const d=document.createElement("div");if(type==="wide")d.className="wide"; d.innerHTML=`${input}${hint?`